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 | 6 | SECTIONS { |
| 7 | 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 | } |