Commit 6299fee7b84ac7b4429b4e2787b99470a89cd5f5

Authored by Jan Beulich
Committed by Michal Marek
1 parent 75f0d92b6a

genksyms: properly consider EXPORT_UNUSED_SYMBOL{,_GPL}()

Despite being unused these should also get a CRC calculated.
Primarily I view this as a consistency thing.  But I also think this is
one of the reasons why __crc_* need to be weak (which I think should be
avoided, and hence we should have the goal to eliminate this so that
failure to calculate a proper CRC for a symbol causes the build to fail).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Anibal Monsalve Salazar <anibal@debian.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>

Showing 2 changed files with 99 additions and 94 deletions Side-by-side Diff

scripts/genksyms/keywords.c_shipped
1   -/* ANSI-C code produced by gperf version 3.0.3 */
  1 +/* ANSI-C code produced by gperf version 3.0.4 */
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) \
... ... @@ -34,7 +34,7 @@
34 34 static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
35 35 #line 5 "scripts/genksyms/keywords.gperf"
36 36 struct resword { const char *name; int token; };
37   -/* maximum key range = 62, duplicates = 0 */
  37 +/* maximum key range = 64, duplicates = 0 */
38 38  
39 39 #ifdef __GNUC__
40 40 __inline
41 41  
... ... @@ -48,39 +48,39 @@
48 48 {
49 49 static const unsigned char asso_values[] =
50 50 {
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, 65,
56   - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
57   - 65, 65, 65, 65, 65, 65, 65, 65, 65, 5,
58   - 65, 65, 65, 65, 65, 65, 35, 65, 65, 65,
59   - 0, 65, 65, 65, 65, 65, 65, 65, 65, 65,
60   - 65, 65, 65, 65, 65, 0, 65, 0, 65, 5,
61   - 20, 15, 10, 30, 65, 15, 65, 65, 20, 0,
62   - 10, 35, 20, 65, 10, 5, 0, 10, 5, 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, 65, 65, 65, 65,
75   - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
76   - 65, 65, 65, 65, 65, 65
  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, 67,
  56 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
  57 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 0,
  58 + 67, 67, 67, 67, 67, 67, 15, 67, 67, 67,
  59 + 0, 67, 67, 67, 67, 67, 67, 67, 67, 67,
  60 + 67, 67, 67, 67, 67, 0, 67, 0, 67, 5,
  61 + 25, 20, 15, 30, 67, 15, 67, 67, 10, 0,
  62 + 10, 40, 20, 67, 10, 5, 0, 10, 15, 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, 67, 67, 67, 67,
  75 + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
  76 + 67, 67, 67, 67, 67, 67
77 77 };
78 78 return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
79 79 }
80 80  
81 81 #ifdef __GNUC__
82 82 __inline
83   -#ifdef __GNUC_STDC_INLINE__
  83 +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
84 84 __attribute__ ((__gnu_inline__))
85 85 #endif
86 86 #endif
87 87  
88 88  
89 89  
90 90  
91 91  
92 92  
93 93  
94 94  
95 95  
96 96  
97 97  
98 98  
99 99  
100 100  
101 101  
102 102  
103 103  
104 104  
105 105  
106 106  
107 107  
108 108  
109 109  
110 110  
111 111  
112 112  
113 113  
114 114  
115 115  
116 116  
117 117  
118 118  
119 119  
120 120  
... ... @@ -89,116 +89,119 @@
89 89 {
90 90 enum
91 91 {
92   - TOTAL_KEYWORDS = 43,
  92 + TOTAL_KEYWORDS = 45,
93 93 MIN_WORD_LENGTH = 3,
94 94 MAX_WORD_LENGTH = 24,
95 95 MIN_HASH_VALUE = 3,
96   - MAX_HASH_VALUE = 64
  96 + MAX_HASH_VALUE = 66
97 97 };
98 98  
99 99 static const struct resword wordlist[] =
100 100 {
101 101 {""}, {""}, {""},
102   -#line 28 "scripts/genksyms/keywords.gperf"
  102 +#line 30 "scripts/genksyms/keywords.gperf"
103 103 {"asm", ASM_KEYW},
104 104 {""},
105   -#line 10 "scripts/genksyms/keywords.gperf"
  105 +#line 12 "scripts/genksyms/keywords.gperf"
106 106 {"__asm", ASM_KEYW},
107 107 {""},
108   -#line 11 "scripts/genksyms/keywords.gperf"
  108 +#line 13 "scripts/genksyms/keywords.gperf"
109 109 {"__asm__", ASM_KEYW},
110 110 {""}, {""},
111   -#line 54 "scripts/genksyms/keywords.gperf"
  111 +#line 56 "scripts/genksyms/keywords.gperf"
112 112 {"__typeof__", TYPEOF_KEYW},
113 113 {""},
114   -#line 14 "scripts/genksyms/keywords.gperf"
  114 +#line 16 "scripts/genksyms/keywords.gperf"
115 115 {"__const", CONST_KEYW},
116   -#line 13 "scripts/genksyms/keywords.gperf"
117   - {"__attribute__", ATTRIBUTE_KEYW},
118 116 #line 15 "scripts/genksyms/keywords.gperf"
  117 + {"__attribute__", ATTRIBUTE_KEYW},
  118 +#line 17 "scripts/genksyms/keywords.gperf"
119 119 {"__const__", CONST_KEYW},
120   -#line 20 "scripts/genksyms/keywords.gperf"
  120 +#line 22 "scripts/genksyms/keywords.gperf"
121 121 {"__signed__", SIGNED_KEYW},
122   -#line 46 "scripts/genksyms/keywords.gperf"
  122 +#line 48 "scripts/genksyms/keywords.gperf"
123 123 {"static", STATIC_KEYW},
124   -#line 22 "scripts/genksyms/keywords.gperf"
125   - {"__volatile__", VOLATILE_KEYW},
126   -#line 41 "scripts/genksyms/keywords.gperf"
  124 + {""},
  125 +#line 43 "scripts/genksyms/keywords.gperf"
127 126 {"int", INT_KEYW},
128   -#line 34 "scripts/genksyms/keywords.gperf"
  127 +#line 36 "scripts/genksyms/keywords.gperf"
129 128 {"char", CHAR_KEYW},
130   -#line 35 "scripts/genksyms/keywords.gperf"
  129 +#line 37 "scripts/genksyms/keywords.gperf"
131 130 {"const", CONST_KEYW},
132   -#line 47 "scripts/genksyms/keywords.gperf"
  131 +#line 49 "scripts/genksyms/keywords.gperf"
133 132 {"struct", STRUCT_KEYW},
134   -#line 26 "scripts/genksyms/keywords.gperf"
  133 +#line 28 "scripts/genksyms/keywords.gperf"
135 134 {"__restrict__", RESTRICT_KEYW},
136   -#line 27 "scripts/genksyms/keywords.gperf"
  135 +#line 29 "scripts/genksyms/keywords.gperf"
137 136 {"restrict", RESTRICT_KEYW},
138   -#line 25 "scripts/genksyms/keywords.gperf"
139   - {"_restrict", RESTRICT_KEYW},
140   -#line 18 "scripts/genksyms/keywords.gperf"
  137 +#line 9 "scripts/genksyms/keywords.gperf"
  138 + {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
  139 +#line 20 "scripts/genksyms/keywords.gperf"
141 140 {"__inline__", INLINE_KEYW},
142   -#line 12 "scripts/genksyms/keywords.gperf"
143   - {"__attribute", ATTRIBUTE_KEYW},
144 141 {""},
145   -#line 16 "scripts/genksyms/keywords.gperf"
  142 +#line 24 "scripts/genksyms/keywords.gperf"
  143 + {"__volatile__", VOLATILE_KEYW},
  144 +#line 7 "scripts/genksyms/keywords.gperf"
  145 + {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
  146 +#line 27 "scripts/genksyms/keywords.gperf"
  147 + {"_restrict", RESTRICT_KEYW},
  148 + {""},
  149 +#line 14 "scripts/genksyms/keywords.gperf"
  150 + {"__attribute", ATTRIBUTE_KEYW},
  151 +#line 8 "scripts/genksyms/keywords.gperf"
  152 + {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
  153 +#line 18 "scripts/genksyms/keywords.gperf"
146 154 {"__extension__", EXTENSION_KEYW},
147   -#line 37 "scripts/genksyms/keywords.gperf"
  155 +#line 39 "scripts/genksyms/keywords.gperf"
148 156 {"enum", ENUM_KEYW},
149   -#line 21 "scripts/genksyms/keywords.gperf"
150   - {"__volatile", VOLATILE_KEYW},
151   -#line 38 "scripts/genksyms/keywords.gperf"
  157 +#line 10 "scripts/genksyms/keywords.gperf"
  158 + {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW},
  159 +#line 40 "scripts/genksyms/keywords.gperf"
152 160 {"extern", EXTERN_KEYW},
153 161 {""},
154   -#line 19 "scripts/genksyms/keywords.gperf"
  162 +#line 21 "scripts/genksyms/keywords.gperf"
155 163 {"__signed", SIGNED_KEYW},
156   -#line 9 "scripts/genksyms/keywords.gperf"
157   - {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
158   - {""},
159   -#line 53 "scripts/genksyms/keywords.gperf"
  164 +#line 11 "scripts/genksyms/keywords.gperf"
  165 + {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
  166 +#line 51 "scripts/genksyms/keywords.gperf"
  167 + {"union", UNION_KEYW},
  168 +#line 55 "scripts/genksyms/keywords.gperf"
160 169 {"typeof", TYPEOF_KEYW},
161   -#line 48 "scripts/genksyms/keywords.gperf"
  170 +#line 50 "scripts/genksyms/keywords.gperf"
162 171 {"typedef", TYPEDEF_KEYW},
163   -#line 17 "scripts/genksyms/keywords.gperf"
  172 +#line 19 "scripts/genksyms/keywords.gperf"
164 173 {"__inline", INLINE_KEYW},
165   -#line 33 "scripts/genksyms/keywords.gperf"
  174 +#line 35 "scripts/genksyms/keywords.gperf"
166 175 {"auto", AUTO_KEYW},
167   -#line 49 "scripts/genksyms/keywords.gperf"
168   - {"union", UNION_KEYW},
  176 +#line 23 "scripts/genksyms/keywords.gperf"
  177 + {"__volatile", VOLATILE_KEYW},
169 178 {""}, {""},
170   -#line 50 "scripts/genksyms/keywords.gperf"
171   - {"unsigned", UNSIGNED_KEYW},
172   -#line 51 "scripts/genksyms/keywords.gperf"
173   - {"void", VOID_KEYW},
174   -#line 44 "scripts/genksyms/keywords.gperf"
175   - {"short", SHORT_KEYW},
176   - {""}, {""},
177 179 #line 52 "scripts/genksyms/keywords.gperf"
178   - {"volatile", VOLATILE_KEYW},
  180 + {"unsigned", UNSIGNED_KEYW},
179 181 {""},
180   -#line 39 "scripts/genksyms/keywords.gperf"
181   - {"float", FLOAT_KEYW},
182   -#line 36 "scripts/genksyms/keywords.gperf"
183   - {"double", DOUBLE_KEYW},
184   - {""},
185   -#line 7 "scripts/genksyms/keywords.gperf"
186   - {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
187   - {""}, {""},
188   -#line 40 "scripts/genksyms/keywords.gperf"
  182 +#line 46 "scripts/genksyms/keywords.gperf"
  183 + {"short", SHORT_KEYW},
  184 +#line 42 "scripts/genksyms/keywords.gperf"
189 185 {"inline", INLINE_KEYW},
190   -#line 8 "scripts/genksyms/keywords.gperf"
191   - {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
192   -#line 43 "scripts/genksyms/keywords.gperf"
193   - {"register", REGISTER_KEYW},
194 186 {""},
195   -#line 24 "scripts/genksyms/keywords.gperf"
  187 +#line 54 "scripts/genksyms/keywords.gperf"
  188 + {"volatile", VOLATILE_KEYW},
  189 +#line 44 "scripts/genksyms/keywords.gperf"
  190 + {"long", LONG_KEYW},
  191 +#line 26 "scripts/genksyms/keywords.gperf"
196 192 {"_Bool", BOOL_KEYW},
197   -#line 45 "scripts/genksyms/keywords.gperf"
198   - {"signed", SIGNED_KEYW},
199 193 {""}, {""},
200   -#line 42 "scripts/genksyms/keywords.gperf"
201   - {"long", LONG_KEYW}
  194 +#line 45 "scripts/genksyms/keywords.gperf"
  195 + {"register", REGISTER_KEYW},
  196 +#line 53 "scripts/genksyms/keywords.gperf"
  197 + {"void", VOID_KEYW},
  198 +#line 41 "scripts/genksyms/keywords.gperf"
  199 + {"float", FLOAT_KEYW},
  200 +#line 38 "scripts/genksyms/keywords.gperf"
  201 + {"double", DOUBLE_KEYW},
  202 + {""}, {""}, {""}, {""},
  203 +#line 47 "scripts/genksyms/keywords.gperf"
  204 + {"signed", SIGNED_KEYW}
202 205 };
203 206  
204 207 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
scripts/genksyms/keywords.gperf
... ... @@ -7,6 +7,8 @@
7 7 EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW
8 8 EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
9 9 EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW
  10 +EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW
  11 +EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
10 12 __asm, ASM_KEYW
11 13 __asm__, ASM_KEYW
12 14 __attribute, ATTRIBUTE_KEYW