Merge branch 'gperf-removal'

Remove our use of 'gperf' for generating perfect hashes from some of our
build tools.

This removal was prompted by Masahiro Yamada sending out a patch that
removes all our pre-generated files, and when I tested it, I noticed
that the gperf version I have (3.1) apparently generates code that no
longer works with out code-base because the function interfaces
generated by gperf have changed.

We really don't care that much, and the gperf people changed their
interfaces in ways that makes it annoying to work with them. Tools that
make it hard to use them should not be used, and the kernel is not at
all interested in some autoconf mess. So remove the gperf dependency
entirely.

It turns out that if you ignore the pre-generated files, the use of
gperf apparently saved us a whopping fifteen lines of code. It
obviously wasn't worth it, considering that the pre-generated files are
about 500 lines.

I sent this out as a patch about three weeks ago, and got absolutely
zero responses. So let's see if anybody notices now that I merge it.
Because there might be serious bugs here, but it WorksForMe(tm).

* gperf-removal:
Remove gperf usage from toolchain

+151 -663
-1
Documentation/dontdiff
··· 259 259 wakeup.elf 260 260 wakeup.lds 261 261 zImage* 262 - zconf.hash.c 263 262 zoffset.h
+2 -2
scripts/genksyms/Makefile
··· 9 9 HOSTCFLAGS_lex.lex.o := -I$(src) 10 10 11 11 # dependencies on generated files need to be listed explicitly 12 - $(obj)/lex.lex.o: $(obj)/keywords.hash.c $(obj)/parse.tab.h 12 + $(obj)/lex.lex.o: $(obj)/parse.tab.h 13 13 14 - clean-files := keywords.hash.c lex.lex.c parse.tab.c parse.tab.h 14 + clean-files := lex.lex.c parse.tab.c parse.tab.h
+74
scripts/genksyms/keywords.c
··· 1 + static struct resword { 2 + const char *name; 3 + int token; 4 + } keywords[] = { 5 + { "EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW }, 6 + { "EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW }, 7 + { "EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW }, 8 + { "EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW }, 9 + { "EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW }, 10 + { "__asm", ASM_KEYW }, 11 + { "__asm__", ASM_KEYW }, 12 + { "__attribute", ATTRIBUTE_KEYW }, 13 + { "__attribute__", ATTRIBUTE_KEYW }, 14 + { "__const", CONST_KEYW }, 15 + { "__const__", CONST_KEYW }, 16 + { "__extension__", EXTENSION_KEYW }, 17 + { "__inline", INLINE_KEYW }, 18 + { "__inline__", INLINE_KEYW }, 19 + { "__signed", SIGNED_KEYW }, 20 + { "__signed__", SIGNED_KEYW }, 21 + { "__typeof", TYPEOF_KEYW }, 22 + { "__typeof__", TYPEOF_KEYW }, 23 + { "__volatile", VOLATILE_KEYW }, 24 + { "__volatile__", VOLATILE_KEYW }, 25 + { "__builtin_va_list", VA_LIST_KEYW }, 26 + 27 + // According to rth, c99 defines "_Bool", __restrict", __restrict__", "restrict". KAO 28 + { "_Bool", BOOL_KEYW }, 29 + { "_restrict", RESTRICT_KEYW }, 30 + { "__restrict__", RESTRICT_KEYW }, 31 + { "restrict", RESTRICT_KEYW }, 32 + { "asm", ASM_KEYW }, 33 + 34 + // attribute commented out in modutils 2.4.2. People are using 'attribute' as a 35 + // field name which breaks the genksyms parser. It is not a gcc keyword anyway. 36 + // KAO. }, 37 + // { "attribute", ATTRIBUTE_KEYW }, 38 + 39 + { "auto", AUTO_KEYW }, 40 + { "char", CHAR_KEYW }, 41 + { "const", CONST_KEYW }, 42 + { "double", DOUBLE_KEYW }, 43 + { "enum", ENUM_KEYW }, 44 + { "extern", EXTERN_KEYW }, 45 + { "float", FLOAT_KEYW }, 46 + { "inline", INLINE_KEYW }, 47 + { "int", INT_KEYW }, 48 + { "long", LONG_KEYW }, 49 + { "register", REGISTER_KEYW }, 50 + { "short", SHORT_KEYW }, 51 + { "signed", SIGNED_KEYW }, 52 + { "static", STATIC_KEYW }, 53 + { "struct", STRUCT_KEYW }, 54 + { "typedef", TYPEDEF_KEYW }, 55 + { "typeof", TYPEOF_KEYW }, 56 + { "union", UNION_KEYW }, 57 + { "unsigned", UNSIGNED_KEYW }, 58 + { "void", VOID_KEYW }, 59 + { "volatile", VOLATILE_KEYW }, 60 + }; 61 + 62 + #define NR_KEYWORDS (sizeof(keywords)/sizeof(struct resword)) 63 + 64 + static int is_reserved_word(register const char *str, register unsigned int len) 65 + { 66 + int i; 67 + for (i = 0; i < NR_KEYWORDS; i++) { 68 + struct resword *r = keywords + i; 69 + int l = strlen(r->name); 70 + if (len == l && !memcmp(str, r->name, len)) 71 + return r->token; 72 + } 73 + return -1; 74 + }
-61
scripts/genksyms/keywords.gperf
··· 1 - %language=ANSI-C 2 - %define hash-function-name is_reserved_hash 3 - %define lookup-function-name is_reserved_word 4 - %{ 5 - struct resword; 6 - static const struct resword *is_reserved_word(register const char *str, register unsigned int len); 7 - %} 8 - struct resword { const char *name; int token; } 9 - %% 10 - EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW 11 - EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW 12 - EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW 13 - EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW 14 - EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW 15 - __asm, ASM_KEYW 16 - __asm__, ASM_KEYW 17 - __attribute, ATTRIBUTE_KEYW 18 - __attribute__, ATTRIBUTE_KEYW 19 - __const, CONST_KEYW 20 - __const__, CONST_KEYW 21 - __extension__, EXTENSION_KEYW 22 - __inline, INLINE_KEYW 23 - __inline__, INLINE_KEYW 24 - __signed, SIGNED_KEYW 25 - __signed__, SIGNED_KEYW 26 - __typeof, TYPEOF_KEYW 27 - __typeof__, TYPEOF_KEYW 28 - __volatile, VOLATILE_KEYW 29 - __volatile__, VOLATILE_KEYW 30 - __builtin_va_list, VA_LIST_KEYW 31 - # According to rth, c99 defines _Bool, __restrict, __restrict__, restrict. KAO 32 - _Bool, BOOL_KEYW 33 - _restrict, RESTRICT_KEYW 34 - __restrict__, RESTRICT_KEYW 35 - restrict, RESTRICT_KEYW 36 - asm, ASM_KEYW 37 - # attribute commented out in modutils 2.4.2. People are using 'attribute' as a 38 - # field name which breaks the genksyms parser. It is not a gcc keyword anyway. 39 - # KAO. 40 - # attribute, ATTRIBUTE_KEYW 41 - auto, AUTO_KEYW 42 - char, CHAR_KEYW 43 - const, CONST_KEYW 44 - double, DOUBLE_KEYW 45 - enum, ENUM_KEYW 46 - extern, EXTERN_KEYW 47 - float, FLOAT_KEYW 48 - inline, INLINE_KEYW 49 - int, INT_KEYW 50 - long, LONG_KEYW 51 - register, REGISTER_KEYW 52 - short, SHORT_KEYW 53 - signed, SIGNED_KEYW 54 - static, STATIC_KEYW 55 - struct, STRUCT_KEYW 56 - typedef, TYPEDEF_KEYW 57 - typeof, TYPEOF_KEYW 58 - union, UNION_KEYW 59 - unsigned, UNSIGNED_KEYW 60 - void, VOID_KEYW 61 - volatile, VOLATILE_KEYW
-230
scripts/genksyms/keywords.hash.c_shipped
··· 1 - /* ANSI-C code produced by gperf version 3.0.4 */ 2 - /* Command-line: gperf -t --output-file scripts/genksyms/keywords.hash.c_shipped -a -C -E -g -k '1,3,$' -p -t scripts/genksyms/keywords.gperf */ 3 - 4 - #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ 5 - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ 6 - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ 7 - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ 8 - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ 9 - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ 10 - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ 11 - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ 12 - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ 13 - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ 14 - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ 15 - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ 16 - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ 17 - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ 18 - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ 19 - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ 20 - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ 21 - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ 22 - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ 23 - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ 24 - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ 25 - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ 26 - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) 27 - /* The character set is not based on ISO-646. */ 28 - #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." 29 - #endif 30 - 31 - #line 4 "scripts/genksyms/keywords.gperf" 32 - 33 - struct resword; 34 - static const struct resword *is_reserved_word(register const char *str, register unsigned int len); 35 - #line 8 "scripts/genksyms/keywords.gperf" 36 - struct resword { const char *name; int token; }; 37 - /* maximum key range = 98, duplicates = 0 */ 38 - 39 - #ifdef __GNUC__ 40 - __inline 41 - #else 42 - #ifdef __cplusplus 43 - inline 44 - #endif 45 - #endif 46 - static unsigned int 47 - is_reserved_hash (register const char *str, register unsigned int len) 48 - { 49 - static const unsigned char asso_values[] = 50 - { 51 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 52 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 53 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 54 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 55 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 56 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 57 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 0, 58 - 101, 101, 101, 101, 101, 101, 15, 101, 101, 101, 59 - 0, 101, 101, 101, 101, 101, 101, 101, 101, 101, 60 - 101, 101, 101, 101, 101, 0, 101, 0, 0, 5, 61 - 25, 20, 55, 30, 101, 15, 101, 101, 10, 0, 62 - 10, 40, 10, 101, 10, 5, 0, 10, 15, 101, 63 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 64 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 65 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 66 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 67 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 68 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 69 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 70 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 71 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 72 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 73 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 74 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 75 - 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 76 - 101, 101, 101, 101, 101, 101 77 - }; 78 - return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]]; 79 - } 80 - 81 - #ifdef __GNUC__ 82 - __inline 83 - #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ 84 - __attribute__ ((__gnu_inline__)) 85 - #endif 86 - #endif 87 - const struct resword * 88 - is_reserved_word (register const char *str, register unsigned int len) 89 - { 90 - enum 91 - { 92 - TOTAL_KEYWORDS = 47, 93 - MIN_WORD_LENGTH = 3, 94 - MAX_WORD_LENGTH = 24, 95 - MIN_HASH_VALUE = 3, 96 - MAX_HASH_VALUE = 100 97 - }; 98 - 99 - static const struct resword wordlist[] = 100 - { 101 - {""}, {""}, {""}, 102 - #line 36 "scripts/genksyms/keywords.gperf" 103 - {"asm", ASM_KEYW}, 104 - {""}, 105 - #line 15 "scripts/genksyms/keywords.gperf" 106 - {"__asm", ASM_KEYW}, 107 - {""}, 108 - #line 16 "scripts/genksyms/keywords.gperf" 109 - {"__asm__", ASM_KEYW}, 110 - {""}, {""}, 111 - #line 27 "scripts/genksyms/keywords.gperf" 112 - {"__typeof__", TYPEOF_KEYW}, 113 - {""}, 114 - #line 19 "scripts/genksyms/keywords.gperf" 115 - {"__const", CONST_KEYW}, 116 - #line 18 "scripts/genksyms/keywords.gperf" 117 - {"__attribute__", ATTRIBUTE_KEYW}, 118 - #line 20 "scripts/genksyms/keywords.gperf" 119 - {"__const__", CONST_KEYW}, 120 - #line 25 "scripts/genksyms/keywords.gperf" 121 - {"__signed__", SIGNED_KEYW}, 122 - #line 54 "scripts/genksyms/keywords.gperf" 123 - {"static", STATIC_KEYW}, 124 - #line 30 "scripts/genksyms/keywords.gperf" 125 - {"__builtin_va_list", VA_LIST_KEYW}, 126 - #line 49 "scripts/genksyms/keywords.gperf" 127 - {"int", INT_KEYW}, 128 - #line 42 "scripts/genksyms/keywords.gperf" 129 - {"char", CHAR_KEYW}, 130 - #line 43 "scripts/genksyms/keywords.gperf" 131 - {"const", CONST_KEYW}, 132 - #line 55 "scripts/genksyms/keywords.gperf" 133 - {"struct", STRUCT_KEYW}, 134 - #line 34 "scripts/genksyms/keywords.gperf" 135 - {"__restrict__", RESTRICT_KEYW}, 136 - #line 35 "scripts/genksyms/keywords.gperf" 137 - {"restrict", RESTRICT_KEYW}, 138 - #line 12 "scripts/genksyms/keywords.gperf" 139 - {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW}, 140 - #line 23 "scripts/genksyms/keywords.gperf" 141 - {"__inline__", INLINE_KEYW}, 142 - {""}, 143 - #line 29 "scripts/genksyms/keywords.gperf" 144 - {"__volatile__", VOLATILE_KEYW}, 145 - #line 10 "scripts/genksyms/keywords.gperf" 146 - {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW}, 147 - #line 33 "scripts/genksyms/keywords.gperf" 148 - {"_restrict", RESTRICT_KEYW}, 149 - {""}, 150 - #line 17 "scripts/genksyms/keywords.gperf" 151 - {"__attribute", ATTRIBUTE_KEYW}, 152 - #line 11 "scripts/genksyms/keywords.gperf" 153 - {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, 154 - #line 21 "scripts/genksyms/keywords.gperf" 155 - {"__extension__", EXTENSION_KEYW}, 156 - #line 45 "scripts/genksyms/keywords.gperf" 157 - {"enum", ENUM_KEYW}, 158 - #line 13 "scripts/genksyms/keywords.gperf" 159 - {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW}, 160 - #line 46 "scripts/genksyms/keywords.gperf" 161 - {"extern", EXTERN_KEYW}, 162 - {""}, 163 - #line 24 "scripts/genksyms/keywords.gperf" 164 - {"__signed", SIGNED_KEYW}, 165 - #line 14 "scripts/genksyms/keywords.gperf" 166 - {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, 167 - #line 58 "scripts/genksyms/keywords.gperf" 168 - {"union", UNION_KEYW}, 169 - {""}, {""}, 170 - #line 22 "scripts/genksyms/keywords.gperf" 171 - {"__inline", INLINE_KEYW}, 172 - #line 41 "scripts/genksyms/keywords.gperf" 173 - {"auto", AUTO_KEYW}, 174 - #line 28 "scripts/genksyms/keywords.gperf" 175 - {"__volatile", VOLATILE_KEYW}, 176 - {""}, {""}, 177 - #line 59 "scripts/genksyms/keywords.gperf" 178 - {"unsigned", UNSIGNED_KEYW}, 179 - {""}, 180 - #line 52 "scripts/genksyms/keywords.gperf" 181 - {"short", SHORT_KEYW}, 182 - #line 48 "scripts/genksyms/keywords.gperf" 183 - {"inline", INLINE_KEYW}, 184 - {""}, 185 - #line 61 "scripts/genksyms/keywords.gperf" 186 - {"volatile", VOLATILE_KEYW}, 187 - #line 50 "scripts/genksyms/keywords.gperf" 188 - {"long", LONG_KEYW}, 189 - #line 32 "scripts/genksyms/keywords.gperf" 190 - {"_Bool", BOOL_KEYW}, 191 - {""}, {""}, 192 - #line 51 "scripts/genksyms/keywords.gperf" 193 - {"register", REGISTER_KEYW}, 194 - #line 60 "scripts/genksyms/keywords.gperf" 195 - {"void", VOID_KEYW}, 196 - {""}, 197 - #line 44 "scripts/genksyms/keywords.gperf" 198 - {"double", DOUBLE_KEYW}, 199 - {""}, 200 - #line 26 "scripts/genksyms/keywords.gperf" 201 - {"__typeof", TYPEOF_KEYW}, 202 - {""}, {""}, 203 - #line 53 "scripts/genksyms/keywords.gperf" 204 - {"signed", SIGNED_KEYW}, 205 - {""}, {""}, {""}, {""}, 206 - #line 57 "scripts/genksyms/keywords.gperf" 207 - {"typeof", TYPEOF_KEYW}, 208 - #line 56 "scripts/genksyms/keywords.gperf" 209 - {"typedef", TYPEDEF_KEYW}, 210 - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, 211 - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, 212 - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, 213 - #line 47 "scripts/genksyms/keywords.gperf" 214 - {"float", FLOAT_KEYW} 215 - }; 216 - 217 - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) 218 - { 219 - register int key = is_reserved_hash (str, len); 220 - 221 - if (key <= MAX_HASH_VALUE && key >= 0) 222 - { 223 - register const char *s = wordlist[key].name; 224 - 225 - if (*str == *s && !strcmp (str + 1, s + 1)) 226 - return &wordlist[key]; 227 - } 228 - } 229 - return 0; 230 - }
+4 -4
scripts/genksyms/lex.l
··· 94 94 95 95 /* Bring in the keyword recognizer. */ 96 96 97 - #include "keywords.hash.c" 97 + #include "keywords.c" 98 98 99 99 100 100 /* Macros to append to our phrase collection list. */ ··· 186 186 case IDENT: 187 187 APP; 188 188 { 189 - const struct resword *r = is_reserved_word(yytext, yyleng); 190 - if (r) 189 + int r = is_reserved_word(yytext, yyleng); 190 + if (r >= 0) 191 191 { 192 - switch (token = r->token) 192 + switch (token = r) 193 193 { 194 194 case ATTRIBUTE_KEYW: 195 195 lexstate = ST_ATTRIBUTE;
+4 -4
scripts/genksyms/lex.lex.c_shipped
··· 1905 1905 1906 1906 /* Bring in the keyword recognizer. */ 1907 1907 1908 - #include "keywords.hash.c" 1908 + #include "keywords.c" 1909 1909 1910 1910 /* Macros to append to our phrase collection list. */ 1911 1911 ··· 1995 1995 case IDENT: 1996 1996 APP; 1997 1997 { 1998 - const struct resword *r = is_reserved_word(yytext, yyleng); 1999 - if (r) 1998 + int r = is_reserved_word(yytext, yyleng); 1999 + if (r >= 0) 2000 2000 { 2001 - switch (token = r->token) 2001 + switch (token = r) 2002 2002 { 2003 2003 case ATTRIBUTE_KEYW: 2004 2004 lexstate = ST_ATTRIBUTE;
-1
scripts/kconfig/.gitignore
··· 5 5 *.lex.c 6 6 *.tab.c 7 7 *.tab.h 8 - zconf.hash.c 9 8 *.moc 10 9 gconf.glade.h 11 10 *.pot
+2 -2
scripts/kconfig/Makefile
··· 191 191 hostprogs-y := conf nconf mconf kxgettext qconf gconf 192 192 193 193 clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck 194 - clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h 194 + clean-files += zconf.tab.c zconf.lex.c gconf.glade.h 195 195 clean-files += config.pot linux.pot 196 196 197 197 # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) ··· 280 280 fi 281 281 endif 282 282 283 - $(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c 283 + $(obj)/zconf.tab.o: $(obj)/zconf.lex.c 284 284 285 285 $(obj)/qconf.o: $(obj)/qconf.moc 286 286
+54
scripts/kconfig/kconf_id.c
··· 1 + 2 + static struct kconf_id kconf_id_array[] = { 3 + { "mainmenu", T_MAINMENU, TF_COMMAND }, 4 + { "menu", T_MENU, TF_COMMAND }, 5 + { "endmenu", T_ENDMENU, TF_COMMAND }, 6 + { "source", T_SOURCE, TF_COMMAND }, 7 + { "choice", T_CHOICE, TF_COMMAND }, 8 + { "endchoice", T_ENDCHOICE, TF_COMMAND }, 9 + { "comment", T_COMMENT, TF_COMMAND }, 10 + { "config", T_CONFIG, TF_COMMAND }, 11 + { "menuconfig", T_MENUCONFIG, TF_COMMAND }, 12 + { "help", T_HELP, TF_COMMAND }, 13 + { "---help---", T_HELP, TF_COMMAND }, 14 + { "if", T_IF, TF_COMMAND|TF_PARAM }, 15 + { "endif", T_ENDIF, TF_COMMAND }, 16 + { "depends", T_DEPENDS, TF_COMMAND }, 17 + { "optional", T_OPTIONAL, TF_COMMAND }, 18 + { "default", T_DEFAULT, TF_COMMAND, S_UNKNOWN }, 19 + { "prompt", T_PROMPT, TF_COMMAND }, 20 + { "tristate", T_TYPE, TF_COMMAND, S_TRISTATE }, 21 + { "def_tristate", T_DEFAULT, TF_COMMAND, S_TRISTATE }, 22 + { "bool", T_TYPE, TF_COMMAND, S_BOOLEAN }, 23 + { "boolean", T_TYPE, TF_COMMAND, S_BOOLEAN }, 24 + { "def_bool", T_DEFAULT, TF_COMMAND, S_BOOLEAN }, 25 + { "int", T_TYPE, TF_COMMAND, S_INT }, 26 + { "hex", T_TYPE, TF_COMMAND, S_HEX }, 27 + { "string", T_TYPE, TF_COMMAND, S_STRING }, 28 + { "select", T_SELECT, TF_COMMAND }, 29 + { "imply", T_IMPLY, TF_COMMAND }, 30 + { "range", T_RANGE, TF_COMMAND }, 31 + { "visible", T_VISIBLE, TF_COMMAND }, 32 + { "option", T_OPTION, TF_COMMAND }, 33 + { "on", T_ON, TF_PARAM }, 34 + { "modules", T_OPT_MODULES, TF_OPTION }, 35 + { "defconfig_list", T_OPT_DEFCONFIG_LIST, TF_OPTION }, 36 + { "env", T_OPT_ENV, TF_OPTION }, 37 + { "allnoconfig_y", T_OPT_ALLNOCONFIG_Y, TF_OPTION }, 38 + }; 39 + 40 + #define KCONF_ID_ARRAY_SIZE (sizeof(kconf_id_array)/sizeof(struct kconf_id)) 41 + 42 + static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len) 43 + { 44 + int i; 45 + 46 + for (i = 0; i < KCONF_ID_ARRAY_SIZE; i++) { 47 + struct kconf_id *id = kconf_id_array+i; 48 + int l = strlen(id->name); 49 + 50 + if (len == l && !memcmp(str, id->name, len)) 51 + return id; 52 + } 53 + return NULL; 54 + }
+1 -1
scripts/kconfig/lkc.h
··· 62 62 #define T_OPT_ALLNOCONFIG_Y 4 63 63 64 64 struct kconf_id { 65 - int name; 65 + const char *name; 66 66 int token; 67 67 unsigned int flags; 68 68 enum symbol_type stype;
-50
scripts/kconfig/zconf.gperf
··· 1 - %language=ANSI-C 2 - %define hash-function-name kconf_id_hash 3 - %define lookup-function-name kconf_id_lookup 4 - %define string-pool-name kconf_id_strings 5 - %compare-strncmp 6 - %enum 7 - %pic 8 - %struct-type 9 - 10 - struct kconf_id; 11 - 12 - static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len); 13 - 14 - %% 15 - mainmenu, T_MAINMENU, TF_COMMAND 16 - menu, T_MENU, TF_COMMAND 17 - endmenu, T_ENDMENU, TF_COMMAND 18 - source, T_SOURCE, TF_COMMAND 19 - choice, T_CHOICE, TF_COMMAND 20 - endchoice, T_ENDCHOICE, TF_COMMAND 21 - comment, T_COMMENT, TF_COMMAND 22 - config, T_CONFIG, TF_COMMAND 23 - menuconfig, T_MENUCONFIG, TF_COMMAND 24 - help, T_HELP, TF_COMMAND 25 - ---help---, T_HELP, TF_COMMAND 26 - if, T_IF, TF_COMMAND|TF_PARAM 27 - endif, T_ENDIF, TF_COMMAND 28 - depends, T_DEPENDS, TF_COMMAND 29 - optional, T_OPTIONAL, TF_COMMAND 30 - default, T_DEFAULT, TF_COMMAND, S_UNKNOWN 31 - prompt, T_PROMPT, TF_COMMAND 32 - tristate, T_TYPE, TF_COMMAND, S_TRISTATE 33 - def_tristate, T_DEFAULT, TF_COMMAND, S_TRISTATE 34 - bool, T_TYPE, TF_COMMAND, S_BOOLEAN 35 - boolean, T_TYPE, TF_COMMAND, S_BOOLEAN 36 - def_bool, T_DEFAULT, TF_COMMAND, S_BOOLEAN 37 - int, T_TYPE, TF_COMMAND, S_INT 38 - hex, T_TYPE, TF_COMMAND, S_HEX 39 - string, T_TYPE, TF_COMMAND, S_STRING 40 - select, T_SELECT, TF_COMMAND 41 - imply, T_IMPLY, TF_COMMAND 42 - range, T_RANGE, TF_COMMAND 43 - visible, T_VISIBLE, TF_COMMAND 44 - option, T_OPTION, TF_COMMAND 45 - on, T_ON, TF_PARAM 46 - modules, T_OPT_MODULES, TF_OPTION 47 - defconfig_list, T_OPT_DEFCONFIG_LIST,TF_OPTION 48 - env, T_OPT_ENV, TF_OPTION 49 - allnoconfig_y, T_OPT_ALLNOCONFIG_Y,TF_OPTION 50 - %%
-297
scripts/kconfig/zconf.hash.c_shipped
··· 1 - /* ANSI-C code produced by gperf version 3.0.4 */ 2 - /* Command-line: gperf -t --output-file scripts/kconfig/zconf.hash.c_shipped -a -C -E -g -k '1,3,$' -p -t scripts/kconfig/zconf.gperf */ 3 - 4 - #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ 5 - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ 6 - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ 7 - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ 8 - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ 9 - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ 10 - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ 11 - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ 12 - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ 13 - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ 14 - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ 15 - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ 16 - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ 17 - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ 18 - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ 19 - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ 20 - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ 21 - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ 22 - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ 23 - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ 24 - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ 25 - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ 26 - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) 27 - /* The character set is not based on ISO-646. */ 28 - #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." 29 - #endif 30 - 31 - #line 10 "scripts/kconfig/zconf.gperf" 32 - struct kconf_id; 33 - 34 - static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len); 35 - /* maximum key range = 71, duplicates = 0 */ 36 - 37 - #ifdef __GNUC__ 38 - __inline 39 - #else 40 - #ifdef __cplusplus 41 - inline 42 - #endif 43 - #endif 44 - static unsigned int 45 - kconf_id_hash (register const char *str, register unsigned int len) 46 - { 47 - static const unsigned char asso_values[] = 48 - { 49 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 50 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 51 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 52 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 53 - 73, 73, 73, 73, 73, 0, 73, 73, 73, 73, 54 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 55 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 56 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 57 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 58 - 73, 73, 73, 73, 73, 73, 73, 10, 25, 25, 59 - 0, 0, 0, 5, 0, 0, 73, 73, 5, 0, 60 - 10, 5, 45, 73, 20, 20, 0, 15, 15, 73, 61 - 20, 0, 73, 73, 73, 73, 73, 73, 73, 73, 62 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 63 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 64 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 65 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 66 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 67 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 68 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 69 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 70 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 71 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 72 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 - 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74 - 73, 73, 73, 73, 73, 73 75 - }; 76 - register int hval = len; 77 - 78 - switch (hval) 79 - { 80 - default: 81 - hval += asso_values[(unsigned char)str[2]]; 82 - /*FALLTHROUGH*/ 83 - case 2: 84 - case 1: 85 - hval += asso_values[(unsigned char)str[0]]; 86 - break; 87 - } 88 - return hval + asso_values[(unsigned char)str[len - 1]]; 89 - } 90 - 91 - struct kconf_id_strings_t 92 - { 93 - char kconf_id_strings_str2[sizeof("if")]; 94 - char kconf_id_strings_str3[sizeof("int")]; 95 - char kconf_id_strings_str5[sizeof("endif")]; 96 - char kconf_id_strings_str7[sizeof("default")]; 97 - char kconf_id_strings_str8[sizeof("tristate")]; 98 - char kconf_id_strings_str9[sizeof("endchoice")]; 99 - char kconf_id_strings_str10[sizeof("---help---")]; 100 - char kconf_id_strings_str12[sizeof("def_tristate")]; 101 - char kconf_id_strings_str13[sizeof("def_bool")]; 102 - char kconf_id_strings_str14[sizeof("defconfig_list")]; 103 - char kconf_id_strings_str17[sizeof("on")]; 104 - char kconf_id_strings_str18[sizeof("optional")]; 105 - char kconf_id_strings_str21[sizeof("option")]; 106 - char kconf_id_strings_str22[sizeof("endmenu")]; 107 - char kconf_id_strings_str23[sizeof("mainmenu")]; 108 - char kconf_id_strings_str25[sizeof("menuconfig")]; 109 - char kconf_id_strings_str27[sizeof("modules")]; 110 - char kconf_id_strings_str28[sizeof("allnoconfig_y")]; 111 - char kconf_id_strings_str29[sizeof("menu")]; 112 - char kconf_id_strings_str31[sizeof("select")]; 113 - char kconf_id_strings_str32[sizeof("comment")]; 114 - char kconf_id_strings_str33[sizeof("env")]; 115 - char kconf_id_strings_str35[sizeof("range")]; 116 - char kconf_id_strings_str36[sizeof("choice")]; 117 - char kconf_id_strings_str39[sizeof("bool")]; 118 - char kconf_id_strings_str41[sizeof("source")]; 119 - char kconf_id_strings_str42[sizeof("visible")]; 120 - char kconf_id_strings_str43[sizeof("hex")]; 121 - char kconf_id_strings_str46[sizeof("config")]; 122 - char kconf_id_strings_str47[sizeof("boolean")]; 123 - char kconf_id_strings_str50[sizeof("imply")]; 124 - char kconf_id_strings_str51[sizeof("string")]; 125 - char kconf_id_strings_str54[sizeof("help")]; 126 - char kconf_id_strings_str56[sizeof("prompt")]; 127 - char kconf_id_strings_str72[sizeof("depends")]; 128 - }; 129 - static const struct kconf_id_strings_t kconf_id_strings_contents = 130 - { 131 - "if", 132 - "int", 133 - "endif", 134 - "default", 135 - "tristate", 136 - "endchoice", 137 - "---help---", 138 - "def_tristate", 139 - "def_bool", 140 - "defconfig_list", 141 - "on", 142 - "optional", 143 - "option", 144 - "endmenu", 145 - "mainmenu", 146 - "menuconfig", 147 - "modules", 148 - "allnoconfig_y", 149 - "menu", 150 - "select", 151 - "comment", 152 - "env", 153 - "range", 154 - "choice", 155 - "bool", 156 - "source", 157 - "visible", 158 - "hex", 159 - "config", 160 - "boolean", 161 - "imply", 162 - "string", 163 - "help", 164 - "prompt", 165 - "depends" 166 - }; 167 - #define kconf_id_strings ((const char *) &kconf_id_strings_contents) 168 - #ifdef __GNUC__ 169 - __inline 170 - #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ 171 - __attribute__ ((__gnu_inline__)) 172 - #endif 173 - #endif 174 - const struct kconf_id * 175 - kconf_id_lookup (register const char *str, register unsigned int len) 176 - { 177 - enum 178 - { 179 - TOTAL_KEYWORDS = 35, 180 - MIN_WORD_LENGTH = 2, 181 - MAX_WORD_LENGTH = 14, 182 - MIN_HASH_VALUE = 2, 183 - MAX_HASH_VALUE = 72 184 - }; 185 - 186 - static const struct kconf_id wordlist[] = 187 - { 188 - {-1}, {-1}, 189 - #line 26 "scripts/kconfig/zconf.gperf" 190 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM}, 191 - #line 37 "scripts/kconfig/zconf.gperf" 192 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_TYPE, TF_COMMAND, S_INT}, 193 - {-1}, 194 - #line 27 "scripts/kconfig/zconf.gperf" 195 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND}, 196 - {-1}, 197 - #line 30 "scripts/kconfig/zconf.gperf" 198 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_DEFAULT, TF_COMMAND, S_UNKNOWN}, 199 - #line 32 "scripts/kconfig/zconf.gperf" 200 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TYPE, TF_COMMAND, S_TRISTATE}, 201 - #line 20 "scripts/kconfig/zconf.gperf" 202 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND}, 203 - #line 25 "scripts/kconfig/zconf.gperf" 204 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_HELP, TF_COMMAND}, 205 - {-1}, 206 - #line 33 "scripts/kconfig/zconf.gperf" 207 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_TRISTATE}, 208 - #line 36 "scripts/kconfig/zconf.gperf" 209 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN}, 210 - #line 47 "scripts/kconfig/zconf.gperf" 211 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_OPT_DEFCONFIG_LIST,TF_OPTION}, 212 - {-1}, {-1}, 213 - #line 45 "scripts/kconfig/zconf.gperf" 214 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_ON, TF_PARAM}, 215 - #line 29 "scripts/kconfig/zconf.gperf" 216 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_OPTIONAL, TF_COMMAND}, 217 - {-1}, {-1}, 218 - #line 44 "scripts/kconfig/zconf.gperf" 219 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_OPTION, TF_COMMAND}, 220 - #line 17 "scripts/kconfig/zconf.gperf" 221 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ENDMENU, TF_COMMAND}, 222 - #line 15 "scripts/kconfig/zconf.gperf" 223 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_MAINMENU, TF_COMMAND}, 224 - {-1}, 225 - #line 23 "scripts/kconfig/zconf.gperf" 226 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND}, 227 - {-1}, 228 - #line 46 "scripts/kconfig/zconf.gperf" 229 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION}, 230 - #line 49 "scripts/kconfig/zconf.gperf" 231 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPT_ALLNOCONFIG_Y,TF_OPTION}, 232 - #line 16 "scripts/kconfig/zconf.gperf" 233 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND}, 234 - {-1}, 235 - #line 40 "scripts/kconfig/zconf.gperf" 236 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND}, 237 - #line 21 "scripts/kconfig/zconf.gperf" 238 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND}, 239 - #line 48 "scripts/kconfig/zconf.gperf" 240 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_OPT_ENV, TF_OPTION}, 241 - {-1}, 242 - #line 42 "scripts/kconfig/zconf.gperf" 243 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_RANGE, TF_COMMAND}, 244 - #line 19 "scripts/kconfig/zconf.gperf" 245 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_CHOICE, TF_COMMAND}, 246 - {-1}, {-1}, 247 - #line 34 "scripts/kconfig/zconf.gperf" 248 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str39, T_TYPE, TF_COMMAND, S_BOOLEAN}, 249 - {-1}, 250 - #line 18 "scripts/kconfig/zconf.gperf" 251 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_SOURCE, TF_COMMAND}, 252 - #line 43 "scripts/kconfig/zconf.gperf" 253 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_VISIBLE, TF_COMMAND}, 254 - #line 38 "scripts/kconfig/zconf.gperf" 255 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43, T_TYPE, TF_COMMAND, S_HEX}, 256 - {-1}, {-1}, 257 - #line 22 "scripts/kconfig/zconf.gperf" 258 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_CONFIG, TF_COMMAND}, 259 - #line 35 "scripts/kconfig/zconf.gperf" 260 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47, T_TYPE, TF_COMMAND, S_BOOLEAN}, 261 - {-1}, {-1}, 262 - #line 41 "scripts/kconfig/zconf.gperf" 263 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str50, T_IMPLY, TF_COMMAND}, 264 - #line 39 "scripts/kconfig/zconf.gperf" 265 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_TYPE, TF_COMMAND, S_STRING}, 266 - {-1}, {-1}, 267 - #line 24 "scripts/kconfig/zconf.gperf" 268 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str54, T_HELP, TF_COMMAND}, 269 - {-1}, 270 - #line 31 "scripts/kconfig/zconf.gperf" 271 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str56, T_PROMPT, TF_COMMAND}, 272 - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, 273 - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, 274 - #line 28 "scripts/kconfig/zconf.gperf" 275 - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str72, T_DEPENDS, TF_COMMAND} 276 - }; 277 - 278 - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) 279 - { 280 - register int key = kconf_id_hash (str, len); 281 - 282 - if (key <= MAX_HASH_VALUE && key >= 0) 283 - { 284 - register int o = wordlist[key].name; 285 - if (o >= 0) 286 - { 287 - register const char *s = o + kconf_id_strings; 288 - 289 - if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') 290 - return &wordlist[key]; 291 - } 292 - } 293 - } 294 - return 0; 295 - } 296 - #line 50 "scripts/kconfig/zconf.gperf" 297 -
+5 -5
scripts/kconfig/zconf.tab.c_shipped
··· 209 209 /* Copy the second part of user declarations. */ 210 210 211 211 212 - /* Include zconf.hash.c here so it can see the token constants. */ 213 - #include "zconf.hash.c" 212 + /* Include kconf_id.c here so it can see the token constants. */ 213 + #include "kconf_id.c" 214 214 215 215 216 216 ··· 1515 1515 case 12: 1516 1516 1517 1517 { 1518 - zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name); 1518 + zconf_error("unexpected option \"%s\"", (yyvsp[-2].id)->name); 1519 1519 } 1520 1520 1521 1521 break; ··· 2268 2268 { 2269 2269 if (id->token != endtoken) { 2270 2270 zconf_error("unexpected '%s' within %s block", 2271 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 2271 + id->name, zconf_tokenname(starttoken)); 2272 2272 zconfnerrs++; 2273 2273 return false; 2274 2274 } 2275 2275 if (current_menu->file != current_file) { 2276 2276 zconf_error("'%s' in different file than '%s'", 2277 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 2277 + id->name, zconf_tokenname(starttoken)); 2278 2278 fprintf(stderr, "%s:%d: location of the '%s'\n", 2279 2279 current_menu->file->name, current_menu->lineno, 2280 2280 zconf_tokenname(starttoken));
+5 -5
scripts/kconfig/zconf.y
··· 101 101 } if_entry menu_entry choice_entry 102 102 103 103 %{ 104 - /* Include zconf.hash.c here so it can see the token constants. */ 105 - #include "zconf.hash.c" 104 + /* Include zconf_id.c here so it can see the token constants. */ 105 + #include "kconf_id.c" 106 106 %} 107 107 108 108 %% ··· 119 119 | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } 120 120 | stmt_list option_name error T_EOL 121 121 { 122 - zconf_error("unexpected option \"%s\"", kconf_id_strings + $2->name); 122 + zconf_error("unexpected option \"%s\"", $2->name); 123 123 } 124 124 | stmt_list error T_EOL { zconf_error("invalid statement"); } 125 125 ; ··· 551 551 { 552 552 if (id->token != endtoken) { 553 553 zconf_error("unexpected '%s' within %s block", 554 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 554 + id->name, zconf_tokenname(starttoken)); 555 555 zconfnerrs++; 556 556 return false; 557 557 } 558 558 if (current_menu->file != current_file) { 559 559 zconf_error("'%s' in different file than '%s'", 560 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 560 + id->name, zconf_tokenname(starttoken)); 561 561 fprintf(stderr, "%s:%d: location of the '%s'\n", 562 562 current_menu->file->name, current_menu->lineno, 563 563 zconf_tokenname(starttoken));