X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/ba38e0585024837bc59c618bdd2adfd42d2d9af8..259f6426607dfd76f98eb9ffa44cb88554ffeffc:/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch?ds=inline diff --git a/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch b/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch index 2a4483262..e931ec9d9 100644 --- a/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch +++ b/target/linux/generic-2.6/patches-2.6.28/027-module_exports.patch @@ -1,36 +1,34 @@ ---- a/Makefile -+++ b/Makefile -@@ -963,7 +963,7 @@ prepare: prepare0 - # Leave this as default for preprocessing vmlinux.lds.S, which is now - # done in arch/$(ARCH)/kernel/Makefile - --export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH) -+export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH) $(EXTRA_LDSFLAGS) - - # The asm symlink changes when $(ARCH) changes. - # Detect this and ask user to run make mrproper --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h -@@ -2,6 +2,18 @@ +@@ -2,6 +2,27 @@ #define LOAD_OFFSET 0 #endif +#ifndef SYMTAB_KEEP_STR +#define SYMTAB_KEEP_STR *(__ksymtab_strings.*) ++#define SYMTAB_DISCARD_STR ++#else ++#define SYMTAB_DISCARD_STR *(__ksymtab_strings.*) +#endif + +#ifndef SYMTAB_KEEP +#define SYMTAB_KEEP *(__ksymtab.*) ++#define SYMTAB_DISCARD ++#else ++#define SYMTAB_DISCARD *(__ksymtab.*) +#endif + +#ifndef SYMTAB_KEEP_GPL +#define SYMTAB_KEEP_GPL *(__ksymtab_gpl.*) ++#define SYMTAB_DISCARD_GPL ++#else ++#define SYMTAB_DISCARD_GPL *(__ksymtab_gpl.*) +#endif + #ifndef VMLINUX_SYMBOL #define VMLINUX_SYMBOL(_sym_) _sym_ #endif -@@ -124,35 +136,35 @@ +@@ -124,35 +145,35 @@ /* Kernel symbol table: Normal symbols */ \ __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \ VMLINUX_SYMBOL(__start___ksymtab) = .; \ @@ -71,7 +69,7 @@ VMLINUX_SYMBOL(__stop___ksymtab_gpl_future) = .; \ } \ \ -@@ -193,7 +205,13 @@ +@@ -193,7 +214,13 @@ \ /* Kernel symbol table: strings */ \ __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ @@ -80,9 +78,9 @@ + } \ + \ + /DISCARD/ : { \ -+ *(__ksymtab.*) \ -+ *(__ksymtab_gpl.*) \ -+ *(__ksymtab_strings.*) \ ++ SYMTAB_DISCARD \ ++ SYMTAB_DISCARD_GPL \ ++ SYMTAB_DISCARD_STR \ } \ \ /* __*init sections */ \ @@ -115,3 +113,79 @@ = { (unsigned long)&sym, __kstrtab_##sym } #define EXPORT_SYMBOL(sym) \ +--- a/Makefile ++++ b/Makefile +@@ -963,7 +963,7 @@ prepare: prepare0 + # Leave this as default for preprocessing vmlinux.lds.S, which is now + # done in arch/$(ARCH)/kernel/Makefile + +-export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH) ++export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH) $(EXTRA_LDSFLAGS) + + # The asm symlink changes when $(ARCH) changes. + # Detect this and ask user to run make mrproper +--- a/arch/powerpc/kernel/vmlinux.lds.S ++++ b/arch/powerpc/kernel/vmlinux.lds.S +@@ -37,12 +37,6 @@ jiffies = jiffies_64 + 4; + #endif + SECTIONS + { +- /* Sections to be discarded. */ +- /DISCARD/ : { +- *(.exitcall.exit) +- EXIT_DATA +- } +- + . = KERNELBASE; + + /* +@@ -290,6 +284,12 @@ SECTIONS + __bss_stop = .; + } + ++ /* Sections to be discarded. */ ++ /DISCARD/ : { ++ *(.exitcall.exit) ++ EXIT_DATA ++ } ++ + . = ALIGN(PAGE_SIZE); + _end = . ; + PROVIDE32 (end = .); +--- a/arch/arm/kernel/vmlinux.lds.S ++++ b/arch/arm/kernel/vmlinux.lds.S +@@ -76,16 +76,6 @@ SECTIONS + #endif + } + +- /DISCARD/ : { /* Exit code and data */ +- EXIT_TEXT +- EXIT_DATA +- *(.exitcall.exit) +-#ifndef CONFIG_MMU +- *(.fixup) +- *(__ex_table) +-#endif +- } +- + .text : { /* Real text segment */ + _text = .; /* Text and read-only data */ + __exception_text_start = .; +@@ -173,6 +163,17 @@ SECTIONS + *(COMMON) + _end = .; + } ++ ++ /DISCARD/ : { /* Exit code and data */ ++ EXIT_TEXT ++ EXIT_DATA ++ *(.exitcall.exit) ++#ifndef CONFIG_MMU ++ *(.fixup) ++ *(__ex_table) ++#endif ++ } ++ + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) }