Changeset 34458


Ignore:
Timestamp:
2012-12-02T18:42:17+01:00 (5 years ago)
Author:
nbd
Message:

kernel: fix stripping symbol exports

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/kernel-build.mk

    r28361 r34458  
    6868        touch $$@ 
    6969 
    70   $(KERNEL_BUILD_DIR)/symtab.txt: FORCE 
     70  $(KERNEL_BUILD_DIR)/symtab.h: FORCE 
     71        rm -f $(KERNEL_BUILD_DIR)/symtab.h 
     72        touch $(KERNEL_BUILD_DIR)/symtab.h 
     73        +$(MAKE) $(KERNEL_MAKEOPTS) vmlinux 
    7174        find $(LINUX_DIR) $(STAGING_DIR_ROOT)/lib/modules -name \*.ko | \ 
    7275                xargs $(TARGET_CROSS)nm | \ 
    7376                awk '$$$$1 == "U" { print $$$$2 } ' | \ 
    74                 sort -u > $$@ 
    75  
    76   $(KERNEL_BUILD_DIR)/symtab.h: $(KERNEL_BUILD_DIR)/symtab.txt 
     77                sort -u > $(KERNEL_BUILD_DIR)/mod_symtab.txt 
     78        $(TARGET_CROSS)nm -n $(LINUX_DIR)/vmlinux.o | grep ' r __ksymtab' | sed -e 's,........ r __ksymtab_,,' > $(KERNEL_BUILD_DIR)/kernel_symtab.txt 
     79        grep -f $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_include.txt 
     80        grep -vf $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_exclude.txt 
    7781        ( \ 
    7882                echo '#define SYMTAB_KEEP \'; \ 
    79                 cat $(KERNEL_BUILD_DIR)/symtab.txt | \ 
     83                cat $(KERNEL_BUILD_DIR)/sym_include.txt | \ 
    8084                        awk '{print "*(__ksymtab." $$$$1 ") \\" }'; \ 
    8185                echo; \ 
    8286                echo '#define SYMTAB_KEEP_GPL \'; \ 
    83                 cat $(KERNEL_BUILD_DIR)/symtab.txt | \ 
     87                cat $(KERNEL_BUILD_DIR)/sym_include.txt | \ 
    8488                        awk '{print "*(__ksymtab_gpl." $$$$1 ") \\" }'; \ 
    8589                echo; \ 
    8690                echo '#define SYMTAB_KEEP_STR \'; \ 
    87                 cat $(KERNEL_BUILD_DIR)/symtab.txt | \ 
     91                cat $(KERNEL_BUILD_DIR)/sym_include.txt | \ 
     92                        awk '{print "*(__ksymtab_strings." $$$$1 ") \\" }'; \ 
     93                echo; \ 
     94                echo '#define SYMTAB_DISCARD \'; \ 
     95                cat $(KERNEL_BUILD_DIR)/sym_exclude.txt | \ 
     96                        awk '{print "*(__ksymtab." $$$$1 ") \\" }'; \ 
     97                echo; \ 
     98                echo '#define SYMTAB_DISCARD_GPL \'; \ 
     99                cat $(KERNEL_BUILD_DIR)/sym_exclude.txt | \ 
     100                        awk '{print "*(__ksymtab_gpl." $$$$1 ") \\" }'; \ 
     101                echo; \ 
     102                echo '#define SYMTAB_DISCARD_STR \'; \ 
     103                cat $(KERNEL_BUILD_DIR)/sym_exclude.txt | \ 
    88104                        awk '{print "*(__ksymtab_strings." $$$$1 ") \\" }'; \ 
    89105                echo; \ 
  • trunk/target/linux/generic/patches-3.3/220-module_exports.patch

    r29986 r34458  
    11--- a/include/asm-generic/vmlinux.lds.h 
    22+++ b/include/asm-generic/vmlinux.lds.h 
    3 @@ -52,6 +52,27 @@ 
     3@@ -52,6 +52,18 @@ 
    44 #define LOAD_OFFSET 0 
    55 #endif 
    66  
    77+#ifndef SYMTAB_KEEP_STR 
     8+#define SYMTAB_KEEP *(SORT(___ksymtab+*)) 
     9+#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*)) 
    810+#define SYMTAB_KEEP_STR *(__ksymtab_strings+*) 
    9 +#define SYMTAB_DISCARD_STR 
    10 +#else 
    11 +#define SYMTAB_DISCARD_STR *(__ksymtab_strings+*) 
    1211+#endif 
    1312+ 
    14 +#ifndef SYMTAB_KEEP 
    15 +#define SYMTAB_KEEP *(SORT(___ksymtab+*)) 
     13+#ifndef SYMTAB_DISCARD 
    1614+#define SYMTAB_DISCARD 
    17 +#else 
    18 +#define SYMTAB_DISCARD *(SORT(___ksymtab+*)) 
    19 +#endif 
    20 + 
    21 +#ifndef SYMTAB_KEEP_GPL 
    22 +#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*)) 
    2315+#define SYMTAB_DISCARD_GPL 
    24 +#else 
    25 +#define SYMTAB_DISCARD_GPL *(SORT(___ksymtab_gpl+*)) 
     16+#define SYMTAB_DISCARD_STR 
    2617+#endif 
    2718+ 
     
    2920 #define VMLINUX_SYMBOL(sym) sym 
    3021 #else 
    31 @@ -275,14 +296,14 @@ 
     22@@ -275,14 +287,14 @@ 
    3223        /* Kernel symbol table: Normal symbols */                       \ 
    3324        __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {         \ 
     
    4637        }                                                               \ 
    4738                                                                        \ 
    48 @@ -344,7 +365,7 @@ 
     39@@ -344,7 +356,7 @@ 
    4940                                                                        \ 
    5041        /* Kernel symbol table: strings */                              \ 
     
    5546                                                                        \ 
    5647        /* __*init sections */                                          \ 
    57 @@ -676,6 +697,9 @@ 
     48@@ -676,6 +688,9 @@ 
    5849        EXIT_TEXT                                                       \ 
    5950        EXIT_DATA                                                       \ 
     
    8879        static const struct kernel_symbol __ksymtab_##sym       \ 
    8980        __used                                                  \ 
     81--- a/scripts/Makefile.build 
     82+++ b/scripts/Makefile.build 
     83@@ -346,7 +346,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $( 
     84 # Linker scripts preprocessor (.lds.S -> .lds) 
     85 # --------------------------------------------------------------------------- 
     86 quiet_cmd_cpp_lds_S = LDS     $@ 
     87-      cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -C -U$(ARCH) \ 
     88+      cmd_cpp_lds_S = $(CPP) $(EXTRA_LDSFLAGS) $(cpp_flags) -P -C -U$(ARCH) \ 
     89                             -D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $< 
     90  
     91 $(obj)/%.lds: $(src)/%.lds.S FORCE 
  • trunk/target/linux/generic/patches-3.6/220-module_exports.patch

    r33911 r34458  
    11--- a/include/asm-generic/vmlinux.lds.h 
    22+++ b/include/asm-generic/vmlinux.lds.h 
    3 @@ -52,6 +52,27 @@ 
     3@@ -52,6 +52,18 @@ 
    44 #define LOAD_OFFSET 0 
    55 #endif 
    66  
    77+#ifndef SYMTAB_KEEP_STR 
     8+#define SYMTAB_KEEP *(SORT(___ksymtab+*)) 
     9+#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*)) 
    810+#define SYMTAB_KEEP_STR *(__ksymtab_strings+*) 
    9 +#define SYMTAB_DISCARD_STR 
    10 +#else 
    11 +#define SYMTAB_DISCARD_STR *(__ksymtab_strings+*) 
    1211+#endif 
    1312+ 
    14 +#ifndef SYMTAB_KEEP 
    15 +#define SYMTAB_KEEP *(SORT(___ksymtab+*)) 
     13+#ifndef SYMTAB_DISCARD 
    1614+#define SYMTAB_DISCARD 
    17 +#else 
    18 +#define SYMTAB_DISCARD *(SORT(___ksymtab+*)) 
    19 +#endif 
    20 + 
    21 +#ifndef SYMTAB_KEEP_GPL 
    22 +#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*)) 
    2315+#define SYMTAB_DISCARD_GPL 
    24 +#else 
    25 +#define SYMTAB_DISCARD_GPL *(SORT(___ksymtab_gpl+*)) 
     16+#define SYMTAB_DISCARD_STR 
    2617+#endif 
    2718+ 
     
    2920 #define VMLINUX_SYMBOL(sym) sym 
    3021 #else 
    31 @@ -276,14 +297,14 @@ 
     22@@ -276,14 +288,14 @@ 
    3223        /* Kernel symbol table: Normal symbols */                       \ 
    3324        __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {         \ 
     
    4637        }                                                               \ 
    4738                                                                        \ 
    48 @@ -345,7 +366,7 @@ 
     39@@ -345,7 +357,7 @@ 
    4940                                                                        \ 
    5041        /* Kernel symbol table: strings */                              \ 
     
    5546                                                                        \ 
    5647        /* __*init sections */                                          \ 
    57 @@ -670,6 +691,9 @@ 
     48@@ -670,6 +682,9 @@ 
    5849        EXIT_TEXT                                                       \ 
    5950        EXIT_DATA                                                       \ 
     
    8879        static const struct kernel_symbol __ksymtab_##sym       \ 
    8980        __used                                                  \ 
     81--- a/scripts/Makefile.build 
     82+++ b/scripts/Makefile.build 
     83@@ -348,7 +348,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $( 
     84 # Linker scripts preprocessor (.lds.S -> .lds) 
     85 # --------------------------------------------------------------------------- 
     86 quiet_cmd_cpp_lds_S = LDS     $@ 
     87-      cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -C -U$(ARCH) \ 
     88+      cmd_cpp_lds_S = $(CPP) $(EXTRA_LDSFLAGS) $(cpp_flags) -P -C -U$(ARCH) \ 
     89                             -D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $< 
     90  
     91 $(obj)/%.lds: $(src)/%.lds.S FORCE 
  • trunk/target/linux/generic/patches-3.7/220-module_exports.patch

    r34247 r34458  
    11--- a/include/asm-generic/vmlinux.lds.h 
    22+++ b/include/asm-generic/vmlinux.lds.h 
    3 @@ -52,6 +52,27 @@ 
     3@@ -52,6 +52,18 @@ 
    44 #define LOAD_OFFSET 0 
    55 #endif 
    66  
    77+#ifndef SYMTAB_KEEP_STR 
     8+#define SYMTAB_KEEP *(SORT(___ksymtab+*)) 
     9+#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*)) 
    810+#define SYMTAB_KEEP_STR *(__ksymtab_strings+*) 
    9 +#define SYMTAB_DISCARD_STR 
    10 +#else 
    11 +#define SYMTAB_DISCARD_STR *(__ksymtab_strings+*) 
    1211+#endif 
    1312+ 
    14 +#ifndef SYMTAB_KEEP 
    15 +#define SYMTAB_KEEP *(SORT(___ksymtab+*)) 
     13+#ifndef SYMTAB_DISCARD 
    1614+#define SYMTAB_DISCARD 
    17 +#else 
    18 +#define SYMTAB_DISCARD *(SORT(___ksymtab+*)) 
    19 +#endif 
    20 + 
    21 +#ifndef SYMTAB_KEEP_GPL 
    22 +#define SYMTAB_KEEP_GPL *(SORT(___ksymtab_gpl+*)) 
    2315+#define SYMTAB_DISCARD_GPL 
    24 +#else 
    25 +#define SYMTAB_DISCARD_GPL *(SORT(___ksymtab_gpl+*)) 
     16+#define SYMTAB_DISCARD_STR 
    2617+#endif 
    2718+ 
     
    2920 #define VMLINUX_SYMBOL(sym) sym 
    3021 #else 
    31 @@ -276,14 +297,14 @@ 
     22@@ -276,14 +288,14 @@ 
    3223        /* Kernel symbol table: Normal symbols */                       \ 
    3324        __ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {         \ 
     
    4637        }                                                               \ 
    4738                                                                        \ 
    48 @@ -345,7 +366,7 @@ 
     39@@ -345,7 +357,7 @@ 
    4940                                                                        \ 
    5041        /* Kernel symbol table: strings */                              \ 
     
    5546                                                                        \ 
    5647        /* __*init sections */                                          \ 
    57 @@ -679,6 +700,9 @@ 
     48@@ -679,6 +691,9 @@ 
    5849        EXIT_TEXT                                                       \ 
    5950        EXIT_DATA                                                       \ 
     
    8879        static const struct kernel_symbol __ksymtab_##sym       \ 
    8980        __used                                                  \ 
     81--- a/scripts/Makefile.build 
     82+++ b/scripts/Makefile.build 
     83@@ -348,7 +348,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $( 
     84 # Linker scripts preprocessor (.lds.S -> .lds) 
     85 # --------------------------------------------------------------------------- 
     86 quiet_cmd_cpp_lds_S = LDS     $@ 
     87-      cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -C -U$(ARCH) \ 
     88+      cmd_cpp_lds_S = $(CPP) $(EXTRA_LDSFLAGS) $(cpp_flags) -P -C -U$(ARCH) \ 
     89                             -D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $< 
     90  
     91 $(obj)/%.lds: $(src)/%.lds.S FORCE 
Note: See TracChangeset for help on using the changeset viewer.