f02e8a6596
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. Signed-off-by: Alessio Igor Bogani <abogani@kernel.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (folded in '+' fixup) Tested-by: Dirk Behme <dirk.behme@googlemail.com>
19 lines
737 B
Text
19 lines
737 B
Text
/*
|
|
* Common module linker script, always used when linking a module.
|
|
* Archs are free to supply their own linker scripts. ld will
|
|
* combine them automatically.
|
|
*/
|
|
SECTIONS {
|
|
/DISCARD/ : { *(.discard) }
|
|
|
|
__ksymtab : { *(SORT(___ksymtab+*)) }
|
|
__ksymtab_gpl : { *(SORT(___ksymtab_gpl+*)) }
|
|
__ksymtab_unused : { *(SORT(___ksymtab_unused+*)) }
|
|
__ksymtab_unused_gpl : { *(SORT(___ksymtab_unused_gpl+*)) }
|
|
__ksymtab_gpl_future : { *(SORT(___ksymtab_gpl_future+*)) }
|
|
__kcrctab : { *(SORT(___kcrctab+*)) }
|
|
__kcrctab_gpl : { *(SORT(___kcrctab_gpl+*)) }
|
|
__kcrctab_unused : { *(SORT(___kcrctab_unused+*)) }
|
|
__kcrctab_unused_gpl : { *(SORT(___kcrctab_unused_gpl+*)) }
|
|
__kcrctab_gpl_future : { *(SORT(___kcrctab_gpl_future+*)) }
|
|
}
|