aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-01-06 19:33:10 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2019-01-06 19:33:10 -0500
commit85e1ffbd42f664965dc05f6e9851c06379f27fb2 (patch)
tree125d9a6ce2f74873a0d72c6c13903f11ab7fd51b /scripts
parentac5eed2b41776b05cf03aac761d3bb5e64eea24c (diff)
parentd86271af64602e7c86c003b27f27c7216706ff96 (diff)
Merge tag 'kbuild-v4.21-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull more Kbuild updates from Masahiro Yamada: - improve boolinit.cocci and use_after_iter.cocci semantic patches - fix alignment for kallsyms - move 'asm goto' compiler test to Kconfig and clean up jump_label CONFIG option - generate asm-generic wrappers automatically if arch does not implement mandatory UAPI headers - remove redundant generic-y defines - misc cleanups * tag 'kbuild-v4.21-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kconfig: rename generated .*conf-cfg to *conf-cfg kbuild: remove unnecessary stubs for archheader and archscripts kbuild: use assignment instead of define ... endef for filechk_* rules arch: remove redundant UAPI generic-y defines kbuild: generate asm-generic wrappers if mandatory headers are missing arch: remove stale comments "UAPI Header export list" riscv: remove redundant kernel-space generic-y kbuild: change filechk to surround the given command with { } kbuild: remove redundant target cleaning on failure kbuild: clean up rule_dtc_dt_yaml kbuild: remove UIMAGE_IN and UIMAGE_OUT jump_label: move 'asm goto' support test to Kconfig kallsyms: lower alignment on ARM scripts: coccinelle: boolinit: drop warnings on named constants scripts: coccinelle: check for redeclaration kconfig: remove unused "file" field of yylval union nds32: remove redundant kernel-space generic-y nios2: remove unneeded HAS_DMA define
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Kbuild.include10
-rw-r--r--scripts/Makefile.asm-generic4
-rw-r--r--scripts/Makefile.headersinst7
-rw-r--r--scripts/Makefile.lib34
-rw-r--r--scripts/coccinelle/iterators/use_after_iter.cocci3
-rw-r--r--scripts/coccinelle/misc/boolinit.cocci5
-rwxr-xr-xscripts/gcc-goto.sh2
-rw-r--r--scripts/kallsyms.c4
-rw-r--r--scripts/kconfig/.gitignore1
-rw-r--r--scripts/kconfig/Makefile40
-rw-r--r--scripts/kconfig/zconf.y1
11 files changed, 52 insertions, 59 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 46bf1a073f5d..525bff667a52 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -41,11 +41,11 @@ kecho := $($(quiet)kecho)
41### 41###
42# filechk is used to check if the content of a generated file is updated. 42# filechk is used to check if the content of a generated file is updated.
43# Sample usage: 43# Sample usage:
44# define filechk_sample 44#
45# echo $KERNELRELEASE 45# filechk_sample = echo $(KERNELRELEASE)
46# endef 46# version.h: FORCE
47# version.h : Makefile
48# $(call filechk,sample) 47# $(call filechk,sample)
48#
49# The rule defined shall write to stdout the content of the new file. 49# The rule defined shall write to stdout the content of the new file.
50# The existing file will be compared with the new one. 50# The existing file will be compared with the new one.
51# - If no file exist it is created 51# - If no file exist it is created
@@ -56,7 +56,7 @@ kecho := $($(quiet)kecho)
56define filechk 56define filechk
57 $(Q)set -e; \ 57 $(Q)set -e; \
58 mkdir -p $(dir $@); \ 58 mkdir -p $(dir $@); \
59 $(filechk_$(1)) > $@.tmp; \ 59 { $(filechk_$(1)); } > $@.tmp; \
60 if [ -r $@ ] && cmp -s $@ $@.tmp; then \ 60 if [ -r $@ ] && cmp -s $@ $@.tmp; then \
61 rm -f $@.tmp; \ 61 rm -f $@.tmp; \
62 else \ 62 else \
diff --git a/scripts/Makefile.asm-generic b/scripts/Makefile.asm-generic
index 760323e70ebc..a62d2823f6cf 100644
--- a/scripts/Makefile.asm-generic
+++ b/scripts/Makefile.asm-generic
@@ -14,6 +14,10 @@ src := $(subst /generated,,$(obj))
14 14
15include scripts/Kbuild.include 15include scripts/Kbuild.include
16 16
17# If arch does not implement mandatory headers, fallback to asm-generic ones.
18mandatory-y := $(filter-out $(generated-y), $(mandatory-y))
19generic-y += $(foreach f, $(mandatory-y), $(if $(wildcard $(srctree)/$(src)/$(f)),,$(f)))
20
17generic-y := $(addprefix $(obj)/, $(generic-y)) 21generic-y := $(addprefix $(obj)/, $(generic-y))
18generated-y := $(addprefix $(obj)/, $(generated-y)) 22generated-y := $(addprefix $(obj)/, $(generated-y))
19 23
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 45927fcddbc0..3d1ebaabd1b6 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -56,13 +56,6 @@ check-file := $(installdir)/.check
56all-files := $(header-files) $(genhdr-files) 56all-files := $(header-files) $(genhdr-files)
57output-files := $(addprefix $(installdir)/, $(all-files)) 57output-files := $(addprefix $(installdir)/, $(all-files))
58 58
59ifneq ($(mandatory-y),)
60missing := $(filter-out $(all-files),$(mandatory-y))
61ifneq ($(missing),)
62$(error Some mandatory headers ($(missing)) are missing in $(obj))
63endif
64endif
65
66# Work out what needs to be removed 59# Work out what needs to be removed
67oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h)) 60oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h))
68unwanted := $(filter-out $(all-files),$(oldheaders)) 61unwanted := $(filter-out $(all-files),$(oldheaders))
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 3ceaa2e2a6ce..12b88d09c3a4 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -242,8 +242,7 @@ cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
242# --------------------------------------------------------------------------- 242# ---------------------------------------------------------------------------
243 243
244quiet_cmd_gzip = GZIP $@ 244quiet_cmd_gzip = GZIP $@
245cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \ 245 cmd_gzip = cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@
246 (rm -f $@ ; false)
247 246
248# DTC 247# DTC
249# --------------------------------------------------------------------------- 248# ---------------------------------------------------------------------------
@@ -305,8 +304,8 @@ quiet_cmd_dtb_check = CHECK $@
305 cmd_dtb_check = $(DT_CHECKER) -p $(DT_TMP_SCHEMA) $@ ; 304 cmd_dtb_check = $(DT_CHECKER) -p $(DT_TMP_SCHEMA) $@ ;
306 305
307define rule_dtc_dt_yaml 306define rule_dtc_dt_yaml
308 $(call cmd_and_fixdep,dtc,yaml) \ 307 $(call cmd_and_fixdep,dtc,yaml)
309 $(call echo-cmd,dtb_check) $(cmd_dtb_check) 308 $(call cmd,dtb_check)
310endef 309endef
311 310
312$(obj)/%.dt.yaml: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE 311$(obj)/%.dt.yaml: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE
@@ -336,26 +335,22 @@ printf "%08x\n" $$dec_size | \
336 335
337quiet_cmd_bzip2 = BZIP2 $@ 336quiet_cmd_bzip2 = BZIP2 $@
338cmd_bzip2 = (cat $(filter-out FORCE,$^) | \ 337cmd_bzip2 = (cat $(filter-out FORCE,$^) | \
339 bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 338 bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@
340 (rm -f $@ ; false)
341 339
342# Lzma 340# Lzma
343# --------------------------------------------------------------------------- 341# ---------------------------------------------------------------------------
344 342
345quiet_cmd_lzma = LZMA $@ 343quiet_cmd_lzma = LZMA $@
346cmd_lzma = (cat $(filter-out FORCE,$^) | \ 344cmd_lzma = (cat $(filter-out FORCE,$^) | \
347 lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 345 lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@
348 (rm -f $@ ; false)
349 346
350quiet_cmd_lzo = LZO $@ 347quiet_cmd_lzo = LZO $@
351cmd_lzo = (cat $(filter-out FORCE,$^) | \ 348cmd_lzo = (cat $(filter-out FORCE,$^) | \
352 lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 349 lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@
353 (rm -f $@ ; false)
354 350
355quiet_cmd_lz4 = LZ4 $@ 351quiet_cmd_lz4 = LZ4 $@
356cmd_lz4 = (cat $(filter-out FORCE,$^) | \ 352cmd_lz4 = (cat $(filter-out FORCE,$^) | \
357 lz4c -l -c1 stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 353 lz4c -l -c1 stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@
358 (rm -f $@ ; false)
359 354
360# U-Boot mkimage 355# U-Boot mkimage
361# --------------------------------------------------------------------------- 356# ---------------------------------------------------------------------------
@@ -371,15 +366,13 @@ UIMAGE_TYPE ?= kernel
371UIMAGE_LOADADDR ?= arch_must_set_this 366UIMAGE_LOADADDR ?= arch_must_set_this
372UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR) 367UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR)
373UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)' 368UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)'
374UIMAGE_IN ?= $<
375UIMAGE_OUT ?= $@
376 369
377quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT) 370quiet_cmd_uimage = UIMAGE $@
378 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \ 371 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(UIMAGE_ARCH) -O linux \
379 -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \ 372 -C $(UIMAGE_COMPRESSION) $(UIMAGE_OPTS-y) \
380 -T $(UIMAGE_TYPE) \ 373 -T $(UIMAGE_TYPE) \
381 -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \ 374 -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \
382 -n $(UIMAGE_NAME) -d $(UIMAGE_IN) $(UIMAGE_OUT) 375 -n $(UIMAGE_NAME) -d $< $@
383 376
384# XZ 377# XZ
385# --------------------------------------------------------------------------- 378# ---------------------------------------------------------------------------
@@ -401,13 +394,11 @@ quiet_cmd_uimage = UIMAGE $(UIMAGE_OUT)
401quiet_cmd_xzkern = XZKERN $@ 394quiet_cmd_xzkern = XZKERN $@
402cmd_xzkern = (cat $(filter-out FORCE,$^) | \ 395cmd_xzkern = (cat $(filter-out FORCE,$^) | \
403 sh $(srctree)/scripts/xz_wrap.sh && \ 396 sh $(srctree)/scripts/xz_wrap.sh && \
404 $(call size_append, $(filter-out FORCE,$^))) > $@ || \ 397 $(call size_append, $(filter-out FORCE,$^))) > $@
405 (rm -f $@ ; false)
406 398
407quiet_cmd_xzmisc = XZMISC $@ 399quiet_cmd_xzmisc = XZMISC $@
408cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ 400cmd_xzmisc = (cat $(filter-out FORCE,$^) | \
409 xz --check=crc32 --lzma2=dict=1MiB) > $@ || \ 401 xz --check=crc32 --lzma2=dict=1MiB) > $@
410 (rm -f $@ ; false)
411 402
412# ASM offsets 403# ASM offsets
413# --------------------------------------------------------------------------- 404# ---------------------------------------------------------------------------
@@ -426,7 +417,6 @@ endef
426# Use filechk to avoid rebuilds when a header changes, but the resulting file 417# Use filechk to avoid rebuilds when a header changes, but the resulting file
427# does not 418# does not
428define filechk_offsets 419define filechk_offsets
429 ( \
430 echo "#ifndef $2"; \ 420 echo "#ifndef $2"; \
431 echo "#define $2"; \ 421 echo "#define $2"; \
432 echo "/*"; \ 422 echo "/*"; \
@@ -437,5 +427,5 @@ define filechk_offsets
437 echo ""; \ 427 echo ""; \
438 sed -ne $(sed-offsets) < $<; \ 428 sed -ne $(sed-offsets) < $<; \
439 echo ""; \ 429 echo ""; \
440 echo "#endif" ) 430 echo "#endif"
441endef 431endef
diff --git a/scripts/coccinelle/iterators/use_after_iter.cocci b/scripts/coccinelle/iterators/use_after_iter.cocci
index ce8cc9c006e5..66a1140474c8 100644
--- a/scripts/coccinelle/iterators/use_after_iter.cocci
+++ b/scripts/coccinelle/iterators/use_after_iter.cocci
@@ -35,6 +35,7 @@ iterator name hlist_for_each_entry_from;
35iterator name hlist_for_each_entry_safe; 35iterator name hlist_for_each_entry_safe;
36statement S; 36statement S;
37position p1,p2; 37position p1,p2;
38type T;
38@@ 39@@
39 40
40( 41(
@@ -125,6 +126,8 @@ sizeof(<+...c...+>)
125| 126|
126 &c->member 127 &c->member
127| 128|
129T c;
130|
128c = E 131c = E
129| 132|
130*c@p2 133*c@p2
diff --git a/scripts/coccinelle/misc/boolinit.cocci b/scripts/coccinelle/misc/boolinit.cocci
index b0584a33c921..aabb581fab5c 100644
--- a/scripts/coccinelle/misc/boolinit.cocci
+++ b/scripts/coccinelle/misc/boolinit.cocci
@@ -136,9 +136,14 @@ position p1;
136@r4 depends on !patch@ 136@r4 depends on !patch@
137bool b; 137bool b;
138position p2; 138position p2;
139identifier i;
139constant c != {0,1}; 140constant c != {0,1};
140@@ 141@@
142(
143 b = i
144|
141*b@p2 = c 145*b@p2 = c
146)
142 147
143@script:python depends on org@ 148@script:python depends on org@
144p << r1.p; 149p << r1.p;
diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
index 083c526073ef..8b980fb2270a 100755
--- a/scripts/gcc-goto.sh
+++ b/scripts/gcc-goto.sh
@@ -3,7 +3,7 @@
3# Test for gcc 'asm goto' support 3# Test for gcc 'asm goto' support
4# Copyright (C) 2010, Jason Baron <jbaron@redhat.com> 4# Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
5 5
6cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y" 6cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
7int main(void) 7int main(void)
8{ 8{
9#if defined(__arm__) || defined(__aarch64__) 9#if defined(__arm__) || defined(__aarch64__)
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 109a1af7e444..77cebad0474e 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -334,10 +334,10 @@ static void write_src(void)
334 printf("#include <asm/types.h>\n"); 334 printf("#include <asm/types.h>\n");
335 printf("#if BITS_PER_LONG == 64\n"); 335 printf("#if BITS_PER_LONG == 64\n");
336 printf("#define PTR .quad\n"); 336 printf("#define PTR .quad\n");
337 printf("#define ALGN .align 8\n"); 337 printf("#define ALGN .balign 8\n");
338 printf("#else\n"); 338 printf("#else\n");
339 printf("#define PTR .long\n"); 339 printf("#define PTR .long\n");
340 printf("#define ALGN .align 4\n"); 340 printf("#define ALGN .balign 4\n");
341 printf("#endif\n"); 341 printf("#endif\n");
342 342
343 printf("\t.section .rodata, \"a\"\n"); 343 printf("\t.section .rodata, \"a\"\n");
diff --git a/scripts/kconfig/.gitignore b/scripts/kconfig/.gitignore
index 0aabc1d6a182..b5bf92f66d11 100644
--- a/scripts/kconfig/.gitignore
+++ b/scripts/kconfig/.gitignore
@@ -2,6 +2,7 @@
2# Generated files 2# Generated files
3# 3#
4*.moc 4*.moc
5*conf-cfg
5 6
6# 7#
7# configuration programs 8# configuration programs
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index ec204fa54c9a..c05ab001b54c 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -157,55 +157,53 @@ conf-objs := conf.o $(common-objs)
157hostprogs-y += nconf 157hostprogs-y += nconf
158nconf-objs := nconf.o nconf.gui.o $(common-objs) 158nconf-objs := nconf.o nconf.gui.o $(common-objs)
159 159
160HOSTLDLIBS_nconf = $(shell . $(obj)/.nconf-cfg && echo $$libs) 160HOSTLDLIBS_nconf = $(shell . $(obj)/nconf-cfg && echo $$libs)
161HOSTCFLAGS_nconf.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags) 161HOSTCFLAGS_nconf.o = $(shell . $(obj)/nconf-cfg && echo $$cflags)
162HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/.nconf-cfg && echo $$cflags) 162HOSTCFLAGS_nconf.gui.o = $(shell . $(obj)/nconf-cfg && echo $$cflags)
163 163
164$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/.nconf-cfg 164$(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/nconf-cfg
165 165
166# mconf: Used for the menuconfig target based on lxdialog 166# mconf: Used for the menuconfig target based on lxdialog
167hostprogs-y += mconf 167hostprogs-y += mconf
168lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o 168lxdialog := checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
169mconf-objs := mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs) 169mconf-objs := mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs)
170 170
171HOSTLDLIBS_mconf = $(shell . $(obj)/.mconf-cfg && echo $$libs) 171HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs)
172$(foreach f, mconf.o $(lxdialog), \ 172$(foreach f, mconf.o $(lxdialog), \
173 $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/.mconf-cfg && echo $$$$cflags))) 173 $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/mconf-cfg && echo $$$$cflags)))
174 174
175$(obj)/mconf.o: $(obj)/.mconf-cfg 175$(obj)/mconf.o: $(obj)/mconf-cfg
176$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/.mconf-cfg 176$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/mconf-cfg
177 177
178# qconf: Used for the xconfig target based on Qt 178# qconf: Used for the xconfig target based on Qt
179hostprogs-y += qconf 179hostprogs-y += qconf
180qconf-cxxobjs := qconf.o 180qconf-cxxobjs := qconf.o
181qconf-objs := images.o $(common-objs) 181qconf-objs := images.o $(common-objs)
182 182
183HOSTLDLIBS_qconf = $(shell . $(obj)/.qconf-cfg && echo $$libs) 183HOSTLDLIBS_qconf = $(shell . $(obj)/qconf-cfg && echo $$libs)
184HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/.qconf-cfg && echo $$cflags) 184HOSTCXXFLAGS_qconf.o = $(shell . $(obj)/qconf-cfg && echo $$cflags)
185 185
186$(obj)/qconf.o: $(obj)/.qconf-cfg $(obj)/qconf.moc 186$(obj)/qconf.o: $(obj)/qconf-cfg $(obj)/qconf.moc
187 187
188quiet_cmd_moc = MOC $@ 188quiet_cmd_moc = MOC $@
189 cmd_moc = $(shell . $(obj)/.qconf-cfg && echo $$moc) -i $< -o $@ 189 cmd_moc = $(shell . $(obj)/qconf-cfg && echo $$moc) -i $< -o $@
190 190
191$(obj)/%.moc: $(src)/%.h $(obj)/.qconf-cfg 191$(obj)/%.moc: $(src)/%.h $(obj)/qconf-cfg
192 $(call cmd,moc) 192 $(call cmd,moc)
193 193
194# gconf: Used for the gconfig target based on GTK+ 194# gconf: Used for the gconfig target based on GTK+
195hostprogs-y += gconf 195hostprogs-y += gconf
196gconf-objs := gconf.o images.o $(common-objs) 196gconf-objs := gconf.o images.o $(common-objs)
197 197
198HOSTLDLIBS_gconf = $(shell . $(obj)/.gconf-cfg && echo $$libs) 198HOSTLDLIBS_gconf = $(shell . $(obj)/gconf-cfg && echo $$libs)
199HOSTCFLAGS_gconf.o = $(shell . $(obj)/.gconf-cfg && echo $$cflags) 199HOSTCFLAGS_gconf.o = $(shell . $(obj)/gconf-cfg && echo $$cflags)
200 200
201$(obj)/gconf.o: $(obj)/.gconf-cfg 201$(obj)/gconf.o: $(obj)/gconf-cfg
202 202
203# check if necessary packages are available, and configure build flags 203# check if necessary packages are available, and configure build flags
204define filechk_conf_cfg 204filechk_conf_cfg = $(CONFIG_SHELL) $<
205 $(CONFIG_SHELL) $<
206endef
207 205
208$(obj)/.%conf-cfg: $(src)/%conf-cfg.sh FORCE 206$(obj)/%conf-cfg: $(src)/%conf-cfg.sh FORCE
209 $(call filechk,conf_cfg) 207 $(call filechk,conf_cfg)
210 208
211clean-files += .*conf-cfg 209clean-files += conf-cfg
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index 69409abc7dc2..60936c76865b 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -35,7 +35,6 @@ static struct menu *current_menu, *current_entry;
35%union 35%union
36{ 36{
37 char *string; 37 char *string;
38 struct file *file;
39 struct symbol *symbol; 38 struct symbol *symbol;
40 struct expr *expr; 39 struct expr *expr;
41 struct menu *menu; 40 struct menu *menu;