linux/2.6.31: R.I.P.
[openwrt/svn-archive/archive.git] / target / linux / generic / patches-2.6.31 / 028-module_exports.patch
diff --git a/target/linux/generic/patches-2.6.31/028-module_exports.patch b/target/linux/generic/patches-2.6.31/028-module_exports.patch
deleted file mode 100644 (file)
index 3d73a02..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
---- a/include/asm-generic/vmlinux.lds.h
-+++ b/include/asm-generic/vmlinux.lds.h
-@@ -55,6 +55,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
-@@ -256,35 +277,35 @@
-       /* Kernel symbol table: Normal symbols */                       \
-       __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {         \
-               VMLINUX_SYMBOL(__start___ksymtab) = .;                  \
--              *(__ksymtab)                                            \
-+              SYMTAB_KEEP                                             \
-               VMLINUX_SYMBOL(__stop___ksymtab) = .;                   \
-       }                                                               \
-                                                                       \
-       /* Kernel symbol table: GPL-only symbols */                     \
-       __ksymtab_gpl     : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {     \
-               VMLINUX_SYMBOL(__start___ksymtab_gpl) = .;              \
--              *(__ksymtab_gpl)                                        \
-+              SYMTAB_KEEP_GPL                                         \
-               VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .;               \
-       }                                                               \
-                                                                       \
-       /* Kernel symbol table: Normal unused symbols */                \
-       __ksymtab_unused  : AT(ADDR(__ksymtab_unused) - LOAD_OFFSET) {  \
-               VMLINUX_SYMBOL(__start___ksymtab_unused) = .;           \
--              *(__ksymtab_unused)                                     \
-+              *(__ksymtab_unused.*)                                   \
-               VMLINUX_SYMBOL(__stop___ksymtab_unused) = .;            \
-       }                                                               \
-                                                                       \
-       /* Kernel symbol table: GPL-only unused symbols */              \
-       __ksymtab_unused_gpl : AT(ADDR(__ksymtab_unused_gpl) - LOAD_OFFSET) { \
-               VMLINUX_SYMBOL(__start___ksymtab_unused_gpl) = .;       \
--              *(__ksymtab_unused_gpl)                                 \
-+              *(__ksymtab_unused_gpl.*)                               \
-               VMLINUX_SYMBOL(__stop___ksymtab_unused_gpl) = .;        \
-       }                                                               \
-                                                                       \
-       /* Kernel symbol table: GPL-future-only symbols */              \
-       __ksymtab_gpl_future : AT(ADDR(__ksymtab_gpl_future) - LOAD_OFFSET) { \
-               VMLINUX_SYMBOL(__start___ksymtab_gpl_future) = .;       \
--              *(__ksymtab_gpl_future)                                 \
-+              *(__ksymtab_gpl_future.*)                               \
-               VMLINUX_SYMBOL(__stop___ksymtab_gpl_future) = .;        \
-       }                                                               \
-                                                                       \
-@@ -325,7 +346,13 @@
-                                                                       \
-       /* Kernel symbol table: strings */                              \
-         __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {       \
--              *(__ksymtab_strings)                                    \
-+              SYMTAB_KEEP_STR                                         \
-+      }                                                               \
-+                                                                      \
-+      /DISCARD/ : {                                                   \
-+              SYMTAB_DISCARD                                          \
-+              SYMTAB_DISCARD_GPL                                      \
-+              SYMTAB_DISCARD_STR                                      \
-       }                                                               \
-                                                                       \
-       /* __*init sections */                                          \
---- a/include/linux/module.h
-+++ b/include/linux/module.h
-@@ -188,16 +188,24 @@ void *__symbol_get_gpl(const char *symbo
- #define __CRC_SYMBOL(sym, sec)
- #endif
-+#ifdef MODULE
-+#define __EXPORT_SUFFIX(sym)
-+#else
-+#define __EXPORT_SUFFIX(sym) "." #sym
-+#endif
-+
- /* For every exported symbol, place a struct in the __ksymtab section */
- #define __EXPORT_SYMBOL(sym, sec)                             \
-       extern typeof(sym) sym;                                 \
-       __CRC_SYMBOL(sym, sec)                                  \
-       static const char __kstrtab_##sym[]                     \
--      __attribute__((section("__ksymtab_strings"), aligned(1))) \
-+      __attribute__((section("__ksymtab_strings"              \
-+        __EXPORT_SUFFIX(sym)), aligned(1)))                   \
-       = MODULE_SYMBOL_PREFIX #sym;                            \
-       static const struct kernel_symbol __ksymtab_##sym       \
-       __used                                                  \
--      __attribute__((section("__ksymtab" sec), unused))       \
-+      __attribute__((section("__ksymtab" sec                  \
-+        __EXPORT_SUFFIX(sym)), unused))                       \
-       = { (unsigned long)&sym, __kstrtab_##sym }
- #define EXPORT_SYMBOL(sym)                                    \
---- a/arch/arm/kernel/vmlinux.lds.S
-+++ b/arch/arm/kernel/vmlinux.lds.S
-@@ -79,26 +79,6 @@ SECTIONS
- #endif
-       }
--      /DISCARD/ : {                   /* Exit code and data           */
--              EXIT_TEXT
--              EXIT_DATA
--              *(.exitcall.exit)
--              *(.ARM.exidx.exit.text)
--              *(.ARM.extab.exit.text)
--#ifndef CONFIG_HOTPLUG_CPU
--              *(.ARM.exidx.cpuexit.text)
--              *(.ARM.extab.cpuexit.text)
--#endif
--#ifndef CONFIG_HOTPLUG
--              *(.ARM.exidx.devexit.text)
--              *(.ARM.extab.devexit.text)
--#endif
--#ifndef CONFIG_MMU
--              *(.fixup)
--              *(__ex_table)
--#endif
--      }
--
-       .text : {                       /* Real text segment            */
-               _text = .;              /* Text and read-only data      */
-                       __exception_text_start = .;
-@@ -205,6 +185,28 @@ SECTIONS
-               __bss_stop = .;
-               _end = .;
-       }
-+
-+      /DISCARD/ : {                   /* Exit code and data           */
-+              EXIT_TEXT
-+              EXIT_DATA
-+              *(.discard)
-+              *(.exitcall.exit)
-+              *(.ARM.exidx.exit.text)
-+              *(.ARM.extab.exit.text)
-+#ifndef CONFIG_HOTPLUG_CPU
-+              *(.ARM.exidx.cpuexit.text)
-+              *(.ARM.extab.cpuexit.text)
-+#endif
-+#ifndef CONFIG_HOTPLUG
-+              *(.ARM.exidx.devexit.text)
-+              *(.ARM.extab.devexit.text)
-+#endif
-+#ifndef CONFIG_MMU
-+              *(.fixup)
-+              *(__ex_table)
-+#endif
-+      }
-+
-                                       /* Stabs debugging sections.    */
-       .stab 0 : { *(.stab) }
-       .stabstr 0 : { *(.stabstr) }
---- 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;
- /*
-@@ -295,6 +289,12 @@ SECTIONS
-               __bss_stop = .;
-       }
-+      /* Sections to be discarded. */
-+      /DISCARD/ : {
-+      *(.exitcall.exit)
-+      EXIT_DATA
-+      }
-+
-       . = ALIGN(PAGE_SIZE);
-       _end = . ;
-       PROVIDE32 (end = .);