History

Merge branches 'tracing/ftrace', 'tracing/kmemtrace' and 'linus' into tracing/core

Ingo Molnar committed 17 years ago

Commit dc573f93 parents b3a8c34 ecf441b b1792e31490 files · +27283 −12277Browse files

Showing the changes to scripts (10 of 1490 files). Show all

Unified · Split

10 files
  1. scripts/Makefile.build +20 −35
  2. scripts/Makefile.modinst +1 −2
  3. scripts/config +4 −0
  4. scripts/genksyms/genksyms.c +6 −15
  5. scripts/genksyms/keywords.c_shipped +93 −96
  6. scripts/genksyms/keywords.gperf +0 −2
  7. scripts/kallsyms.c +13 −8
  8. scripts/mksysmap +5 −2
  9. scripts/mod/file2alias.c +15 −2
  10. scripts/strip-symbols +0 −22
scripts/Makefile.build+20−35
@@ -151,16 +151,16 @@ cmd_cc_i_c = $(CPP) $(c_flags) -o $@ $< · 150 unmodified lines
151$(obj)/%.i: $(src)/%.c FORCE151$(obj)/%.i: $(src)/%.c FORCE
152 $(call if_changed_dep,cc_i_c)152 $(call if_changed_dep,cc_i_c)
153 153
154cmd_genksyms = \154cmd_gensymtypes = \
155 $(CPP) -D__GENKSYMS__ $(c_flags) $< | \155 $(CPP) -D__GENKSYMS__ $(c_flags) $< | \
156 $(GENKSYMS) -T $@ -A -a $(ARCH) \156 $(GENKSYMS) -T $@ -a $(ARCH) \
157 $(if $(KBUILD_PRESERVE),-p) \157 $(if $(KBUILD_PRESERVE),-p) \
158 $(if $(1),-r $(firstword $(wildcard $(@:.symtypes=.symref) /dev/null)))158 $(if $(1),-r $(firstword $(wildcard $(@:.symtypes=.symref) /dev/null)))
159 159
160quiet_cmd_cc_symtypes_c = SYM $(quiet_modtag) $@160quiet_cmd_cc_symtypes_c = SYM $(quiet_modtag) $@
161cmd_cc_symtypes_c = \161cmd_cc_symtypes_c = \
162 set -e; \162 set -e; \
163 $(call cmd_genksyms, true) >/dev/null; \163 $(call cmd_gensymtypes, true) >/dev/null; \
164 test -s $@ || rm -f $@164 test -s $@ || rm -f $@
165 165
166$(obj)/%.symtypes : $(src)/%.c FORCE166$(obj)/%.symtypes : $(src)/%.c FORCE
@@ -177,38 +177,28 @@ cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< · 10 unmodified lines
177 177
178else178else
179# When module versioning is enabled the following steps are executed:179# When module versioning is enabled the following steps are executed:
180# o compile a .tmp_<file>.s from <file>.c180# o compile a .tmp_<file>.o from <file>.c
181# o if .tmp_<file>.s doesn't contain a __ksymtab version, i.e. does181# o if .tmp_<file>.o doesn't contain a __ksymtab version, i.e. does
182# not export symbols, we just assemble .tmp_<file>.s to <file>.o and182# not export symbols, we just rename .tmp_<file>.o to <file>.o and
183# are done.183# are done.
184# o otherwise, we calculate symbol versions using the good old184# o otherwise, we calculate symbol versions using the good old
185# genksyms on the preprocessed source and postprocess them in a way185# genksyms on the preprocessed source and postprocess them in a way
186# that they are usable as assembly source186# that they are usable as a linker script
187# o assemble <file>.o from .tmp_<file>.s forcing inclusion of directives187# o generate <file>.o from .tmp_<file>.o using the linker to
188# defining the actual values of __crc_*, followed by objcopy-ing them188# replace the unresolved symbols __crc_exported_symbol with
189# to force these symbols to be local to permit stripping them later.189# the actual value of the checksum generated by genksyms
190s_file = $(@D)/.tmp_$(@F:.o=.s)
191v_file = $(@D)/.tmp_$(@F:.o=.v)
192tmp_o_file = $(@D)/.tmp_$(@F)
193no_g_c_flags = $(filter-out -g%,$(c_flags))
194
195cmd_cc_o_c = $(CC) $(c_flags) -S -o $(s_file) $<
196 190
191cmd_cc_o_c = $(CC) $(c_flags) -c -o $(@D)/.tmp_$(@F) $<
197cmd_modversions = \192cmd_modversions = \
198 if grep -q __ksymtab $(s_file); then \193 if $(OBJDUMP) -h $(@D)/.tmp_$(@F) | grep -q __ksymtab; then \
199 if $(call cmd_genksyms, $(KBUILD_SYMTYPES)) > $(v_file) \194 $(call cmd_gensymtypes, $(KBUILD_SYMTYPES)) \
200 && $(CC) $(no_g_c_flags) -c -Wa,$(v_file) \195 > $(@D)/.tmp_$(@F:.o=.ver); \
201 -o $(tmp_o_file) $(s_file) \196 \
202 && $(OBJCOPY) -L '__crc_*' -L '___crc_*' -w \197 $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \
203 $(tmp_o_file) $@; \198 -T $(@D)/.tmp_$(@F:.o=.ver); \
204 then \199 rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver); \
205 : ; \
206 else \
207 rm -f $@; exit 1; \
208 fi; \
209 else \200 else \
210 rm -f $(v_file); \201 mv -f $(@D)/.tmp_$(@F) $@; \
211 $(CC) $(no_g_c_flags) -c -o $@ $(s_file); \
212 fi;202 fi;
213endif203endif
214 204
@@ -226,12 +216,7 @@ define rule_cc_o_c · 11 unmodified lines
226 $(cmd_record_mcount) \216 $(cmd_record_mcount) \
227 scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' > \217 scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' > \
228 $(dot-target).tmp; \218 $(dot-target).tmp; \
229 if [ -r $(@D)/.tmp_$(@F:.o=.v) ]; then \219 rm -f $(depfile); \
230 echo >> $(dot-target).tmp; \
231 echo '$@: $(GENKSYMS)' >> $(dot-target).tmp; \
232 echo '$(GENKSYMS):: ;' >> $(dot-target).tmp; \
233 fi; \
234 rm -f $(depfile) $(@D)/.tmp_$(@F:.o=.?); \
235 mv -f $(dot-target).tmp $(dot-target).cmd220 mv -f $(dot-target).tmp $(dot-target).cmd
236endef221endef
237 222
scripts/Makefile.modinst+1−2
@@ -17,8 +17,7 @@ __modinst: $(modules) · 16 unmodified lines
17 @:17 @:
18 18
19quiet_cmd_modules_install = INSTALL $@19quiet_cmd_modules_install = INSTALL $@
20 cmd_modules_install = mkdir -p $(2); \20 cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@)
21 $(mod_strip_cmd) $@ $(2)/$(notdir $@) || cp $@ $(2)
22 21
23# Modules built outside the kernel source tree go into extra by default22# Modules built outside the kernel source tree go into extra by default
24INSTALL_MOD_DIR ?= extra23INSTALL_MOD_DIR ?= extra
scripts/config+4−0
@@ -60,6 +60,10 @@ else · 59 unmodified lines
60 FN=.config60 FN=.config
61fi61fi
62 62
63if [ "$1" = "" ] ; then
64 usage
65fi
66
63while [ "$1" != "" ] ; do67while [ "$1" != "" ] ; do
64 CMD="$1"68 CMD="$1"
65 shift69 shift
scripts/genksyms/genksyms.c+6−15
@@ -43,7 +43,7 @@ int cur_line = 1; · 42 unmodified lines
43char *cur_filename;43char *cur_filename;
44 44
45static int flag_debug, flag_dump_defs, flag_reference, flag_dump_types,45static int flag_debug, flag_dump_defs, flag_reference, flag_dump_types,
46 flag_preserve, flag_warnings, flag_asm;46 flag_preserve, flag_warnings;
47static const char *arch = "";47static const char *arch = "";
48static const char *mod_prefix = "";48static const char *mod_prefix = "";
49 49
@@ -610,11 +610,8 @@ void export_symbol(const char *name) · 560 unmodified lines
610 if (flag_dump_defs)610 if (flag_dump_defs)
611 fputs(">\n", debugfile);611 fputs(">\n", debugfile);
612 612
613 /* Used as assembly source or a linker script. */613 /* Used as a linker script. */
614 printf(flag_asm614 printf("%s__crc_%s = 0x%08lx ;\n", mod_prefix, name, crc);
615 ? ".equiv %s__crc_%s, %#08lx\n"
616 : "%s__crc_%s = %#08lx ;\n",
617 mod_prefix, name, crc);
618 }615 }
619}616}
620 617
@@ -651,10 +648,9 @@ void error_with_pos(const char *fmt, ...) · 30 unmodified lines
651 648
652static void genksyms_usage(void)649static void genksyms_usage(void)
653{650{
654 fputs("Usage:\n" "genksyms [-aAdDTwqhV] > /path/to/.tmp_obj.ver\n" "\n"651 fputs("Usage:\n" "genksyms [-adDTwqhV] > /path/to/.tmp_obj.ver\n" "\n"
655#ifdef __GNU_LIBRARY__652#ifdef __GNU_LIBRARY__
656 " -a, --arch Select architecture\n"653 " -a, --arch Select architecture\n"
657 " -A, --asm Generate assembly rather than linker script\n"
658 " -d, --debug Increment the debug level (repeatable)\n"654 " -d, --debug Increment the debug level (repeatable)\n"
659 " -D, --dump Dump expanded symbol defs (for debugging only)\n"655 " -D, --dump Dump expanded symbol defs (for debugging only)\n"
660 " -r, --reference file Read reference symbols from a file\n"656 " -r, --reference file Read reference symbols from a file\n"
@@ -666,7 +662,6 @@ static void genksyms_usage(void) · 5 unmodified lines
666 " -V, --version Print the release version\n"662 " -V, --version Print the release version\n"
667#else /* __GNU_LIBRARY__ */663#else /* __GNU_LIBRARY__ */
668 " -a Select architecture\n"664 " -a Select architecture\n"
669 " -A Generate assembly rather than linker script\n"
670 " -d Increment the debug level (repeatable)\n"665 " -d Increment the debug level (repeatable)\n"
671 " -D Dump expanded symbol defs (for debugging only)\n"666 " -D Dump expanded symbol defs (for debugging only)\n"
672 " -r file Read reference symbols from a file\n"667 " -r file Read reference symbols from a file\n"
@@ -688,7 +683,6 @@ int main(int argc, char **argv) · 15 unmodified lines
688#ifdef __GNU_LIBRARY__683#ifdef __GNU_LIBRARY__
689 struct option long_opts[] = {684 struct option long_opts[] = {
690 {"arch", 1, 0, 'a'},685 {"arch", 1, 0, 'a'},
691 {"asm", 0, 0, 'A'},
692 {"debug", 0, 0, 'd'},686 {"debug", 0, 0, 'd'},
693 {"warnings", 0, 0, 'w'},687 {"warnings", 0, 0, 'w'},
694 {"quiet", 0, 0, 'q'},688 {"quiet", 0, 0, 'q'},
@@ -701,10 +695,10 @@ int main(int argc, char **argv) · 6 unmodified lines
701 {0, 0, 0, 0}695 {0, 0, 0, 0}
702 };696 };
703 697
704 while ((o = getopt_long(argc, argv, "a:dwqVADr:T:ph",698 while ((o = getopt_long(argc, argv, "a:dwqVDr:T:ph",
705 &long_opts[0], NULL)) != EOF)699 &long_opts[0], NULL)) != EOF)
706#else /* __GNU_LIBRARY__ */700#else /* __GNU_LIBRARY__ */
707 while ((o = getopt(argc, argv, "a:dwqVADr:T:ph")) != EOF)701 while ((o = getopt(argc, argv, "a:dwqVDr:T:ph")) != EOF)
708#endif /* __GNU_LIBRARY__ */702#endif /* __GNU_LIBRARY__ */
709 switch (o) {703 switch (o) {
710 case 'a':704 case 'a':
@@ -722,9 +716,6 @@ int main(int argc, char **argv) · 11 unmodified lines
722 case 'V':716 case 'V':
723 fputs("genksyms version 2.5.60\n", stderr);717 fputs("genksyms version 2.5.60\n", stderr);
724 break;718 break;
725 case 'A':
726 flag_asm = 1;
727 break;
728 case 'D':719 case 'D':
729 flag_dump_defs = 1;720 flag_dump_defs = 1;
730 break;721 break;
scripts/genksyms/keywords.c_shipped+93−96
@@ -1,4 +1,4 @@
1/* ANSI-C code produced by gperf version 3.0.1 */1/* ANSI-C code produced by gperf version 3.0.2 */
2/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */2/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
3 3
4#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \4#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -32,7 +32,7 @@ · 27 unmodified lines
32 32
33#line 3 "scripts/genksyms/keywords.gperf"33#line 3 "scripts/genksyms/keywords.gperf"
34struct resword { const char *name; int token; };34struct resword { const char *name; int token; };
35/* maximum key range = 64, duplicates = 0 */35/* maximum key range = 62, duplicates = 0 */
36 36
37#ifdef __GNUC__37#ifdef __GNUC__
38__inline38__inline
@@ -46,32 +46,32 @@ is_reserved_hash (register const char *str, register unsigned int len) · 7 unmodified lines
46{46{
47 static const unsigned char asso_values[] =47 static const unsigned char asso_values[] =
48 {48 {
49 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,49 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
50 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,50 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
51 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,51 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
52 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,52 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
53 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,53 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
54 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,54 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
55 67, 67, 67, 67, 67, 67, 67, 67, 67, 0,55 65, 65, 65, 65, 65, 65, 65, 65, 65, 5,
56 67, 67, 67, 67, 67, 67, 15, 67, 67, 67,56 65, 65, 65, 65, 65, 65, 35, 65, 65, 65,
57 0, 67, 67, 67, 67, 67, 67, 67, 67, 67,57 0, 65, 65, 65, 65, 65, 65, 65, 65, 65,
58 67, 67, 67, 67, 67, 0, 67, 0, 67, 5,58 65, 65, 65, 65, 65, 0, 65, 0, 65, 5,
59 25, 20, 15, 30, 67, 15, 67, 67, 10, 0,59 20, 15, 10, 30, 65, 15, 65, 65, 20, 0,
60 10, 40, 20, 67, 10, 5, 0, 10, 15, 67,60 10, 35, 20, 65, 10, 5, 0, 10, 5, 65,
61 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,61 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
62 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,62 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
63 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,63 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
64 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,64 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,65 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
66 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,66 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
67 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,67 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
68 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,68 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
69 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,69 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
70 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,70 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
71 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,71 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
72 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,72 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
73 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,73 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
74 67, 67, 67, 67, 67, 6774 65, 65, 65, 65, 65, 65
75 };75 };
76 return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];76 return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
77}77}
@@ -84,119 +84,116 @@ is_reserved_word (register const char *str, register unsigned int len) · 6 unmodified lines
84{84{
85 enum85 enum
86 {86 {
87 TOTAL_KEYWORDS = 45,87 TOTAL_KEYWORDS = 43,
88 MIN_WORD_LENGTH = 3,88 MIN_WORD_LENGTH = 3,
89 MAX_WORD_LENGTH = 24,89 MAX_WORD_LENGTH = 24,
90 MIN_HASH_VALUE = 3,90 MIN_HASH_VALUE = 3,
91 MAX_HASH_VALUE = 6691 MAX_HASH_VALUE = 64
92 };92 };
93 93
94 static const struct resword wordlist[] =94 static const struct resword wordlist[] =
95 {95 {
96 {""}, {""}, {""},96 {""}, {""}, {""},
97#line 28 "scripts/genksyms/keywords.gperf"97#line 26 "scripts/genksyms/keywords.gperf"
98 {"asm", ASM_KEYW},98 {"asm", ASM_KEYW},
99 {""},99 {""},
100#line 10 "scripts/genksyms/keywords.gperf"100#line 8 "scripts/genksyms/keywords.gperf"
101 {"__asm", ASM_KEYW},101 {"__asm", ASM_KEYW},
102 {""},102 {""},
103#line 11 "scripts/genksyms/keywords.gperf"103#line 9 "scripts/genksyms/keywords.gperf"
104 {"__asm__", ASM_KEYW},104 {"__asm__", ASM_KEYW},
105 {""}, {""},105 {""}, {""},
106#line 54 "scripts/genksyms/keywords.gperf"106#line 52 "scripts/genksyms/keywords.gperf"
107 {"__typeof__", TYPEOF_KEYW},107 {"__typeof__", TYPEOF_KEYW},
108 {""},108 {""},
109#line 14 "scripts/genksyms/keywords.gperf"109#line 12 "scripts/genksyms/keywords.gperf"
110 {"__const", CONST_KEYW},110 {"__const", CONST_KEYW},
111#line 13 "scripts/genksyms/keywords.gperf"111#line 11 "scripts/genksyms/keywords.gperf"
112 {"__attribute__", ATTRIBUTE_KEYW},112 {"__attribute__", ATTRIBUTE_KEYW},
113#line 15 "scripts/genksyms/keywords.gperf"113#line 13 "scripts/genksyms/keywords.gperf"
114 {"__const__", CONST_KEYW},114 {"__const__", CONST_KEYW},
115#line 20 "scripts/genksyms/keywords.gperf"115#line 18 "scripts/genksyms/keywords.gperf"
116 {"__signed__", SIGNED_KEYW},116 {"__signed__", SIGNED_KEYW},
117#line 46 "scripts/genksyms/keywords.gperf"117#line 44 "scripts/genksyms/keywords.gperf"
118 {"static", STATIC_KEYW},118 {"static", STATIC_KEYW},
119 {""},119#line 20 "scripts/genksyms/keywords.gperf"
120#line 41 "scripts/genksyms/keywords.gperf"120 {"__volatile__", VOLATILE_KEYW},
121#line 39 "scripts/genksyms/keywords.gperf"
121 {"int", INT_KEYW},122 {"int", INT_KEYW},
122#line 34 "scripts/genksyms/keywords.gperf"123#line 32 "scripts/genksyms/keywords.gperf"
123 {"char", CHAR_KEYW},124 {"char", CHAR_KEYW},
124#line 35 "scripts/genksyms/keywords.gperf"125#line 33 "scripts/genksyms/keywords.gperf"
125 {"const", CONST_KEYW},126 {"const", CONST_KEYW},
126#line 47 "scripts/genksyms/keywords.gperf"127#line 45 "scripts/genksyms/keywords.gperf"
127 {"struct", STRUCT_KEYW},128 {"struct", STRUCT_KEYW},
128#line 26 "scripts/genksyms/keywords.gperf"129#line 24 "scripts/genksyms/keywords.gperf"
129 {"__restrict__", RESTRICT_KEYW},130 {"__restrict__", RESTRICT_KEYW},
130#line 27 "scripts/genksyms/keywords.gperf"
131 {"restrict", RESTRICT_KEYW},
132#line 7 "scripts/genksyms/keywords.gperf"
133 {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
134#line 18 "scripts/genksyms/keywords.gperf"
135 {"__inline__", INLINE_KEYW},
136 {""},
137#line 22 "scripts/genksyms/keywords.gperf"
138 {"__volatile__", VOLATILE_KEYW},
139#line 5 "scripts/genksyms/keywords.gperf"
140 {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
141#line 25 "scripts/genksyms/keywords.gperf"131#line 25 "scripts/genksyms/keywords.gperf"
132 {"restrict", RESTRICT_KEYW},
133#line 23 "scripts/genksyms/keywords.gperf"
142 {"_restrict", RESTRICT_KEYW},134 {"_restrict", RESTRICT_KEYW},
143 {""},
144#line 12 "scripts/genksyms/keywords.gperf"
145 {"__attribute", ATTRIBUTE_KEYW},
146#line 6 "scripts/genksyms/keywords.gperf"
147 {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
148#line 16 "scripts/genksyms/keywords.gperf"135#line 16 "scripts/genksyms/keywords.gperf"
136 {"__inline__", INLINE_KEYW},
137#line 10 "scripts/genksyms/keywords.gperf"
138 {"__attribute", ATTRIBUTE_KEYW},
139 {""},
140#line 14 "scripts/genksyms/keywords.gperf"
149 {"__extension__", EXTENSION_KEYW},141 {"__extension__", EXTENSION_KEYW},
150#line 37 "scripts/genksyms/keywords.gperf"142#line 35 "scripts/genksyms/keywords.gperf"
151 {"enum", ENUM_KEYW},143 {"enum", ENUM_KEYW},
152#line 8 "scripts/genksyms/keywords.gperf"144#line 19 "scripts/genksyms/keywords.gperf"
153 {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW},145 {"__volatile", VOLATILE_KEYW},
154#line 38 "scripts/genksyms/keywords.gperf"146#line 36 "scripts/genksyms/keywords.gperf"
155 {"extern", EXTERN_KEYW},147 {"extern", EXTERN_KEYW},
156 {""},148 {""},
157#line 19 "scripts/genksyms/keywords.gperf"149#line 17 "scripts/genksyms/keywords.gperf"
158 {"__signed", SIGNED_KEYW},150 {"__signed", SIGNED_KEYW},
159#line 9 "scripts/genksyms/keywords.gperf"151#line 7 "scripts/genksyms/keywords.gperf"
160 {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},152 {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
161#line 49 "scripts/genksyms/keywords.gperf"153 {""},
162 {"union", UNION_KEYW},154#line 51 "scripts/genksyms/keywords.gperf"
163#line 53 "scripts/genksyms/keywords.gperf"
164 {"typeof", TYPEOF_KEYW},155 {"typeof", TYPEOF_KEYW},
165#line 48 "scripts/genksyms/keywords.gperf"156#line 46 "scripts/genksyms/keywords.gperf"
166 {"typedef", TYPEDEF_KEYW},157 {"typedef", TYPEDEF_KEYW},
167#line 17 "scripts/genksyms/keywords.gperf"158#line 15 "scripts/genksyms/keywords.gperf"
168 {"__inline", INLINE_KEYW},159 {"__inline", INLINE_KEYW},
169#line 33 "scripts/genksyms/keywords.gperf"160#line 31 "scripts/genksyms/keywords.gperf"
170 {"auto", AUTO_KEYW},161 {"auto", AUTO_KEYW},
171#line 21 "scripts/genksyms/keywords.gperf"162#line 47 "scripts/genksyms/keywords.gperf"
172 {"__volatile", VOLATILE_KEYW},163 {"union", UNION_KEYW},
173 {""}, {""},164 {""}, {""},
174#line 50 "scripts/genksyms/keywords.gperf"165#line 48 "scripts/genksyms/keywords.gperf"
175 {"unsigned", UNSIGNED_KEYW},166 {"unsigned", UNSIGNED_KEYW},
176 {""},167#line 49 "scripts/genksyms/keywords.gperf"
177#line 44 "scripts/genksyms/keywords.gperf"168 {"void", VOID_KEYW},
169#line 42 "scripts/genksyms/keywords.gperf"
178 {"short", SHORT_KEYW},170 {"short", SHORT_KEYW},
179#line 40 "scripts/genksyms/keywords.gperf"171 {""}, {""},
172#line 50 "scripts/genksyms/keywords.gperf"
173 {"volatile", VOLATILE_KEYW},
174 {""},
175#line 37 "scripts/genksyms/keywords.gperf"
176 {"float", FLOAT_KEYW},
177#line 34 "scripts/genksyms/keywords.gperf"
178 {"double", DOUBLE_KEYW},
179 {""},
180#line 5 "scripts/genksyms/keywords.gperf"
181 {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
182 {""}, {""},
183#line 38 "scripts/genksyms/keywords.gperf"
180 {"inline", INLINE_KEYW},184 {"inline", INLINE_KEYW},
185#line 6 "scripts/genksyms/keywords.gperf"
186 {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
187#line 41 "scripts/genksyms/keywords.gperf"
188 {"register", REGISTER_KEYW},
181 {""},189 {""},
182#line 52 "scripts/genksyms/keywords.gperf"190#line 22 "scripts/genksyms/keywords.gperf"
183 {"volatile", VOLATILE_KEYW},
184#line 42 "scripts/genksyms/keywords.gperf"
185 {"long", LONG_KEYW},
186#line 24 "scripts/genksyms/keywords.gperf"
187 {"_Bool", BOOL_KEYW},191 {"_Bool", BOOL_KEYW},
188 {""}, {""},
189#line 43 "scripts/genksyms/keywords.gperf"192#line 43 "scripts/genksyms/keywords.gperf"
190 {"register", REGISTER_KEYW},193 {"signed", SIGNED_KEYW},
191#line 51 "scripts/genksyms/keywords.gperf"194 {""}, {""},
192 {"void", VOID_KEYW},195#line 40 "scripts/genksyms/keywords.gperf"
193#line 39 "scripts/genksyms/keywords.gperf"196 {"long", LONG_KEYW}
194 {"float", FLOAT_KEYW},
195#line 36 "scripts/genksyms/keywords.gperf"
196 {"double", DOUBLE_KEYW},
197 {""}, {""}, {""}, {""},
198#line 45 "scripts/genksyms/keywords.gperf"
199 {"signed", SIGNED_KEYW}
200 };197 };
201 198
202 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)199 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
scripts/genksyms/keywords.gperf+0−2
@@ -5,8 +5,6 @@ struct resword { const char *name; int token; } · 4 unmodified lines
5EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW5EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW
6EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW6EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
7EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW7EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW
8EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW
9EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
10__asm, ASM_KEYW8__asm, ASM_KEYW
11__asm__, ASM_KEYW9__asm__, ASM_KEYW
12__attribute, ATTRIBUTE_KEYW10__attribute, ATTRIBUTE_KEYW
scripts/kallsyms.c+13−8
@@ -130,9 +130,18 @@ static int read_symbol(FILE *in, struct sym_entry *s) · 129 unmodified lines
130static int symbol_valid(struct sym_entry *s)130static int symbol_valid(struct sym_entry *s)
131{131{
132 /* Symbols which vary between passes. Passes 1 and 2 must have132 /* Symbols which vary between passes. Passes 1 and 2 must have
133 * identical symbol lists.133 * identical symbol lists. The kallsyms_* symbols below are only added
134 * after pass 1, they would be included in pass 2 when --all-symbols is
135 * specified so exclude them to get a stable symbol list.
134 */136 */
135 static char *special_symbols[] = {137 static char *special_symbols[] = {
138 "kallsyms_addresses",
139 "kallsyms_num_syms",
140 "kallsyms_names",
141 "kallsyms_markers",
142 "kallsyms_token_table",
143 "kallsyms_token_index",
144
136 /* Exclude linker generated symbols which vary between passes */145 /* Exclude linker generated symbols which vary between passes */
137 "_SDA_BASE_", /* ppc */146 "_SDA_BASE_", /* ppc */
138 "_SDA2_BASE_", /* ppc */147 "_SDA2_BASE_", /* ppc */
@@ -164,9 +173,7 @@ static int symbol_valid(struct sym_entry *s) · 25 unmodified lines
164 }173 }
165 174
166 /* Exclude symbols which vary between passes. */175 /* Exclude symbols which vary between passes. */
167 if (strstr((char *)s->sym + offset, "_compiled.") ||176 if (strstr((char *)s->sym + offset, "_compiled."))
168 strncmp((char*)s->sym + offset, "__compound_literal.", 19) == 0 ||
169 strncmp((char*)s->sym + offset, "__compound_literal$", 19) == 0)
170 return 0;177 return 0;
171 178
172 for (i = 0; special_symbols[i]; i++)179 for (i = 0; special_symbols[i]; i++)
@@ -543,10 +550,8 @@ int main(int argc, char **argv) · 370 unmodified lines
543 usage();550 usage();
544 551
545 read_map(stdin);552 read_map(stdin);
546 if (table_cnt) {553 sort_symbols();
547 sort_symbols();554 optimize_token_table();
548 optimize_token_table();
549 }
550 write_src();555 write_src();
551 556
552 return 0;557 return 0;
scripts/mksysmap+5−2
@@ -37,6 +37,9 @@ · 36 unmodified lines
37 37
38# readprofile starts reading symbols when _stext is found, and38# readprofile starts reading symbols when _stext is found, and
39# continue until it finds a symbol which is not either of 'T', 't',39# continue until it finds a symbol which is not either of 'T', 't',
40# 'W' or 'w'.40# 'W' or 'w'. __crc_ are 'A' and placed in the middle
41# so we just ignore them to let readprofile continue to work.
42# (At least sparc64 has __crc_ in the middle).
43
44$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
41 45
42$NM -n $1 | grep -v '\( [aNUw] \)\|\( \$[adt]\)' > $2
scripts/mod/file2alias.c+15−2
@@ -366,11 +366,17 @@ static void do_pnp_device_entry(void *symval, unsigned long size, · 365 unmodified lines
366 366
367 for (i = 0; i < count; i++) {367 for (i = 0; i < count; i++) {
368 const char *id = (char *)devs[i].id;368 const char *id = (char *)devs[i].id;
369 char acpi_id[sizeof(devs[0].id)];
370 int j;
369 371
370 buf_printf(&mod->dev_table_buf,372 buf_printf(&mod->dev_table_buf,
371 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);373 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
374
375 /* fix broken pnp bus lowercasing */
376 for (j = 0; j < sizeof(acpi_id); j++)
377 acpi_id[j] = toupper(id[j]);
372 buf_printf(&mod->dev_table_buf,378 buf_printf(&mod->dev_table_buf,
373 "MODULE_ALIAS(\"acpi*:%s:*\");\n", id);379 "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id);
374 }380 }
375}381}
376 382
@@ -416,10 +422,17 @@ static void do_pnp_card_entries(void *symval, unsigned long size, · 39 unmodified lines
416 422
417 /* add an individual alias for every device entry */423 /* add an individual alias for every device entry */
418 if (!dup) {424 if (!dup) {
425 char acpi_id[sizeof(card->devs[0].id)];
426 int k;
427
419 buf_printf(&mod->dev_table_buf,428 buf_printf(&mod->dev_table_buf,
420 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);429 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
430
431 /* fix broken pnp bus lowercasing */
432 for (k = 0; k < sizeof(acpi_id); k++)
433 acpi_id[k] = toupper(id[k]);
421 buf_printf(&mod->dev_table_buf,434 buf_printf(&mod->dev_table_buf,
422 "MODULE_ALIAS(\"acpi*:%s:*\");\n", id);435 "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id);
423 }436 }
424 }437 }
425 }438 }
scripts/strip-symbols+0−22
@@ -1,22 +0,0 @@
1<*>
2*.h
3__compound_literal[$.][0-9]*
4__crc_[a-zA-Z_]*
5__exitcall_[a-zA-Z_]*
6__func__[$.][0-9]*
7__FUNCTION__[$.][0-9]*
8gcc[0-9]_compiled[$.]
9__initcall_[a-zA-Z_]*
10__kcrctab_[a-zA-Z_]*
11__kstrtab_[a-zA-Z_]*
12__ksymtab_[a-zA-Z_]*
13__mod_[a-zA-Z_]*[0-9]
14__module_depends
15__param_[a-zA-Z_]*
16__pci_fixup_*PCI_ANY_IDPCI_ANY_ID*
17__pci_fixup_*PCI_ANY_IDPCI_DEVICE_ID_*
18__pci_fixup_*PCI_VENDOR_ID_*PCI_ANY_ID*
19__pci_fixup_*PCI_VENDOR_ID_*PCI_DEVICE_ID_*
20__PRETTY_FUNCTION__[$.][0-9]*
21__setup_[a-zA-Z_]*
22____versions