X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=target%2Flinux%2Fgeneric-2.6%2Fpatches-2.6.28%2F027-module_exports.patch;h=e931ec9d9b30380daf1a31c79ca10ebd4ab3b1f2;hp=c7cf2fb231cc0f24d06206107fbcaf18b088fbe3;hb=bf1474d18f8acccf23a745b6fc0428213feae4ad;hpb=711f50a7acdd0634bff8dad61fdb7d291a6615ea 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 c7cf2fb231..e931ec9d9b 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 @@ -5,24 +5,24 @@ #endif +#ifndef SYMTAB_KEEP_STR -+#define SYMTAB_KEEP_STR *(__ksymtab_strings*) ++#define SYMTAB_KEEP_STR *(__ksymtab_strings.*) +#define SYMTAB_DISCARD_STR +#else -+#define SYMTAB_DISCARD_STR *(__ksymtab_strings*) ++#define SYMTAB_DISCARD_STR *(__ksymtab_strings.*) +#endif + +#ifndef SYMTAB_KEEP -+#define SYMTAB_KEEP *(__ksymtab*) ++#define SYMTAB_KEEP *(__ksymtab.*) +#define SYMTAB_DISCARD +#else -+#define SYMTAB_DISCARD *(__ksymtab*) ++#define SYMTAB_DISCARD *(__ksymtab.*) +#endif + +#ifndef SYMTAB_KEEP_GPL -+#define SYMTAB_KEEP_GPL *(__ksymtab_gpl*) ++#define SYMTAB_KEEP_GPL *(__ksymtab_gpl.*) +#define SYMTAB_DISCARD_GPL +#else -+#define SYMTAB_DISCARD_GPL *(__ksymtab_gpl*) ++#define SYMTAB_DISCARD_GPL *(__ksymtab_gpl.*) +#endif + #ifndef VMLINUX_SYMBOL @@ -49,7 +49,7 @@ __ksymtab_unused : AT(ADDR(__ksymtab_unused) - LOAD_OFFSET) { \ VMLINUX_SYMBOL(__start___ksymtab_unused) = .; \ - *(__ksymtab_unused) \ -+ *(__ksymtab_unused*) \ ++ *(__ksymtab_unused.*) \ VMLINUX_SYMBOL(__stop___ksymtab_unused) = .; \ } \ \ @@ -57,7 +57,7 @@ __ksymtab_unused_gpl : AT(ADDR(__ksymtab_unused_gpl) - LOAD_OFFSET) { \ VMLINUX_SYMBOL(__start___ksymtab_unused_gpl) = .; \ - *(__ksymtab_unused_gpl) \ -+ *(__ksymtab_unused_gpl*) \ ++ *(__ksymtab_unused_gpl.*) \ VMLINUX_SYMBOL(__stop___ksymtab_unused_gpl) = .; \ } \ \ @@ -65,7 +65,7 @@ __ksymtab_gpl_future : AT(ADDR(__ksymtab_gpl_future) - LOAD_OFFSET) { \ VMLINUX_SYMBOL(__start___ksymtab_gpl_future) = .; \ - *(__ksymtab_gpl_future) \ -+ *(__ksymtab_gpl_future*) \ ++ *(__ksymtab_gpl_future.*) \ VMLINUX_SYMBOL(__stop___ksymtab_gpl_future) = .; \ } \ \ @@ -78,9 +78,9 @@ + } \ + \ + /DISCARD/ : { \ -+ *(__ksymtab.*) \ -+ *(__ksymtab_gpl.*) \ -+ *(__ksymtab_strings.*) \ ++ SYMTAB_DISCARD \ ++ SYMTAB_DISCARD_GPL \ ++ SYMTAB_DISCARD_STR \ } \ \ /* __*init sections */ \ @@ -152,3 +152,40 @@ . = 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) }