Remove gperf usage from toolchain

It turns out that gperf-3.1 changed types in the generated code in ways
that aren't even trivially detectable without having to generate a test-file.

It's just not worth using tools and libraries from clowns that don't
understand or care about compatibility. So get rid of gperf.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

+151 -663
-1
Documentation/dontdiff
··· 259 wakeup.elf 260 wakeup.lds 261 zImage* 262 - zconf.hash.c 263 zoffset.h
··· 259 wakeup.elf 260 wakeup.lds 261 zImage* 262 zoffset.h
+2 -2
scripts/genksyms/Makefile
··· 9 HOSTCFLAGS_lex.lex.o := -I$(src) 10 11 # dependencies on generated files need to be listed explicitly 12 - $(obj)/lex.lex.o: $(obj)/keywords.hash.c $(obj)/parse.tab.h 13 14 - clean-files := keywords.hash.c lex.lex.c parse.tab.c parse.tab.h
··· 9 HOSTCFLAGS_lex.lex.o := -I$(src) 10 11 # dependencies on generated files need to be listed explicitly 12 + $(obj)/lex.lex.o: $(obj)/parse.tab.h 13 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 95 /* Bring in the keyword recognizer. */ 96 97 - #include "keywords.hash.c" 98 99 100 /* Macros to append to our phrase collection list. */ ··· 186 case IDENT: 187 APP; 188 { 189 - const struct resword *r = is_reserved_word(yytext, yyleng); 190 - if (r) 191 { 192 - switch (token = r->token) 193 { 194 case ATTRIBUTE_KEYW: 195 lexstate = ST_ATTRIBUTE;
··· 94 95 /* Bring in the keyword recognizer. */ 96 97 + #include "keywords.c" 98 99 100 /* Macros to append to our phrase collection list. */ ··· 186 case IDENT: 187 APP; 188 { 189 + int r = is_reserved_word(yytext, yyleng); 190 + if (r >= 0) 191 { 192 + switch (token = r) 193 { 194 case ATTRIBUTE_KEYW: 195 lexstate = ST_ATTRIBUTE;
+4 -4
scripts/genksyms/lex.lex.c_shipped
··· 1905 1906 /* Bring in the keyword recognizer. */ 1907 1908 - #include "keywords.hash.c" 1909 1910 /* Macros to append to our phrase collection list. */ 1911 ··· 1995 case IDENT: 1996 APP; 1997 { 1998 - const struct resword *r = is_reserved_word(yytext, yyleng); 1999 - if (r) 2000 { 2001 - switch (token = r->token) 2002 { 2003 case ATTRIBUTE_KEYW: 2004 lexstate = ST_ATTRIBUTE;
··· 1905 1906 /* Bring in the keyword recognizer. */ 1907 1908 + #include "keywords.c" 1909 1910 /* Macros to append to our phrase collection list. */ 1911 ··· 1995 case IDENT: 1996 APP; 1997 { 1998 + int r = is_reserved_word(yytext, yyleng); 1999 + if (r >= 0) 2000 { 2001 + switch (token = r) 2002 { 2003 case ATTRIBUTE_KEYW: 2004 lexstate = ST_ATTRIBUTE;
-1
scripts/kconfig/.gitignore
··· 5 *.lex.c 6 *.tab.c 7 *.tab.h 8 - zconf.hash.c 9 *.moc 10 gconf.glade.h 11 *.pot
··· 5 *.lex.c 6 *.tab.c 7 *.tab.h 8 *.moc 9 gconf.glade.h 10 *.pot
+2 -2
scripts/kconfig/Makefile
··· 191 hostprogs-y := conf nconf mconf kxgettext qconf gconf 192 193 clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck 194 - clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h 195 clean-files += config.pot linux.pot 196 197 # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) ··· 280 fi 281 endif 282 283 - $(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c 284 285 $(obj)/qconf.o: $(obj)/qconf.moc 286
··· 191 hostprogs-y := conf nconf mconf kxgettext qconf gconf 192 193 clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck 194 + clean-files += zconf.tab.c zconf.lex.c gconf.glade.h 195 clean-files += config.pot linux.pot 196 197 # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) ··· 280 fi 281 endif 282 283 + $(obj)/zconf.tab.o: $(obj)/zconf.lex.c 284 285 $(obj)/qconf.o: $(obj)/qconf.moc 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 #define T_OPT_ALLNOCONFIG_Y 4 63 64 struct kconf_id { 65 - int name; 66 int token; 67 unsigned int flags; 68 enum symbol_type stype;
··· 62 #define T_OPT_ALLNOCONFIG_Y 4 63 64 struct kconf_id { 65 + const char *name; 66 int token; 67 unsigned int flags; 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 /* Copy the second part of user declarations. */ 210 211 212 - /* Include zconf.hash.c here so it can see the token constants. */ 213 - #include "zconf.hash.c" 214 215 216 ··· 1515 case 12: 1516 1517 { 1518 - zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name); 1519 } 1520 1521 break; ··· 2268 { 2269 if (id->token != endtoken) { 2270 zconf_error("unexpected '%s' within %s block", 2271 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 2272 zconfnerrs++; 2273 return false; 2274 } 2275 if (current_menu->file != current_file) { 2276 zconf_error("'%s' in different file than '%s'", 2277 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 2278 fprintf(stderr, "%s:%d: location of the '%s'\n", 2279 current_menu->file->name, current_menu->lineno, 2280 zconf_tokenname(starttoken));
··· 209 /* Copy the second part of user declarations. */ 210 211 212 + /* Include kconf_id.c here so it can see the token constants. */ 213 + #include "kconf_id.c" 214 215 216 ··· 1515 case 12: 1516 1517 { 1518 + zconf_error("unexpected option \"%s\"", (yyvsp[-2].id)->name); 1519 } 1520 1521 break; ··· 2268 { 2269 if (id->token != endtoken) { 2270 zconf_error("unexpected '%s' within %s block", 2271 + id->name, zconf_tokenname(starttoken)); 2272 zconfnerrs++; 2273 return false; 2274 } 2275 if (current_menu->file != current_file) { 2276 zconf_error("'%s' in different file than '%s'", 2277 + id->name, zconf_tokenname(starttoken)); 2278 fprintf(stderr, "%s:%d: location of the '%s'\n", 2279 current_menu->file->name, current_menu->lineno, 2280 zconf_tokenname(starttoken));
+5 -5
scripts/kconfig/zconf.y
··· 101 } if_entry menu_entry choice_entry 102 103 %{ 104 - /* Include zconf.hash.c here so it can see the token constants. */ 105 - #include "zconf.hash.c" 106 %} 107 108 %% ··· 119 | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } 120 | stmt_list option_name error T_EOL 121 { 122 - zconf_error("unexpected option \"%s\"", kconf_id_strings + $2->name); 123 } 124 | stmt_list error T_EOL { zconf_error("invalid statement"); } 125 ; ··· 551 { 552 if (id->token != endtoken) { 553 zconf_error("unexpected '%s' within %s block", 554 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 555 zconfnerrs++; 556 return false; 557 } 558 if (current_menu->file != current_file) { 559 zconf_error("'%s' in different file than '%s'", 560 - kconf_id_strings + id->name, zconf_tokenname(starttoken)); 561 fprintf(stderr, "%s:%d: location of the '%s'\n", 562 current_menu->file->name, current_menu->lineno, 563 zconf_tokenname(starttoken));
··· 101 } if_entry menu_entry choice_entry 102 103 %{ 104 + /* Include zconf_id.c here so it can see the token constants. */ 105 + #include "kconf_id.c" 106 %} 107 108 %% ··· 119 | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } 120 | stmt_list option_name error T_EOL 121 { 122 + zconf_error("unexpected option \"%s\"", $2->name); 123 } 124 | stmt_list error T_EOL { zconf_error("invalid statement"); } 125 ; ··· 551 { 552 if (id->token != endtoken) { 553 zconf_error("unexpected '%s' within %s block", 554 + id->name, zconf_tokenname(starttoken)); 555 zconfnerrs++; 556 return false; 557 } 558 if (current_menu->file != current_file) { 559 zconf_error("'%s' in different file than '%s'", 560 + id->name, zconf_tokenname(starttoken)); 561 fprintf(stderr, "%s:%d: location of the '%s'\n", 562 current_menu->file->name, current_menu->lineno, 563 zconf_tokenname(starttoken));