--- zzzz-none-000/linux-5.4.213/include/asm-generic/vmlinux.lds.h 2022-09-15 10:04:56.000000000 +0000 +++ miami-7690-761/linux-5.4.213/include/asm-generic/vmlinux.lds.h 2024-05-29 11:20:02.000000000 +0000 @@ -54,6 +54,16 @@ #define LOAD_OFFSET 0 #endif +#ifndef SYMTAB_KEEP +#define SYMTAB_KEEP KEEP(*(SORT(___ksymtab+*))) +#define SYMTAB_KEEP_GPL KEEP(*(SORT(___ksymtab_gpl+*))) +#endif + +#ifndef SYMTAB_DISCARD +#define SYMTAB_DISCARD +#define SYMTAB_DISCARD_GPL +#endif + /* Align . to a 8 byte boundary equals to maximum function alignment. */ #define ALIGN_FUNCTION() . = ALIGN(8) @@ -407,14 +417,14 @@ /* Kernel symbol table: Normal symbols */ \ __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \ __start___ksymtab = .; \ - KEEP(*(SORT(___ksymtab+*))) \ + SYMTAB_KEEP \ __stop___ksymtab = .; \ } \ \ /* Kernel symbol table: GPL-only symbols */ \ __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) { \ __start___ksymtab_gpl = .; \ - KEEP(*(SORT(___ksymtab_gpl+*))) \ + SYMTAB_KEEP_GPL \ __stop___ksymtab_gpl = .; \ } \ \ @@ -476,7 +486,7 @@ \ /* Kernel symbol table: strings */ \ __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ - *(__ksymtab_strings) \ + *(__ksymtab_strings+*) \ } \ \ /* __*init sections */ \ @@ -905,6 +915,8 @@ EXIT_TEXT \ EXIT_DATA \ EXIT_CALL \ + SYMTAB_DISCARD \ + SYMTAB_DISCARD_GPL \ *(.discard) \ *(.discard.*) \ *(.modinfo) \