Showing the changes to scripts (10 of 1490 files). Show all
Unified · Split
| @@ -151,16 +151,16 @@ cmd_cc_i_c = $(CPP) $(c_flags) -o $@ $< · 150 unmodified lines | ||
| 151 | 151 | $(obj)/%.i: $(src)/%.c FORCE |
| 152 | 152 | $(call if_changed_dep,cc_i_c) |
| 153 | 153 | |
| 154 | −cmd_genksyms = \ | |
| 154 | +cmd_gensymtypes = \ | |
| 155 | 155 | $(CPP) -D__GENKSYMS__ $(c_flags) $< | \ |
| 156 | − $(GENKSYMS) -T $@ -A -a $(ARCH) \ | |
| 156 | + $(GENKSYMS) -T $@ -a $(ARCH) \ | |
| 157 | 157 | $(if $(KBUILD_PRESERVE),-p) \ |
| 158 | 158 | $(if $(1),-r $(firstword $(wildcard $(@:.symtypes=.symref) /dev/null))) |
| 159 | 159 | |
| 160 | 160 | quiet_cmd_cc_symtypes_c = SYM $(quiet_modtag) $@ |
| 161 | 161 | cmd_cc_symtypes_c = \ |
| 162 | 162 | set -e; \ |
| 163 | − $(call cmd_genksyms, true) >/dev/null; \ | |
| 163 | + $(call cmd_gensymtypes, true) >/dev/null; \ | |
| 164 | 164 | test -s $@ || rm -f $@ |
| 165 | 165 | |
| 166 | 166 | $(obj)/%.symtypes : $(src)/%.c FORCE |
| @@ -177,38 +177,28 @@ cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< · 10 unmodified lines | ||
| 177 | 177 | |
| 178 | 178 | else |
| 179 | 179 | # When module versioning is enabled the following steps are executed: |
| 180 | −# o compile a .tmp_<file>.s from <file>.c | |
| 181 | −# o if .tmp_<file>.s doesn't contain a __ksymtab version, i.e. does | |
| 182 | −# not export symbols, we just assemble .tmp_<file>.s to <file>.o and | |
| 180 | +# o compile a .tmp_<file>.o from <file>.c | |
| 181 | +# o if .tmp_<file>.o doesn't contain a __ksymtab version, i.e. does | |
| 182 | +# not export symbols, we just rename .tmp_<file>.o to <file>.o and | |
| 183 | 183 | # are done. |
| 184 | 184 | # o otherwise, we calculate symbol versions using the good old |
| 185 | 185 | # genksyms on the preprocessed source and postprocess them in a way |
| 186 | −# that they are usable as assembly source | |
| 187 | −# o assemble <file>.o from .tmp_<file>.s forcing inclusion of directives | |
| 188 | −# defining the actual values of __crc_*, followed by objcopy-ing them | |
| 189 | −# to force these symbols to be local to permit stripping them later. | |
| 190 | −s_file = $(@D)/.tmp_$(@F:.o=.s) | |
| 191 | −v_file = $(@D)/.tmp_$(@F:.o=.v) | |
| 192 | −tmp_o_file = $(@D)/.tmp_$(@F) | |
| 193 | −no_g_c_flags = $(filter-out -g%,$(c_flags)) | |
| 194 | − | |
| 195 | −cmd_cc_o_c = $(CC) $(c_flags) -S -o $(s_file) $< | |
| 186 | +# that they are usable as a linker script | |
| 187 | +# o generate <file>.o from .tmp_<file>.o using the linker to | |
| 188 | +# replace the unresolved symbols __crc_exported_symbol with | |
| 189 | +# the actual value of the checksum generated by genksyms | |
| 196 | 190 | |
| 191 | +cmd_cc_o_c = $(CC) $(c_flags) -c -o $(@D)/.tmp_$(@F) $< | |
| 197 | 192 | cmd_modversions = \ |
| 198 | − if grep -q __ksymtab $(s_file); then \ | |
| 199 | − if $(call cmd_genksyms, $(KBUILD_SYMTYPES)) > $(v_file) \ | |
| 200 | − && $(CC) $(no_g_c_flags) -c -Wa,$(v_file) \ | |
| 201 | − -o $(tmp_o_file) $(s_file) \ | |
| 202 | − && $(OBJCOPY) -L '__crc_*' -L '___crc_*' -w \ | |
| 203 | − $(tmp_o_file) $@; \ | |
| 204 | − then \ | |
| 205 | − : ; \ | |
| 206 | − else \ | |
| 207 | − rm -f $@; exit 1; \ | |
| 208 | − fi; \ | |
| 193 | + if $(OBJDUMP) -h $(@D)/.tmp_$(@F) | grep -q __ksymtab; then \ | |
| 194 | + $(call cmd_gensymtypes, $(KBUILD_SYMTYPES)) \ | |
| 195 | + > $(@D)/.tmp_$(@F:.o=.ver); \ | |
| 196 | + \ | |
| 197 | + $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \ | |
| 198 | + -T $(@D)/.tmp_$(@F:.o=.ver); \ | |
| 199 | + rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver); \ | |
| 209 | 200 | else \ |
| 210 | − rm -f $(v_file); \ | |
| 211 | − $(CC) $(no_g_c_flags) -c -o $@ $(s_file); \ | |
| 201 | + mv -f $(@D)/.tmp_$(@F) $@; \ | |
| 212 | 202 | fi; |
| 213 | 203 | endif |
| 214 | 204 | |
| @@ -226,12 +216,7 @@ define rule_cc_o_c · 11 unmodified lines | ||
| 226 | 216 | $(cmd_record_mcount) \ |
| 227 | 217 | scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' > \ |
| 228 | 218 | $(dot-target).tmp; \ |
| 229 | − if [ -r $(@D)/.tmp_$(@F:.o=.v) ]; then \ | |
| 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=.?); \ | |
| 219 | + rm -f $(depfile); \ | |
| 235 | 220 | mv -f $(dot-target).tmp $(dot-target).cmd |
| 236 | 221 | endef |
| 237 | 222 | |
| @@ -17,8 +17,7 @@ __modinst: $(modules) · 16 unmodified lines | ||
| 17 | 17 | @: |
| 18 | 18 | |
| 19 | 19 | quiet_cmd_modules_install = INSTALL $@ |
| 20 | − cmd_modules_install = mkdir -p $(2); \ | |
| 21 | − $(mod_strip_cmd) $@ $(2)/$(notdir $@) || cp $@ $(2) | |
| 20 | + cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@) | |
| 22 | 21 | |
| 23 | 22 | # Modules built outside the kernel source tree go into extra by default |
| 24 | 23 | INSTALL_MOD_DIR ?= extra |
| @@ -60,6 +60,10 @@ else · 59 unmodified lines | ||
| 60 | 60 | FN=.config |
| 61 | 61 | fi |
| 62 | 62 | |
| 63 | +if [ "$1" = "" ] ; then | |
| 64 | + usage | |
| 65 | +fi | |
| 66 | + | |
| 63 | 67 | while [ "$1" != "" ] ; do |
| 64 | 68 | CMD="$1" |
| 65 | 69 | shift |
| @@ -43,7 +43,7 @@ int cur_line = 1; · 42 unmodified lines | ||
| 43 | 43 | char *cur_filename; |
| 44 | 44 | |
| 45 | 45 | static int flag_debug, flag_dump_defs, flag_reference, flag_dump_types, |
| 46 | − flag_preserve, flag_warnings, flag_asm; | |
| 46 | + flag_preserve, flag_warnings; | |
| 47 | 47 | static const char *arch = ""; |
| 48 | 48 | static const char *mod_prefix = ""; |
| 49 | 49 | |
| @@ -610,11 +610,8 @@ void export_symbol(const char *name) · 560 unmodified lines | ||
| 610 | 610 | if (flag_dump_defs) |
| 611 | 611 | fputs(">\n", debugfile); |
| 612 | 612 | |
| 613 | − /* Used as assembly source or a linker script. */ | |
| 614 | − printf(flag_asm | |
| 615 | − ? ".equiv %s__crc_%s, %#08lx\n" | |
| 616 | − : "%s__crc_%s = %#08lx ;\n", | |
| 617 | − mod_prefix, name, crc); | |
| 613 | + /* Used as a linker script. */ | |
| 614 | + printf("%s__crc_%s = 0x%08lx ;\n", 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 | |
| 652 | 649 | static 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 | 652 | #ifdef __GNU_LIBRARY__ |
| 656 | 653 | " -a, --arch Select architecture\n" |
| 657 | − " -A, --asm Generate assembly rather than linker script\n" | |
| 658 | 654 | " -d, --debug Increment the debug level (repeatable)\n" |
| 659 | 655 | " -D, --dump Dump expanded symbol defs (for debugging only)\n" |
| 660 | 656 | " -r, --reference file Read reference symbols from a file\n" |
| @@ -666,7 +662,6 @@ static void genksyms_usage(void) · 5 unmodified lines | ||
| 666 | 662 | " -V, --version Print the release version\n" |
| 667 | 663 | #else /* __GNU_LIBRARY__ */ |
| 668 | 664 | " -a Select architecture\n" |
| 669 | − " -A Generate assembly rather than linker script\n" | |
| 670 | 665 | " -d Increment the debug level (repeatable)\n" |
| 671 | 666 | " -D Dump expanded symbol defs (for debugging only)\n" |
| 672 | 667 | " -r file Read reference symbols from a file\n" |
| @@ -688,7 +683,6 @@ int main(int argc, char **argv) · 15 unmodified lines | ||
| 688 | 683 | #ifdef __GNU_LIBRARY__ |
| 689 | 684 | struct option long_opts[] = { |
| 690 | 685 | {"arch", 1, 0, 'a'}, |
| 691 | − {"asm", 0, 0, 'A'}, | |
| 692 | 686 | {"debug", 0, 0, 'd'}, |
| 693 | 687 | {"warnings", 0, 0, 'w'}, |
| 694 | 688 | {"quiet", 0, 0, 'q'}, |
| @@ -701,10 +695,10 @@ int main(int argc, char **argv) · 6 unmodified lines | ||
| 701 | 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 | 699 | &long_opts[0], NULL)) != EOF) |
| 706 | 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 | 702 | #endif /* __GNU_LIBRARY__ */ |
| 709 | 703 | switch (o) { |
| 710 | 704 | case 'a': |
| @@ -722,9 +716,6 @@ int main(int argc, char **argv) · 11 unmodified lines | ||
| 722 | 716 | case 'V': |
| 723 | 717 | fputs("genksyms version 2.5.60\n", stderr); |
| 724 | 718 | break; |
| 725 | − case 'A': | |
| 726 | − flag_asm = 1; | |
| 727 | − break; | |
| 728 | 719 | case 'D': |
| 729 | 720 | flag_dump_defs = 1; |
| 730 | 721 | break; |
| @@ -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 | 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 | 4 | #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ |
| @@ -32,7 +32,7 @@ · 27 unmodified lines | ||
| 32 | 32 | |
| 33 | 33 | #line 3 "scripts/genksyms/keywords.gperf" |
| 34 | 34 | struct resword { const char *name; int token; }; |
| 35 | −/* maximum key range = 64, duplicates = 0 */ | |
| 35 | +/* maximum key range = 62, duplicates = 0 */ | |
| 36 | 36 | |
| 37 | 37 | #ifdef __GNUC__ |
| 38 | 38 | __inline |
| @@ -46,32 +46,32 @@ is_reserved_hash (register const char *str, register unsigned int len) · 7 unmodified lines | ||
| 46 | 46 | { |
| 47 | 47 | static const unsigned char asso_values[] = |
| 48 | 48 | { |
| 49 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 50 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 51 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 52 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 53 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 54 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 55 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, | |
| 56 | − 67, 67, 67, 67, 67, 67, 15, 67, 67, 67, | |
| 57 | − 0, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 58 | − 67, 67, 67, 67, 67, 0, 67, 0, 67, 5, | |
| 59 | − 25, 20, 15, 30, 67, 15, 67, 67, 10, 0, | |
| 60 | − 10, 40, 20, 67, 10, 5, 0, 10, 15, 67, | |
| 61 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 62 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 63 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 64 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 65 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 66 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 67 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 68 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 69 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 70 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 71 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 72 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 73 | − 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, | |
| 74 | − 67, 67, 67, 67, 67, 67 | |
| 49 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 50 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 51 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 52 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 53 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 54 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 55 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 5, | |
| 56 | + 65, 65, 65, 65, 65, 65, 35, 65, 65, 65, | |
| 57 | + 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 58 | + 65, 65, 65, 65, 65, 0, 65, 0, 65, 5, | |
| 59 | + 20, 15, 10, 30, 65, 15, 65, 65, 20, 0, | |
| 60 | + 10, 35, 20, 65, 10, 5, 0, 10, 5, 65, | |
| 61 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 62 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 63 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 64 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 65 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 66 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 67 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 68 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 69 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 70 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 71 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 72 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 73 | + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, | |
| 74 | + 65, 65, 65, 65, 65, 65 | |
| 75 | 75 | }; |
| 76 | 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 | 85 | enum |
| 86 | 86 | { |
| 87 | − TOTAL_KEYWORDS = 45, | |
| 87 | + TOTAL_KEYWORDS = 43, | |
| 88 | 88 | MIN_WORD_LENGTH = 3, |
| 89 | 89 | MAX_WORD_LENGTH = 24, |
| 90 | 90 | MIN_HASH_VALUE = 3, |
| 91 | − MAX_HASH_VALUE = 66 | |
| 91 | + MAX_HASH_VALUE = 64 | |
| 92 | 92 | }; |
| 93 | 93 | |
| 94 | 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 | 98 | {"asm", ASM_KEYW}, |
| 99 | 99 | {""}, |
| 100 | −#line 10 "scripts/genksyms/keywords.gperf" | |
| 100 | +#line 8 "scripts/genksyms/keywords.gperf" | |
| 101 | 101 | {"__asm", ASM_KEYW}, |
| 102 | 102 | {""}, |
| 103 | −#line 11 "scripts/genksyms/keywords.gperf" | |
| 103 | +#line 9 "scripts/genksyms/keywords.gperf" | |
| 104 | 104 | {"__asm__", ASM_KEYW}, |
| 105 | 105 | {""}, {""}, |
| 106 | −#line 54 "scripts/genksyms/keywords.gperf" | |
| 106 | +#line 52 "scripts/genksyms/keywords.gperf" | |
| 107 | 107 | {"__typeof__", TYPEOF_KEYW}, |
| 108 | 108 | {""}, |
| 109 | −#line 14 "scripts/genksyms/keywords.gperf" | |
| 109 | +#line 12 "scripts/genksyms/keywords.gperf" | |
| 110 | 110 | {"__const", CONST_KEYW}, |
| 111 | −#line 13 "scripts/genksyms/keywords.gperf" | |
| 111 | +#line 11 "scripts/genksyms/keywords.gperf" | |
| 112 | 112 | {"__attribute__", ATTRIBUTE_KEYW}, |
| 113 | −#line 15 "scripts/genksyms/keywords.gperf" | |
| 113 | +#line 13 "scripts/genksyms/keywords.gperf" | |
| 114 | 114 | {"__const__", CONST_KEYW}, |
| 115 | −#line 20 "scripts/genksyms/keywords.gperf" | |
| 115 | +#line 18 "scripts/genksyms/keywords.gperf" | |
| 116 | 116 | {"__signed__", SIGNED_KEYW}, |
| 117 | −#line 46 "scripts/genksyms/keywords.gperf" | |
| 117 | +#line 44 "scripts/genksyms/keywords.gperf" | |
| 118 | 118 | {"static", STATIC_KEYW}, |
| 119 | − {""}, | |
| 120 | −#line 41 "scripts/genksyms/keywords.gperf" | |
| 119 | +#line 20 "scripts/genksyms/keywords.gperf" | |
| 120 | + {"__volatile__", VOLATILE_KEYW}, | |
| 121 | +#line 39 "scripts/genksyms/keywords.gperf" | |
| 121 | 122 | {"int", INT_KEYW}, |
| 122 | −#line 34 "scripts/genksyms/keywords.gperf" | |
| 123 | +#line 32 "scripts/genksyms/keywords.gperf" | |
| 123 | 124 | {"char", CHAR_KEYW}, |
| 124 | −#line 35 "scripts/genksyms/keywords.gperf" | |
| 125 | +#line 33 "scripts/genksyms/keywords.gperf" | |
| 125 | 126 | {"const", CONST_KEYW}, |
| 126 | −#line 47 "scripts/genksyms/keywords.gperf" | |
| 127 | +#line 45 "scripts/genksyms/keywords.gperf" | |
| 127 | 128 | {"struct", STRUCT_KEYW}, |
| 128 | −#line 26 "scripts/genksyms/keywords.gperf" | |
| 129 | +#line 24 "scripts/genksyms/keywords.gperf" | |
| 129 | 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 | 131 | #line 25 "scripts/genksyms/keywords.gperf" |
| 132 | + {"restrict", RESTRICT_KEYW}, | |
| 133 | +#line 23 "scripts/genksyms/keywords.gperf" | |
| 142 | 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 | 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 | 141 | {"__extension__", EXTENSION_KEYW}, |
| 150 | −#line 37 "scripts/genksyms/keywords.gperf" | |
| 142 | +#line 35 "scripts/genksyms/keywords.gperf" | |
| 151 | 143 | {"enum", ENUM_KEYW}, |
| 152 | −#line 8 "scripts/genksyms/keywords.gperf" | |
| 153 | − {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW}, | |
| 154 | −#line 38 "scripts/genksyms/keywords.gperf" | |
| 144 | +#line 19 "scripts/genksyms/keywords.gperf" | |
| 145 | + {"__volatile", VOLATILE_KEYW}, | |
| 146 | +#line 36 "scripts/genksyms/keywords.gperf" | |
| 155 | 147 | {"extern", EXTERN_KEYW}, |
| 156 | 148 | {""}, |
| 157 | −#line 19 "scripts/genksyms/keywords.gperf" | |
| 149 | +#line 17 "scripts/genksyms/keywords.gperf" | |
| 158 | 150 | {"__signed", SIGNED_KEYW}, |
| 159 | −#line 9 "scripts/genksyms/keywords.gperf" | |
| 160 | − {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, | |
| 161 | −#line 49 "scripts/genksyms/keywords.gperf" | |
| 162 | − {"union", UNION_KEYW}, | |
| 163 | −#line 53 "scripts/genksyms/keywords.gperf" | |
| 151 | +#line 7 "scripts/genksyms/keywords.gperf" | |
| 152 | + {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW}, | |
| 153 | + {""}, | |
| 154 | +#line 51 "scripts/genksyms/keywords.gperf" | |
| 164 | 155 | {"typeof", TYPEOF_KEYW}, |
| 165 | −#line 48 "scripts/genksyms/keywords.gperf" | |
| 156 | +#line 46 "scripts/genksyms/keywords.gperf" | |
| 166 | 157 | {"typedef", TYPEDEF_KEYW}, |
| 167 | −#line 17 "scripts/genksyms/keywords.gperf" | |
| 158 | +#line 15 "scripts/genksyms/keywords.gperf" | |
| 168 | 159 | {"__inline", INLINE_KEYW}, |
| 169 | −#line 33 "scripts/genksyms/keywords.gperf" | |
| 160 | +#line 31 "scripts/genksyms/keywords.gperf" | |
| 170 | 161 | {"auto", AUTO_KEYW}, |
| 171 | −#line 21 "scripts/genksyms/keywords.gperf" | |
| 172 | − {"__volatile", VOLATILE_KEYW}, | |
| 162 | +#line 47 "scripts/genksyms/keywords.gperf" | |
| 163 | + {"union", UNION_KEYW}, | |
| 173 | 164 | {""}, {""}, |
| 174 | −#line 50 "scripts/genksyms/keywords.gperf" | |
| 165 | +#line 48 "scripts/genksyms/keywords.gperf" | |
| 175 | 166 | {"unsigned", UNSIGNED_KEYW}, |
| 176 | − {""}, | |
| 177 | −#line 44 "scripts/genksyms/keywords.gperf" | |
| 167 | +#line 49 "scripts/genksyms/keywords.gperf" | |
| 168 | + {"void", VOID_KEYW}, | |
| 169 | +#line 42 "scripts/genksyms/keywords.gperf" | |
| 178 | 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 | 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" | |
| 183 | − {"volatile", VOLATILE_KEYW}, | |
| 184 | −#line 42 "scripts/genksyms/keywords.gperf" | |
| 185 | − {"long", LONG_KEYW}, | |
| 186 | −#line 24 "scripts/genksyms/keywords.gperf" | |
| 190 | +#line 22 "scripts/genksyms/keywords.gperf" | |
| 187 | 191 | {"_Bool", BOOL_KEYW}, |
| 188 | − {""}, {""}, | |
| 189 | 192 | #line 43 "scripts/genksyms/keywords.gperf" |
| 190 | − {"register", REGISTER_KEYW}, | |
| 191 | −#line 51 "scripts/genksyms/keywords.gperf" | |
| 192 | − {"void", VOID_KEYW}, | |
| 193 | −#line 39 "scripts/genksyms/keywords.gperf" | |
| 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} | |
| 193 | + {"signed", SIGNED_KEYW}, | |
| 194 | + {""}, {""}, | |
| 195 | +#line 40 "scripts/genksyms/keywords.gperf" | |
| 196 | + {"long", LONG_KEYW} | |
| 200 | 197 | }; |
| 201 | 198 | |
| 202 | 199 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) |
| @@ -5,8 +5,6 @@ struct resword { const char *name; int token; } · 4 unmodified lines | ||
| 5 | 5 | EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW |
| 6 | 6 | EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW |
| 7 | 7 | EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW |
| 8 | −EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW | |
| 9 | −EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW | |
| 10 | 8 | __asm, ASM_KEYW |
| 11 | 9 | __asm__, ASM_KEYW |
| 12 | 10 | __attribute, ATTRIBUTE_KEYW |
| @@ -130,9 +130,18 @@ static int read_symbol(FILE *in, struct sym_entry *s) · 129 unmodified lines | ||
| 130 | 130 | static int symbol_valid(struct sym_entry *s) |
| 131 | 131 | { |
| 132 | 132 | /* 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 | 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 | 145 | /* Exclude linker generated symbols which vary between passes */ |
| 137 | 146 | "_SDA_BASE_", /* ppc */ |
| 138 | 147 | "_SDA2_BASE_", /* ppc */ |
| @@ -164,9 +173,7 @@ static int symbol_valid(struct sym_entry *s) · 25 unmodified lines | ||
| 164 | 173 | } |
| 165 | 174 | |
| 166 | 175 | /* Exclude symbols which vary between passes. */ |
| 167 | − 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) | |
| 176 | + if (strstr((char *)s->sym + offset, "_compiled.")) | |
| 170 | 177 | return 0; |
| 171 | 178 | |
| 172 | 179 | for (i = 0; special_symbols[i]; i++) |
| @@ -543,10 +550,8 @@ int main(int argc, char **argv) · 370 unmodified lines | ||
| 543 | 550 | usage(); |
| 544 | 551 | |
| 545 | 552 | read_map(stdin); |
| 546 | − if (table_cnt) { | |
| 547 | − sort_symbols(); | |
| 548 | − optimize_token_table(); | |
| 549 | − } | |
| 553 | + sort_symbols(); | |
| 554 | + optimize_token_table(); | |
| 550 | 555 | write_src(); |
| 551 | 556 | |
| 552 | 557 | return 0; |
| @@ -37,6 +37,9 @@ · 36 unmodified lines | ||
| 37 | 37 | |
| 38 | 38 | # readprofile starts reading symbols when _stext is found, and |
| 39 | 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 | |
| @@ -366,11 +366,17 @@ static void do_pnp_device_entry(void *symval, unsigned long size, · 365 unmodified lines | ||
| 366 | 366 | |
| 367 | 367 | for (i = 0; i < count; i++) { |
| 368 | 368 | const char *id = (char *)devs[i].id; |
| 369 | + char acpi_id[sizeof(devs[0].id)]; | |
| 370 | + int j; | |
| 369 | 371 | |
| 370 | 372 | buf_printf(&mod->dev_table_buf, |
| 371 | 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 | 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 | 423 | /* add an individual alias for every device entry */ |
| 418 | 424 | if (!dup) { |
| 425 | + char acpi_id[sizeof(card->devs[0].id)]; | |
| 426 | + int k; | |
| 427 | + | |
| 419 | 428 | buf_printf(&mod->dev_table_buf, |
| 420 | 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 | 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 | } |
| @@ -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]* | |
| 8 | −gcc[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 | |