kernel: fix stripping symbol exports
[openwrt.git] / target / linux / generic / patches-3.6 / 220-module_exports.patch
index 8acb18f..4383aa2 100644 (file)
@@ -1,34 +1,25 @@
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
-@@ -52,6 +52,27 @@
+@@ -52,6 +52,18 @@
  #define LOAD_OFFSET 0
  #endif
  
 +#ifndef SYMTAB_KEEP_STR
++#define SYMTAB_KEEP *(SORT(___ksymtab+*))
++#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*))
 +#define SYMTAB_KEEP_STR *(__ksymtab_strings+*)
-+#define SYMTAB_DISCARD_STR
-+#else
-+#define SYMTAB_DISCARD_STR *(__ksymtab_strings+*)
 +#endif
 +
-+#ifndef SYMTAB_KEEP
-+#define SYMTAB_KEEP *(SORT(___ksymtab+*))
++#ifndef SYMTAB_DISCARD
 +#define SYMTAB_DISCARD
-+#else
-+#define SYMTAB_DISCARD *(SORT(___ksymtab+*))
-+#endif
-+
-+#ifndef SYMTAB_KEEP_GPL
-+#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*))
 +#define SYMTAB_DISCARD_GPL
-+#else
-+#define SYMTAB_DISCARD_GPL *(SORT(___ksymtab_gpl+*))
++#define SYMTAB_DISCARD_STR
 +#endif
 +
  #ifndef SYMBOL_PREFIX
  #define VMLINUX_SYMBOL(sym) sym
  #else
-@@ -276,14 +297,14 @@
+@@ -276,14 +288,14 @@
        /* Kernel symbol table: Normal symbols */                       \
        __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {         \
                VMLINUX_SYMBOL(__start___ksymtab) = .;                  \
@@ -45,7 +36,7 @@
                VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .;               \
        }                                                               \
                                                                        \
-@@ -345,7 +366,7 @@
+@@ -345,7 +357,7 @@
                                                                        \
        /* Kernel symbol table: strings */                              \
          __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {       \
@@ -54,7 +45,7 @@
        }                                                               \
                                                                        \
        /* __*init sections */                                          \
-@@ -670,6 +691,9 @@
+@@ -670,6 +682,9 @@
        EXIT_TEXT                                                       \
        EXIT_DATA                                                       \
        EXIT_CALL                                                       \
        = MODULE_SYMBOL_PREFIX #sym;                            \
        static const struct kernel_symbol __ksymtab_##sym       \
        __used                                                  \
+--- a/scripts/Makefile.build
++++ b/scripts/Makefile.build
+@@ -348,7 +348,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
+ # Linker scripts preprocessor (.lds.S -> .lds)
+ # ---------------------------------------------------------------------------
+ quiet_cmd_cpp_lds_S = LDS     $@
+-      cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -C -U$(ARCH) \
++      cmd_cpp_lds_S = $(CPP) $(EXTRA_LDSFLAGS) $(cpp_flags) -P -C -U$(ARCH) \
+                            -D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $<
+ $(obj)/%.lds: $(src)/%.lds.S FORCE