This patch places every exported symbol in its own section (i.e. "___ksymtab+printk"). Thus the linker will use its SORT() directive to sort and finally merge all symbol in the right and final section (i.e. "__ksymtab"). The symbol prefixed archs use an underscore as prefix for symbols. To avoid collision we use a different character to create the temporary section names. This work was supported by a hardware donation from the CE Linux Forum.
Showing the changes to scripts (1 of 3 files). Show all
Unified · Split
| @@ -5,4 +5,15 @@ · 4 unmodified lines | |||
| 5 | */ | 5 | */ |
| 6 | SECTIONS { | 6 | SECTIONS { |
| 7 | /DISCARD/ : { *(.discard) } | 7 | /DISCARD/ : { *(.discard) } |
| 8 | |||
| 9 | __ksymtab : { *(SORT(___ksymtab+*)) } | ||
| 10 | __ksymtab_gpl : { *(SORT(___ksymtab_gpl+*)) } | ||
| 11 | __ksymtab_unused : { *(SORT(___ksymtab_unused+*)) } | ||
| 12 | __ksymtab_unused_gpl : { *(SORT(___ksymtab_unused_gpl+*)) } | ||
| 13 | __ksymtab_gpl_future : { *(SORT(___ksymtab_gpl_future+*)) } | ||
| 14 | __kcrctab : { *(SORT(___kcrctab+*)) } | ||
| 15 | __kcrctab_gpl : { *(SORT(___kcrctab_gpl+*)) } | ||
| 16 | __kcrctab_unused : { *(SORT(___kcrctab_unused+*)) } | ||
| 17 | __kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) } | ||
| 18 | __kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) } | ||
| 8 | } | 19 | } |