aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-05-10 23:11:05 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-05-10 23:11:05 -0400
commit593043d35ddff8ab033546c2a89bb1d4080d03e1 (patch)
tree81284ecf3ce7dc79e18401d2b76c414556e7f2a1
parent556d994a75790dce8a9c6b35b94cff1d526b2e32 (diff)
parentf55813b4d8bfc9f35fda87bc1e21b7f26835fc5c (diff)
Merge tag 'kbuild-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada: - improve Clang support - clean up various Makefiles - improve build log visibility (objtool, alpha, ia64) - improve compiler flag evaluation for better build performance - fix GCC version-dependent warning - fix genksyms * tag 'kbuild-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (23 commits) kbuild: dtbinst: remove unnecessary __dtbs_install_prep target ia64: beatify build log for gate.so and gate-syms.o alpha: make short build log available for division routines alpha: merge build rules of division routines alpha: add $(src)/ rather than $(obj)/ to make source file path Makefile: evaluate LDFLAGS_BUILD_ID only once objtool: make it visible in make V=1 output kbuild: clang: add -no-integrated-as to KBUILD_[AC]FLAGS kbuild: Add support to generate LLVM assembly files kbuild: Add better clang cross build support kbuild: drop -Wno-unknown-warning-option from clang options kbuild: fix asm-offset generation to work with clang kbuild: consolidate redundant sed script ASM offset generation frv: Use OFFSET macro in DEF_*REG() kbuild: avoid conflict between -ffunction-sections and -pg on gcc-4.7 kbuild: Consolidate header generation from ASM offset information kbuild: use -Oz instead of -Os when using clang kbuild, LLVMLinux: Add -Werror to cc-option to support clang Kbuild: make designated_init attribute fatal kbuild: drop unneeded patterns '.*.orig' and '.*.rej' from distclean ...
-rw-r--r--.gitignore1
-rw-r--r--Kbuild25
-rw-r--r--Makefile41
-rw-r--r--arch/alpha/lib/Makefile11
-rw-r--r--arch/frv/kernel/asm-offsets.c19
-rw-r--r--arch/ia64/kernel/Makefile26
-rw-r--r--arch/ia64/kernel/Makefile.gate2
-rw-r--r--include/linux/kbuild.h6
-rw-r--r--scripts/Kbuild.include6
-rw-r--r--scripts/Makefile.build12
-rw-r--r--scripts/Makefile.dtbinst8
-rw-r--r--scripts/Makefile.extrawarn1
-rw-r--r--scripts/Makefile.lib31
-rw-r--r--scripts/genksyms/parse.tab.c_shipped474
-rw-r--r--scripts/genksyms/parse.y2
-rw-r--r--scripts/mod/Makefile28
16 files changed, 324 insertions, 369 deletions
diff --git a/.gitignore b/.gitignore
index c2ed4ecb0acd..0c39aa20b6ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@
33*.lzo 33*.lzo
34*.patch 34*.patch
35*.gcno 35*.gcno
36*.ll
36modules.builtin 37modules.builtin
37Module.symvers 38Module.symvers
38*.dwo 39*.dwo
diff --git a/Kbuild b/Kbuild
index 3d0ae152af7c..94c752762bc2 100644
--- a/Kbuild
+++ b/Kbuild
@@ -7,31 +7,6 @@
7# 4) Check for missing system calls 7# 4) Check for missing system calls
8# 5) Generate constants.py (may need bounds.h) 8# 5) Generate constants.py (may need bounds.h)
9 9
10# Default sed regexp - multiline due to syntax constraints
11define sed-y
12 "/^->/{s:->#\(.*\):/* \1 */:; \
13 s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
14 s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
15 s:->::; p;}"
16endef
17
18# Use filechk to avoid rebuilds when a header changes, but the resulting file
19# does not
20define filechk_offsets
21 (set -e; \
22 echo "#ifndef $2"; \
23 echo "#define $2"; \
24 echo "/*"; \
25 echo " * DO NOT MODIFY."; \
26 echo " *"; \
27 echo " * This file was generated by Kbuild"; \
28 echo " */"; \
29 echo ""; \
30 sed -ne $(sed-y); \
31 echo ""; \
32 echo "#endif" )
33endef
34
35##### 10#####
36# 1) Generate bounds.h 11# 1) Generate bounds.h
37 12
diff --git a/Makefile b/Makefile
index 220121fdca4d..c0a5fab8d14c 100644
--- a/Makefile
+++ b/Makefile
@@ -632,13 +632,9 @@ include arch/$(SRCARCH)/Makefile
632KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) 632KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
633KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) 633KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
634 634
635ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
636KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
637KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
638endif
639
640ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE 635ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
641KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) 636KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
637KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
642else 638else
643ifdef CONFIG_PROFILE_ALL_BRANCHES 639ifdef CONFIG_PROFILE_ALL_BRANCHES
644KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) 640KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
@@ -698,8 +694,16 @@ endif
698KBUILD_CFLAGS += $(stackp-flag) 694KBUILD_CFLAGS += $(stackp-flag)
699 695
700ifeq ($(cc-name),clang) 696ifeq ($(cc-name),clang)
697ifneq ($(CROSS_COMPILE),)
698CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%))
699GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
700endif
701ifneq ($(GCC_TOOLCHAIN),)
702CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN)
703endif
704KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
705KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
701KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) 706KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
702KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,)
703KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable) 707KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
704KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) 708KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
705KBUILD_CFLAGS += $(call cc-disable-warning, gnu) 709KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
@@ -710,10 +714,12 @@ KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
710# See modpost pattern 2 714# See modpost pattern 2
711KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,) 715KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
712KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior) 716KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
717KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
718KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
713else 719else
714 720
715# These warnings generated too much noise in a regular build. 721# These warnings generated too much noise in a regular build.
716# Use make W=1 to enable them (see scripts/Makefile.build) 722# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
717KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) 723KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
718KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) 724KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
719endif 725endif
@@ -773,6 +779,11 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
773KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) 779KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
774endif 780endif
775 781
782ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
783KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
784KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
785endif
786
776# arch Makefile may override CC so keep this after arch Makefile is included 787# arch Makefile may override CC so keep this after arch Makefile is included
777NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) 788NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
778CHECKFLAGS += $(NOSTDINC_FLAGS) 789CHECKFLAGS += $(NOSTDINC_FLAGS)
@@ -801,6 +812,9 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=date-time)
801# enforce correct pointer usage 812# enforce correct pointer usage
802KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types) 813KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
803 814
815# Require designated initializers for all marked structures
816KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
817
804# use the deterministic mode of AR if available 818# use the deterministic mode of AR if available
805KBUILD_ARFLAGS := $(call ar-option,D) 819KBUILD_ARFLAGS := $(call ar-option,D)
806 820
@@ -815,7 +829,7 @@ KBUILD_AFLAGS += $(ARCH_AFLAGS) $(KAFLAGS)
815KBUILD_CFLAGS += $(ARCH_CFLAGS) $(KCFLAGS) 829KBUILD_CFLAGS += $(ARCH_CFLAGS) $(KCFLAGS)
816 830
817# Use --build-id when available. 831# Use --build-id when available.
818LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ 832LDFLAGS_BUILD_ID := $(patsubst -Wl$(comma)%,%,\
819 $(call cc-ldoption, -Wl$(comma)--build-id,)) 833 $(call cc-ldoption, -Wl$(comma)--build-id,))
820KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID) 834KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
821LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID) 835LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
@@ -1315,8 +1329,8 @@ PHONY += distclean
1315distclean: mrproper 1329distclean: mrproper
1316 @find $(srctree) $(RCS_FIND_IGNORE) \ 1330 @find $(srctree) $(RCS_FIND_IGNORE) \
1317 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ 1331 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
1318 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ 1332 -o -name '*.bak' -o -name '#*#' -o -name '*%' \
1319 -o -name '.*.rej' -o -name '*%' -o -name 'core' \) \ 1333 -o -name 'core' \) \
1320 -type f -print | xargs rm -f 1334 -type f -print | xargs rm -f
1321 1335
1322 1336
@@ -1361,6 +1375,8 @@ help:
1361 @echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)' 1375 @echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
1362 @echo ' dir/ - Build all files in dir and below' 1376 @echo ' dir/ - Build all files in dir and below'
1363 @echo ' dir/file.[ois] - Build specified target only' 1377 @echo ' dir/file.[ois] - Build specified target only'
1378 @echo ' dir/file.ll - Build the LLVM assembly file'
1379 @echo ' (requires compiler support for LLVM assembly generation)'
1364 @echo ' dir/file.lst - Build specified mixed source/assembly target only' 1380 @echo ' dir/file.lst - Build specified mixed source/assembly target only'
1365 @echo ' (requires a recent binutils and recent build (System.map))' 1381 @echo ' (requires a recent binutils and recent build (System.map))'
1366 @echo ' dir/file.ko - Build module including final link' 1382 @echo ' dir/file.ko - Build module including final link'
@@ -1549,6 +1565,7 @@ clean: $(clean-dirs)
1549 -o -name '*.symtypes' -o -name 'modules.order' \ 1565 -o -name '*.symtypes' -o -name 'modules.order' \
1550 -o -name modules.builtin -o -name '.tmp_*.o.*' \ 1566 -o -name modules.builtin -o -name '.tmp_*.o.*' \
1551 -o -name '*.c.[012]*.*' \ 1567 -o -name '*.c.[012]*.*' \
1568 -o -name '*.ll' \
1552 -o -name '*.gcno' \) -type f -print | xargs rm -f 1569 -o -name '*.gcno' \) -type f -print | xargs rm -f
1553 1570
1554# Generate tags for editors 1571# Generate tags for editors
@@ -1652,6 +1669,8 @@ endif
1652 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1669 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1653%.symtypes: %.c prepare scripts FORCE 1670%.symtypes: %.c prepare scripts FORCE
1654 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 1671 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1672%.ll: %.c prepare scripts FORCE
1673 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
1655 1674
1656# Modules 1675# Modules
1657/: prepare scripts FORCE 1676/: prepare scripts FORCE
diff --git a/arch/alpha/lib/Makefile b/arch/alpha/lib/Makefile
index 59660743237c..7083434dd241 100644
--- a/arch/alpha/lib/Makefile
+++ b/arch/alpha/lib/Makefile
@@ -46,11 +46,6 @@ AFLAGS___remqu.o = -DREM
46AFLAGS___divlu.o = -DDIV -DINTSIZE 46AFLAGS___divlu.o = -DDIV -DINTSIZE
47AFLAGS___remlu.o = -DREM -DINTSIZE 47AFLAGS___remlu.o = -DREM -DINTSIZE
48 48
49$(obj)/__divqu.o: $(obj)/$(ev6-y)divide.S 49$(addprefix $(obj)/,__divqu.o __remqu.o __divlu.o __remlu.o): \
50 $(cmd_as_o_S) 50 $(src)/$(ev6-y)divide.S FORCE
51$(obj)/__remqu.o: $(obj)/$(ev6-y)divide.S 51 $(call if_changed_rule,as_o_S)
52 $(cmd_as_o_S)
53$(obj)/__divlu.o: $(obj)/$(ev6-y)divide.S
54 $(cmd_as_o_S)
55$(obj)/__remlu.o: $(obj)/$(ev6-y)divide.S
56 $(cmd_as_o_S)
diff --git a/arch/frv/kernel/asm-offsets.c b/arch/frv/kernel/asm-offsets.c
index 8414293f213a..20c5b79b55f9 100644
--- a/arch/frv/kernel/asm-offsets.c
+++ b/arch/frv/kernel/asm-offsets.c
@@ -14,21 +14,10 @@
14#include <asm/thread_info.h> 14#include <asm/thread_info.h>
15#include <asm/gdb-stub.h> 15#include <asm/gdb-stub.h>
16 16
17#define DEF_PTREG(sym, reg) \ 17#define DEF_PTREG(sym, reg) OFFSET(sym, pt_regs, reg)
18 asm volatile("\n->" #sym " %0 offsetof(struct pt_regs, " #reg ")" \ 18#define DEF_IREG(sym, reg) OFFSET(sym, user_context, reg)
19 : : "i" (offsetof(struct pt_regs, reg))) 19#define DEF_FREG(sym, reg) OFFSET(sym, user_context, reg)
20 20#define DEF_0REG(sym, reg) OFFSET(sym, frv_frame0, reg)
21#define DEF_IREG(sym, reg) \
22 asm volatile("\n->" #sym " %0 offsetof(struct user_context, " #reg ")" \
23 : : "i" (offsetof(struct user_context, reg)))
24
25#define DEF_FREG(sym, reg) \
26 asm volatile("\n->" #sym " %0 offsetof(struct user_context, " #reg ")" \
27 : : "i" (offsetof(struct user_context, reg)))
28
29#define DEF_0REG(sym, reg) \
30 asm volatile("\n->" #sym " %0 offsetof(struct frv_frame0, " #reg ")" \
31 : : "i" (offsetof(struct frv_frame0, reg)))
32 21
33void foo(void) 22void foo(void)
34{ 23{
diff --git a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile
index 3686d6abafde..9edda5466020 100644
--- a/arch/ia64/kernel/Makefile
+++ b/arch/ia64/kernel/Makefile
@@ -50,32 +50,10 @@ CFLAGS_traps.o += -mfixed-range=f2-f5,f16-f31
50# The gate DSO image is built using a special linker script. 50# The gate DSO image is built using a special linker script.
51include $(src)/Makefile.gate 51include $(src)/Makefile.gate
52 52
53# Calculate NR_IRQ = max(IA64_NATIVE_NR_IRQS, XEN_NR_IRQS, ...) based on config
54define sed-y
55 "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
56endef
57quiet_cmd_nr_irqs = GEN $@
58define cmd_nr_irqs
59 (set -e; \
60 echo "#ifndef __ASM_NR_IRQS_H__"; \
61 echo "#define __ASM_NR_IRQS_H__"; \
62 echo "/*"; \
63 echo " * DO NOT MODIFY."; \
64 echo " *"; \
65 echo " * This file was generated by Kbuild"; \
66 echo " *"; \
67 echo " */"; \
68 echo ""; \
69 sed -ne $(sed-y) $<; \
70 echo ""; \
71 echo "#endif" ) > $@
72endef
73
74# We use internal kbuild rules to avoid the "is up to date" message from make 53# We use internal kbuild rules to avoid the "is up to date" message from make
75arch/$(SRCARCH)/kernel/nr-irqs.s: arch/$(SRCARCH)/kernel/nr-irqs.c 54arch/$(SRCARCH)/kernel/nr-irqs.s: arch/$(SRCARCH)/kernel/nr-irqs.c
76 $(Q)mkdir -p $(dir $@) 55 $(Q)mkdir -p $(dir $@)
77 $(call if_changed_dep,cc_s_c) 56 $(call if_changed_dep,cc_s_c)
78 57
79include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s 58include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s FORCE
80 $(Q)mkdir -p $(dir $@) 59 $(call filechk,offsets,__ASM_NR_IRQS_H__)
81 $(call cmd,nr_irqs)
diff --git a/arch/ia64/kernel/Makefile.gate b/arch/ia64/kernel/Makefile.gate
index ceeffc509764..a32903ada016 100644
--- a/arch/ia64/kernel/Makefile.gate
+++ b/arch/ia64/kernel/Makefile.gate
@@ -6,7 +6,7 @@ extra-y += gate.so gate-syms.o gate.lds gate.o
6 6
7CPPFLAGS_gate.lds := -P -C -U$(ARCH) 7CPPFLAGS_gate.lds := -P -C -U$(ARCH)
8 8
9quiet_cmd_gate = GATE $@ 9quiet_cmd_gate = GATE $@
10 cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@ 10 cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@
11 11
12GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1 \ 12GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1 \
diff --git a/include/linux/kbuild.h b/include/linux/kbuild.h
index 22a72198c14b..4e80f3a9ad58 100644
--- a/include/linux/kbuild.h
+++ b/include/linux/kbuild.h
@@ -2,14 +2,14 @@
2#define __LINUX_KBUILD_H 2#define __LINUX_KBUILD_H
3 3
4#define DEFINE(sym, val) \ 4#define DEFINE(sym, val) \
5 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 5 asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
6 6
7#define BLANK() asm volatile("\n->" : : ) 7#define BLANK() asm volatile("\n.ascii \"->\"" : : )
8 8
9#define OFFSET(sym, str, mem) \ 9#define OFFSET(sym, str, mem) \
10 DEFINE(sym, offsetof(struct str, mem)) 10 DEFINE(sym, offsetof(struct str, mem))
11 11
12#define COMMENT(x) \ 12#define COMMENT(x) \
13 asm volatile("\n->#" x) 13 asm volatile("\n.ascii \"->#" x "\"")
14 14
15#endif 15#endif
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index afe3fd3af1e4..61f87a99bf0a 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -116,12 +116,12 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
116# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586) 116# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
117 117
118cc-option = $(call try-run,\ 118cc-option = $(call try-run,\
119 $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) 119 $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
120 120
121# cc-option-yn 121# cc-option-yn
122# Usage: flag := $(call cc-option-yn,-march=winchip-c6) 122# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
123cc-option-yn = $(call try-run,\ 123cc-option-yn = $(call try-run,\
124 $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n) 124 $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
125 125
126# cc-option-align 126# cc-option-align
127# Prefix align with either -falign or -malign 127# Prefix align with either -falign or -malign
@@ -131,7 +131,7 @@ cc-option-align = $(subst -functions=0,,\
131# cc-disable-warning 131# cc-disable-warning
132# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) 132# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
133cc-disable-warning = $(call try-run,\ 133cc-disable-warning = $(call try-run,\
134 $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) 134 $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
135 135
136# cc-name 136# cc-name
137# Expands to either gcc or clang 137# Expands to either gcc or clang
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index d883116ebaa4..733e044fff8b 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -177,6 +177,14 @@ cmd_cc_symtypes_c = \
177$(obj)/%.symtypes : $(src)/%.c FORCE 177$(obj)/%.symtypes : $(src)/%.c FORCE
178 $(call cmd,cc_symtypes_c) 178 $(call cmd,cc_symtypes_c)
179 179
180# LLVM assembly
181# Generate .ll files from .c
182quiet_cmd_cc_ll_c = CC $(quiet_modtag) $@
183 cmd_cc_ll_c = $(CC) $(c_flags) -emit-llvm -S -o $@ $<
184
185$(obj)/%.ll: $(src)/%.c FORCE
186 $(call if_changed_dep,cc_ll_c)
187
180# C (.c) files 188# C (.c) files
181# The C file is compiled and updated dependency information is generated. 189# The C file is compiled and updated dependency information is generated.
182# (See cmd_cc_o_c + relevant part of rule_cc_o_c) 190# (See cmd_cc_o_c + relevant part of rule_cc_o_c)
@@ -272,14 +280,14 @@ define rule_cc_o_c
272 $(call echo-cmd,checksrc) $(cmd_checksrc) \ 280 $(call echo-cmd,checksrc) $(cmd_checksrc) \
273 $(call cmd_and_fixdep,cc_o_c) \ 281 $(call cmd_and_fixdep,cc_o_c) \
274 $(cmd_modversions_c) \ 282 $(cmd_modversions_c) \
275 $(cmd_objtool) \ 283 $(call echo-cmd,objtool) $(cmd_objtool) \
276 $(call echo-cmd,record_mcount) $(cmd_record_mcount) 284 $(call echo-cmd,record_mcount) $(cmd_record_mcount)
277endef 285endef
278 286
279define rule_as_o_S 287define rule_as_o_S
280 $(call cmd_and_fixdep,as_o_S) \ 288 $(call cmd_and_fixdep,as_o_S) \
281 $(cmd_modversions_S) \ 289 $(cmd_modversions_S) \
282 $(cmd_objtool) 290 $(call echo-cmd,objtool) $(cmd_objtool)
283endef 291endef
284 292
285# List module undefined symbols (or empty line if not enabled) 293# List module undefined symbols (or empty line if not enabled)
diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
index a1be75d0a5fd..34614a48b717 100644
--- a/scripts/Makefile.dtbinst
+++ b/scripts/Makefile.dtbinst
@@ -20,12 +20,6 @@ include include/config/auto.conf
20include scripts/Kbuild.include 20include scripts/Kbuild.include
21include $(src)/Makefile 21include $(src)/Makefile
22 22
23PHONY += __dtbs_install_prep
24__dtbs_install_prep:
25ifeq ("$(dtbinst-root)", "$(obj)")
26 $(Q)mkdir -p $(INSTALL_DTBS_PATH)
27endif
28
29dtbinst-files := $(dtb-y) 23dtbinst-files := $(dtb-y)
30dtbinst-dirs := $(dts-dirs) 24dtbinst-dirs := $(dts-dirs)
31 25
@@ -35,8 +29,6 @@ quiet_cmd_dtb_install = INSTALL $<
35 29
36install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj)) 30install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
37 31
38$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
39
40$(dtbinst-files): %.dtb: $(obj)/%.dtb 32$(dtbinst-files): %.dtb: $(obj)/%.dtb
41 $(call cmd,dtb_install,$(install-dir)) 33 $(call cmd,dtb_install,$(install-dir))
42 34
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
index 7c321a603b07..fb3522fd8702 100644
--- a/scripts/Makefile.extrawarn
+++ b/scripts/Makefile.extrawarn
@@ -64,7 +64,6 @@ ifeq ($(cc-name),clang)
64KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides) 64KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides)
65KBUILD_CFLAGS += $(call cc-disable-warning, unused-value) 65KBUILD_CFLAGS += $(call cc-disable-warning, unused-value)
66KBUILD_CFLAGS += $(call cc-disable-warning, format) 66KBUILD_CFLAGS += $(call cc-disable-warning, format)
67KBUILD_CFLAGS += $(call cc-disable-warning, unknown-warning-option)
68KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare) 67KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare)
69KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length) 68KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length)
70KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized) 69KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized)
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index c9f975ab9840..6dc1eda13b8e 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -420,3 +420,34 @@ quiet_cmd_xzmisc = XZMISC $@
420cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ 420cmd_xzmisc = (cat $(filter-out FORCE,$^) | \
421 xz --check=crc32 --lzma2=dict=1MiB) > $@ || \ 421 xz --check=crc32 --lzma2=dict=1MiB) > $@ || \
422 (rm -f $@ ; false) 422 (rm -f $@ ; false)
423
424# ASM offsets
425# ---------------------------------------------------------------------------
426
427# Default sed regexp - multiline due to syntax constraints
428#
429# Use [:space:] because LLVM's integrated assembler inserts <tab> around
430# the .ascii directive whereas GCC keeps the <space> as-is.
431define sed-offsets
432 's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:; \
433 /^->/{s:->#\(.*\):/* \1 */:; \
434 s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
435 s:->::; p;}'
436endef
437
438# Use filechk to avoid rebuilds when a header changes, but the resulting file
439# does not
440define filechk_offsets
441 (set -e; \
442 echo "#ifndef $2"; \
443 echo "#define $2"; \
444 echo "/*"; \
445 echo " * DO NOT MODIFY."; \
446 echo " *"; \
447 echo " * This file was generated by Kbuild"; \
448 echo " */"; \
449 echo ""; \
450 sed -ne $(sed-offsets); \
451 echo ""; \
452 echo "#endif" )
453endef
diff --git a/scripts/genksyms/parse.tab.c_shipped b/scripts/genksyms/parse.tab.c_shipped
index 69148d30ca3f..d02258bafe7b 100644
--- a/scripts/genksyms/parse.tab.c_shipped
+++ b/scripts/genksyms/parse.tab.c_shipped
@@ -440,16 +440,16 @@ union yyalloc
440/* YYFINAL -- State number of the termination state. */ 440/* YYFINAL -- State number of the termination state. */
441#define YYFINAL 4 441#define YYFINAL 4
442/* YYLAST -- Last index in YYTABLE. */ 442/* YYLAST -- Last index in YYTABLE. */
443#define YYLAST 524 443#define YYLAST 522
444 444
445/* YYNTOKENS -- Number of terminals. */ 445/* YYNTOKENS -- Number of terminals. */
446#define YYNTOKENS 55 446#define YYNTOKENS 55
447/* YYNNTS -- Number of nonterminals. */ 447/* YYNNTS -- Number of nonterminals. */
448#define YYNNTS 49 448#define YYNNTS 49
449/* YYNRULES -- Number of rules. */ 449/* YYNRULES -- Number of rules. */
450#define YYNRULES 134 450#define YYNRULES 133
451/* YYNRULES -- Number of states. */ 451/* YYNRULES -- Number of states. */
452#define YYNSTATES 189 452#define YYNSTATES 187
453 453
454/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 454/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
455#define YYUNDEFTOK 2 455#define YYUNDEFTOK 2
@@ -506,13 +506,13 @@ static const yytype_uint16 yyprhs[] =
506 97, 101, 105, 109, 112, 115, 118, 120, 122, 124, 506 97, 101, 105, 109, 112, 115, 118, 120, 122, 124,
507 126, 128, 130, 132, 134, 136, 138, 140, 142, 145, 507 126, 128, 130, 132, 134, 136, 138, 140, 142, 145,
508 146, 148, 150, 153, 155, 157, 159, 161, 164, 166, 508 146, 148, 150, 153, 155, 157, 159, 161, 164, 166,
509 168, 170, 175, 180, 183, 187, 191, 194, 196, 198, 509 168, 170, 175, 180, 183, 187, 190, 192, 194, 196,
510 200, 205, 210, 213, 217, 221, 224, 226, 230, 231, 510 201, 206, 209, 213, 217, 220, 222, 226, 227, 229,
511 233, 235, 239, 242, 245, 247, 248, 250, 252, 257, 511 231, 235, 238, 241, 243, 244, 246, 248, 253, 258,
512 262, 265, 269, 273, 277, 278, 280, 283, 287, 291, 512 261, 265, 269, 273, 274, 276, 279, 283, 287, 288,
513 292, 294, 296, 299, 303, 306, 307, 309, 311, 315, 513 290, 292, 295, 299, 302, 303, 305, 307, 311, 314,
514 318, 321, 323, 326, 327, 330, 334, 339, 341, 345, 514 317, 319, 322, 323, 326, 330, 335, 337, 341, 343,
515 347, 351, 354, 355, 357 515 347, 350, 351, 353
516}; 516};
517 517
518/* YYRHS -- A `-1'-separated list of the rules' RHS. */ 518/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -536,25 +536,24 @@ static const yytype_int8 yyrhs[] =
536 74, 75, -1, 8, -1, 27, -1, 32, -1, 18, 536 74, 75, -1, 8, -1, 27, -1, 32, -1, 18,
537 -1, 72, 76, -1, 77, -1, 39, -1, 43, -1, 537 -1, 72, 76, -1, 77, -1, 39, -1, 43, -1,
538 77, 49, 80, 50, -1, 77, 49, 1, 50, -1, 538 77, 49, 80, 50, -1, 77, 49, 1, 50, -1,
539 77, 35, -1, 49, 76, 50, -1, 49, 1, 50, 539 77, 35, -1, 49, 76, 50, -1, 72, 78, -1,
540 -1, 72, 78, -1, 79, -1, 39, -1, 43, -1, 540 79, -1, 39, -1, 43, -1, 79, 49, 80, 50,
541 79, 49, 80, 50, -1, 79, 49, 1, 50, -1, 541 -1, 79, 49, 1, 50, -1, 79, 35, -1, 49,
542 79, 35, -1, 49, 78, 50, -1, 49, 1, 50, 542 78, 50, -1, 49, 1, 50, -1, 81, 38, -1,
543 -1, 81, 38, -1, 81, -1, 82, 48, 38, -1, 543 81, -1, 82, 48, 38, -1, -1, 82, -1, 83,
544 -1, 82, -1, 83, -1, 82, 48, 83, -1, 67, 544 -1, 82, 48, 83, -1, 67, 84, -1, 72, 84,
545 84, -1, 72, 84, -1, 85, -1, -1, 39, -1, 545 -1, 85, -1, -1, 39, -1, 43, -1, 85, 49,
546 43, -1, 85, 49, 80, 50, -1, 85, 49, 1, 546 80, 50, -1, 85, 49, 1, 50, -1, 85, 35,
547 50, -1, 85, 35, -1, 49, 84, 50, -1, 49, 547 -1, 49, 84, 50, -1, 49, 1, 50, -1, 66,
548 1, 50, -1, 66, 76, 34, -1, -1, 88, -1, 548 76, 34, -1, -1, 88, -1, 52, 36, -1, 53,
549 52, 36, -1, 53, 90, 47, -1, 53, 1, 47, 549 90, 47, -1, 53, 1, 47, -1, -1, 91, -1,
550 -1, -1, 91, -1, 92, -1, 91, 92, -1, 66, 550 92, -1, 91, 92, -1, 66, 93, 46, -1, 1,
551 93, 46, -1, 1, 46, -1, -1, 94, -1, 95, 551 46, -1, -1, 94, -1, 95, -1, 94, 48, 95,
552 -1, 94, 48, 95, -1, 78, 97, -1, 39, 96, 552 -1, 78, 97, -1, 39, 96, -1, 96, -1, 54,
553 -1, 96, -1, 54, 36, -1, -1, 97, 32, -1, 553 36, -1, -1, 97, 32, -1, 53, 99, 47, -1,
554 53, 99, 47, -1, 53, 99, 48, 47, -1, 100, 554 53, 99, 48, 47, -1, 100, -1, 99, 48, 100,
555 -1, 99, 48, 100, -1, 39, -1, 39, 52, 36, 555 -1, 39, -1, 39, 52, 36, -1, 31, 46, -1,
556 -1, 31, 46, -1, -1, 31, -1, 30, 49, 39, 556 -1, 31, -1, 30, 49, 39, 50, 46, -1
557 50, 46, -1
558}; 557};
559 558
560/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 559/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -567,13 +566,13 @@ static const yytype_uint16 yyrline[] =
567 238, 240, 242, 247, 250, 251, 255, 256, 257, 258, 566 238, 240, 242, 247, 250, 251, 255, 256, 257, 258,
568 259, 260, 261, 262, 263, 264, 265, 266, 270, 275, 567 259, 260, 261, 262, 263, 264, 265, 266, 270, 275,
569 276, 280, 281, 285, 285, 285, 286, 294, 295, 299, 568 276, 280, 281, 285, 285, 285, 286, 294, 295, 299,
570 308, 317, 319, 321, 323, 325, 332, 333, 337, 338, 569 308, 317, 319, 321, 323, 330, 331, 335, 336, 337,
571 339, 341, 343, 345, 347, 352, 353, 354, 358, 359, 570 339, 341, 343, 345, 350, 351, 352, 356, 357, 361,
572 363, 364, 369, 374, 376, 380, 381, 389, 393, 395, 571 362, 367, 372, 374, 378, 379, 387, 391, 393, 395,
573 397, 399, 401, 406, 415, 416, 421, 426, 427, 431, 572 397, 399, 404, 413, 414, 419, 424, 425, 429, 430,
574 432, 436, 437, 441, 443, 448, 449, 453, 454, 458, 573 434, 435, 439, 441, 446, 447, 451, 452, 456, 457,
575 459, 460, 464, 468, 469, 473, 474, 478, 479, 482, 574 458, 462, 466, 467, 471, 472, 476, 477, 480, 485,
576 487, 495, 499, 500, 504 575 493, 497, 498, 502
577}; 576};
578#endif 577#endif
579 578
@@ -636,13 +635,13 @@ static const yytype_uint8 yyr1[] =
636 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 635 70, 70, 70, 70, 70, 70, 71, 71, 71, 71,
637 71, 71, 71, 71, 71, 71, 71, 71, 72, 73, 636 71, 71, 71, 71, 71, 71, 71, 71, 72, 73,
638 73, 74, 74, 75, 75, 75, 75, 76, 76, 77, 637 73, 74, 74, 75, 75, 75, 75, 76, 76, 77,
639 77, 77, 77, 77, 77, 77, 78, 78, 79, 79, 638 77, 77, 77, 77, 77, 78, 78, 79, 79, 79,
640 79, 79, 79, 79, 79, 80, 80, 80, 81, 81, 639 79, 79, 79, 79, 80, 80, 80, 81, 81, 82,
641 82, 82, 83, 84, 84, 85, 85, 85, 85, 85, 640 82, 83, 84, 84, 85, 85, 85, 85, 85, 85,
642 85, 85, 85, 86, 87, 87, 88, 89, 89, 90, 641 85, 85, 86, 87, 87, 88, 89, 89, 90, 90,
643 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 642 91, 91, 92, 92, 93, 93, 94, 94, 95, 95,
644 95, 95, 96, 97, 97, 98, 98, 99, 99, 100, 643 95, 96, 97, 97, 98, 98, 99, 99, 100, 100,
645 100, 101, 102, 102, 103 644 101, 102, 102, 103
646}; 645};
647 646
648/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 647/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -655,13 +654,13 @@ static const yytype_uint8 yyr2[] =
655 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 654 3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
656 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 655 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
657 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 656 1, 1, 2, 1, 1, 1, 1, 2, 1, 1,
658 1, 4, 4, 2, 3, 3, 2, 1, 1, 1, 657 1, 4, 4, 2, 3, 2, 1, 1, 1, 4,
659 4, 4, 2, 3, 3, 2, 1, 3, 0, 1, 658 4, 2, 3, 3, 2, 1, 3, 0, 1, 1,
660 1, 3, 2, 2, 1, 0, 1, 1, 4, 4, 659 3, 2, 2, 1, 0, 1, 1, 4, 4, 2,
661 2, 3, 3, 3, 0, 1, 2, 3, 3, 0, 660 3, 3, 3, 0, 1, 2, 3, 3, 0, 1,
662 1, 1, 2, 3, 2, 0, 1, 1, 3, 2, 661 1, 2, 3, 2, 0, 1, 1, 3, 2, 2,
663 2, 1, 2, 0, 2, 3, 4, 1, 3, 1, 662 1, 2, 0, 2, 3, 4, 1, 3, 1, 3,
664 3, 2, 0, 1, 5 663 2, 0, 1, 5
665}; 664};
666 665
667/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 666/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -675,189 +674,189 @@ static const yytype_uint8 yydefact[] =
675 0, 56, 0, 0, 65, 36, 57, 5, 10, 17, 674 0, 56, 0, 0, 65, 36, 57, 5, 10, 17,
676 23, 24, 26, 27, 33, 34, 11, 12, 13, 14, 675 23, 24, 26, 27, 33, 34, 11, 12, 13, 14,
677 15, 39, 0, 43, 6, 37, 0, 44, 22, 38, 676 15, 39, 0, 43, 6, 37, 0, 44, 22, 38,
678 45, 0, 0, 131, 69, 70, 0, 59, 0, 18, 677 45, 0, 0, 130, 69, 70, 0, 59, 0, 18,
679 19, 0, 132, 68, 25, 42, 129, 0, 127, 22, 678 19, 0, 131, 68, 25, 42, 128, 0, 126, 22,
680 40, 0, 115, 0, 0, 111, 9, 17, 41, 95, 679 40, 0, 114, 0, 0, 110, 9, 17, 41, 94,
681 0, 0, 0, 0, 58, 60, 61, 16, 0, 67, 680 0, 0, 0, 58, 60, 61, 16, 0, 67, 132,
682 133, 103, 123, 73, 0, 0, 125, 0, 7, 114, 681 102, 122, 73, 0, 0, 124, 0, 7, 113, 107,
683 108, 78, 79, 0, 0, 0, 123, 77, 0, 116, 682 77, 78, 0, 0, 0, 122, 76, 0, 115, 116,
684 117, 121, 107, 0, 112, 132, 96, 57, 0, 95, 683 120, 106, 0, 111, 131, 95, 57, 0, 94, 91,
685 92, 94, 35, 0, 75, 74, 62, 20, 104, 0, 684 93, 35, 0, 74, 62, 20, 103, 0, 0, 85,
686 0, 86, 89, 90, 130, 126, 128, 120, 0, 78, 685 88, 89, 129, 125, 127, 119, 0, 77, 0, 121,
687 0, 122, 76, 119, 82, 0, 113, 0, 0, 97, 686 75, 118, 81, 0, 112, 0, 0, 96, 0, 92,
688 0, 93, 100, 0, 134, 124, 0, 21, 105, 72, 687 99, 0, 133, 123, 0, 21, 104, 72, 71, 84,
689 71, 85, 0, 84, 83, 0, 0, 118, 102, 101, 688 0, 83, 82, 0, 0, 117, 101, 100, 0, 0,
690 0, 0, 106, 87, 91, 81, 80, 99, 98 689 105, 86, 90, 80, 79, 98, 97
691}; 690};
692 691
693/* YYDEFGOTO[NTERM-NUM]. */ 692/* YYDEFGOTO[NTERM-NUM]. */
694static const yytype_int16 yydefgoto[] = 693static const yytype_int16 yydefgoto[] =
695{ 694{
696 -1, 1, 2, 3, 37, 79, 58, 38, 68, 69, 695 -1, 1, 2, 3, 37, 79, 58, 38, 68, 69,
697 70, 82, 40, 41, 42, 43, 44, 71, 94, 95, 696 70, 82, 40, 41, 42, 43, 44, 71, 93, 94,
698 45, 125, 73, 116, 117, 140, 141, 142, 143, 130, 697 45, 124, 73, 115, 116, 138, 139, 140, 141, 129,
699 131, 46, 167, 168, 57, 83, 84, 85, 118, 119, 698 130, 46, 165, 166, 57, 83, 84, 85, 117, 118,
700 120, 121, 138, 53, 77, 78, 47, 102, 48 699 119, 120, 136, 53, 77, 78, 47, 101, 48
701}; 700};
702 701
703/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 702/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
704 STATE-NUM. */ 703 STATE-NUM. */
705#define YYPACT_NINF -111 704#define YYPACT_NINF -94
706static const yytype_int16 yypact[] = 705static const yytype_int16 yypact[] =
707{ 706{
708 -111, 13, -111, 210, -111, -111, 28, -111, -111, -111, 707 -94, 15, -94, 208, -94, -94, 34, -94, -94, -94,
709 -111, -111, -27, -111, 44, -111, -111, -111, -111, -111, 708 -94, -94, -27, -94, -5, -94, -94, -94, -94, -94,
710 -111, -111, -111, -111, -24, -111, -20, -111, -111, -111, 709 -94, -94, -94, -94, -25, -94, -16, -94, -94, -94,
711 31, -111, 32, 42, -111, -111, -111, -111, -111, 34, 710 -4, -94, 19, -24, -94, -94, -94, -94, -94, 24,
712 481, -111, -111, -111, -111, -111, -111, -111, -111, -111, 711 479, -94, -94, -94, -94, -94, -94, -94, -94, -94,
713 -111, 51, 56, -111, -111, 52, 108, -111, 481, 52, 712 -94, 29, 48, -94, -94, 37, 106, -94, 479, 37,
714 -111, 481, 58, -111, -111, -111, 19, 0, 54, 55, 713 -94, 479, 54, -94, -94, -94, 24, -2, 49, 53,
715 -111, 34, 30, -18, -111, -111, 68, -25, -111, 481, 714 -94, 24, -14, -11, -94, -94, 47, 38, -94, 479,
716 -111, 45, 33, 59, 159, -111, -111, 34, -111, 395, 715 -94, 51, 23, 55, 157, -94, -94, 24, -94, 393,
717 57, 60, 81, 88, -111, 0, -111, -111, 34, -111, 716 56, 58, 68, -94, -2, -94, -94, 24, -94, -94,
718 -111, -111, -111, -111, 257, 72, -111, -23, -111, -111, 717 -94, -94, -94, 255, 67, -94, 5, -94, -94, -94,
719 -111, 85, -111, 20, 106, 47, -111, -10, 97, 96, 718 50, -94, 7, 69, 40, -94, -8, 83, 88, -94,
720 -111, -111, -111, 99, -111, 115, -111, -111, 5, 50, 719 -94, -94, 91, -94, 109, -94, -94, 4, 45, -94,
721 -111, 11, -111, 102, -111, -111, -111, -111, -22, 100, 720 16, -94, 95, -94, -94, -94, -23, 92, 93, 108,
722 103, 111, 104, -111, -111, -111, -111, -111, 113, -111, 721 96, -94, -94, -94, -94, -94, 97, -94, 98, -94,
723 121, -111, -111, 124, -111, 303, -111, 33, 132, -111, 722 -94, 118, -94, 301, -94, 23, 101, -94, 104, -94,
724 139, -111, -111, 349, -111, -111, 122, -111, -111, -111, 723 -94, 347, -94, -94, 120, -94, -94, -94, -94, -94,
725 -111, -111, 442, -111, -111, 140, 143, -111, -111, -111, 724 440, -94, -94, 111, 119, -94, -94, -94, 130, 137,
726 144, 145, -111, -111, -111, -111, -111, -111, -111 725 -94, -94, -94, -94, -94, -94, -94
727}; 726};
728 727
729/* YYPGOTO[NTERM-NUM]. */ 728/* YYPGOTO[NTERM-NUM]. */
730static const yytype_int16 yypgoto[] = 729static const yytype_int16 yypgoto[] =
731{ 730{
732 -111, -111, 160, -111, -111, -111, -111, -51, -111, -111, 731 -94, -94, 158, -94, -94, -94, -94, -45, -94, -94,
733 98, -1, -61, -37, -111, -111, -111, -78, -111, -111, 732 94, -1, -61, -29, -94, -94, -94, -79, -94, -94,
734 -53, -30, -111, -66, -111, -110, -111, -111, -60, -63, 733 -63, -7, -94, -93, -94, -92, -94, -94, -60, -57,
735 -111, -111, -111, -111, -21, -111, -111, 116, -111, -111, 734 -94, -94, -94, -94, -19, -94, -94, 110, -94, -94,
736 40, 90, 83, 152, -111, 105, -111, -111, -111 735 33, 82, 78, 144, -94, 99, -94, -94, -94
737}; 736};
738 737
739/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 738/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
740 positive, shift that token. If negative, reduce the rule which 739 positive, shift that token. If negative, reduce the rule which
741 number is the opposite. If YYTABLE_NINF, syntax error. */ 740 number is the opposite. If YYTABLE_NINF, syntax error. */
742#define YYTABLE_NINF -111 741#define YYTABLE_NINF -110
743static const yytype_int16 yytable[] = 742static const yytype_int16 yytable[] =
744{ 743{
745 89, 90, 39, 74, 115, 60, 158, 86, 10, 72, 744 89, 90, 39, 114, 95, 156, 10, 60, 146, 163,
746 165, 129, 51, 4, 96, 55, 76, 103, 20, 59, 745 128, 74, 51, 86, 55, 4, 20, 99, 54, 148,
747 92, 148, 106, 107, 145, 154, 52, 29, 108, 56, 746 100, 150, 63, 59, 102, 29, 52, 152, 56, 164,
748 166, 104, 34, 56, 80, 115, 93, 115, 88, 155, 747 34, 134, 72, 114, 107, 114, 80, 56, 103, -94,
749 -95, 99, 136, 89, 126, 176, 162, 150, 159, 152, 748 88, 153, 89, 125, 76, 61, 147, 157, 128, 128,
750 129, 129, 74, 181, 128, -95, 67, 87, 64, 149, 749 111, 160, 143, 127, -94, 67, 112, 87, 67, 92,
751 163, 100, 65, 112, 101, 160, 161, 54, 66, 113, 750 74, 174, 110, 64, 98, 161, 111, 65, 62, 179,
752 67, 67, 111, 64, 49, 50, 112, 65, 87, 115, 751 158, 159, 112, 66, 67, 67, 114, 113, 87, 147,
753 61, 62, 113, 66, 67, 67, 149, 114, 63, 126, 752 49, 50, 52, 111, 125, 105, 106, 76, 157, 112,
754 112, 109, 110, 159, 89, 76, 113, 91, 67, 128, 753 56, 67, 89, 91, 127, 96, 67, 108, 109, 104,
755 97, 67, 89, 98, 52, 56, 122, 132, 144, 81, 754 89, 97, 121, 142, 113, 149, 131, 81, 132, 89,
756 133, 89, 184, 7, 8, 9, 10, 11, 12, 13, 755 182, 7, 8, 9, 10, 11, 12, 13, 133, 15,
757 105, 15, 16, 17, 18, 19, 20, 21, 22, 23, 756 16, 17, 18, 19, 20, 21, 22, 23, 24, 154,
758 24, 134, 26, 27, 28, 29, 30, 31, 135, 114, 757 26, 27, 28, 29, 30, 31, 155, 108, 34, 35,
759 34, 35, 151, 156, 157, 109, 100, -22, 164, 171, 758 99, 162, 167, 168, 170, -22, 169, 171, 172, 36,
760 169, 36, 172, 170, -22, -109, 165, -22, 182, -22, 759 163, 176, -22, -108, 177, -22, 180, -22, 122, 5,
761 123, 5, -22, 173, 7, 8, 9, 10, 11, 12, 760 -22, 183, 7, 8, 9, 10, 11, 12, 13, 184,
762 13, 174, 15, 16, 17, 18, 19, 20, 21, 22, 761 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
763 23, 24, 178, 26, 27, 28, 29, 30, 31, 179, 762 185, 26, 27, 28, 29, 30, 31, 186, 175, 34,
764 185, 34, 35, 186, 187, 188, 137, 177, -22, 153, 763 35, 135, 145, 151, 123, 75, -22, 0, 0, 0,
765 124, 147, 36, 75, 0, -22, -110, 0, -22, 0, 764 36, 0, 0, -22, -109, 144, -22, 0, -22, 6,
766 -22, 6, 146, -22, 0, 7, 8, 9, 10, 11, 765 0, -22, 0, 7, 8, 9, 10, 11, 12, 13,
767 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 766 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
768 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 767 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
769 32, 33, 34, 35, 0, 0, 0, 0, 0, -22, 768 34, 35, 0, 0, 0, 0, 0, -22, 0, 0,
770 0, 0, 0, 36, 0, 0, -22, 0, 139, -22, 769 0, 36, 0, 0, -22, 0, 137, -22, 0, -22,
771 0, -22, 7, 8, 9, 10, 11, 12, 13, 0, 770 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
771 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
772 27, 28, 29, 30, 31, 0, 0, 34, 35, 0,
773 0, 0, 0, -87, 0, 0, 0, 0, 36, 0,
774 0, 0, 173, 0, 0, -87, 7, 8, 9, 10,
775 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
776 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
777 31, 0, 0, 34, 35, 0, 0, 0, 0, -87,
778 0, 0, 0, 0, 36, 0, 0, 0, 178, 0,
779 0, -87, 7, 8, 9, 10, 11, 12, 13, 0,
772 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 780 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
773 0, 26, 27, 28, 29, 30, 31, 0, 0, 34, 781 0, 26, 27, 28, 29, 30, 31, 0, 0, 34,
774 35, 0, 0, 0, 0, -88, 0, 0, 0, 0, 782 35, 0, 0, 0, 0, -87, 0, 0, 0, 0,
775 36, 0, 0, 0, 175, 0, 0, -88, 7, 8, 783 36, 0, 0, 0, 0, 0, 0, -87, 7, 8,
776 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 784 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
777 19, 20, 21, 22, 23, 24, 0, 26, 27, 28, 785 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
778 29, 30, 31, 0, 0, 34, 35, 0, 0, 0, 786 29, 30, 31, 0, 0, 34, 35, 0, 0, 0,
779 0, -88, 0, 0, 0, 0, 36, 0, 0, 0, 787 0, 0, 125, 0, 0, 0, 126, 0, 0, 0,
780 180, 0, 0, -88, 7, 8, 9, 10, 11, 12, 788 0, 0, 127, 0, 67, 7, 8, 9, 10, 11,
789 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
790 22, 23, 24, 0, 26, 27, 28, 29, 30, 31,
791 0, 0, 34, 35, 0, 0, 0, 0, 181, 0,
792 0, 0, 0, 36, 7, 8, 9, 10, 11, 12,
781 13, 0, 15, 16, 17, 18, 19, 20, 21, 22, 793 13, 0, 15, 16, 17, 18, 19, 20, 21, 22,
782 23, 24, 0, 26, 27, 28, 29, 30, 31, 0, 794 23, 24, 0, 26, 27, 28, 29, 30, 31, 0,
783 0, 34, 35, 0, 0, 0, 0, -88, 0, 0, 795 0, 34, 35, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 36, 0, 0, 0, 0, 0, 0, -88, 796 0, 0, 36
785 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
786 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
787 27, 28, 29, 30, 31, 0, 0, 34, 35, 0,
788 0, 0, 0, 0, 126, 0, 0, 0, 127, 0,
789 0, 0, 0, 0, 128, 0, 67, 7, 8, 9,
790 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
791 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
792 30, 31, 0, 0, 34, 35, 0, 0, 0, 0,
793 183, 0, 0, 0, 0, 36, 7, 8, 9, 10,
794 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
795 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
796 31, 0, 0, 34, 35, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 36
798}; 797};
799 798
800#define yypact_value_is_default(Yystate) \ 799#define yypact_value_is_default(Yystate) \
801 (!!((Yystate) == (-111))) 800 (!!((Yystate) == (-94)))
802 801
803#define yytable_value_is_error(Yytable_value) \ 802#define yytable_value_is_error(Yytable_value) \
804 YYID (0) 803 YYID (0)
805 804
806static const yytype_int16 yycheck[] = 805static const yytype_int16 yycheck[] =
807{ 806{
808 61, 61, 3, 40, 82, 26, 1, 58, 8, 39, 807 61, 61, 3, 82, 67, 1, 8, 26, 1, 32,
809 32, 89, 39, 0, 67, 39, 39, 35, 18, 39, 808 89, 40, 39, 58, 39, 0, 18, 31, 23, 112,
810 1, 1, 47, 48, 47, 35, 53, 27, 79, 53, 809 34, 114, 46, 39, 35, 27, 53, 35, 53, 52,
811 52, 49, 32, 53, 55, 113, 66, 115, 59, 49, 810 32, 94, 39, 112, 79, 114, 55, 53, 49, 35,
812 35, 71, 95, 104, 39, 155, 35, 113, 43, 115, 811 59, 49, 103, 39, 39, 49, 39, 43, 127, 128,
813 128, 129, 89, 163, 49, 50, 51, 58, 39, 39, 812 43, 35, 47, 49, 50, 51, 49, 58, 51, 66,
814 49, 31, 43, 43, 34, 128, 129, 23, 49, 49, 813 89, 153, 39, 39, 71, 49, 43, 43, 49, 161,
815 51, 51, 39, 39, 46, 47, 43, 43, 79, 157, 814 127, 128, 49, 49, 51, 51, 155, 54, 79, 39,
816 49, 49, 49, 49, 51, 51, 39, 54, 46, 39, 815 46, 47, 53, 43, 39, 47, 48, 39, 43, 49,
817 43, 46, 47, 43, 155, 39, 49, 39, 51, 49, 816 53, 51, 153, 39, 49, 46, 51, 46, 47, 52,
818 46, 51, 163, 48, 53, 53, 47, 50, 36, 1, 817 161, 48, 47, 36, 54, 36, 50, 1, 50, 170,
819 50, 172, 172, 5, 6, 7, 8, 9, 10, 11, 818 170, 5, 6, 7, 8, 9, 10, 11, 50, 13,
820 52, 13, 14, 15, 16, 17, 18, 19, 20, 21, 819 14, 15, 16, 17, 18, 19, 20, 21, 22, 46,
821 22, 50, 24, 25, 26, 27, 28, 29, 50, 54, 820 24, 25, 26, 27, 28, 29, 48, 46, 32, 33,
822 32, 33, 36, 46, 48, 46, 31, 39, 46, 38, 821 31, 46, 50, 50, 48, 39, 38, 50, 50, 43,
823 50, 43, 48, 50, 46, 47, 32, 49, 36, 51, 822 32, 50, 46, 47, 50, 49, 36, 51, 1, 1,
824 1, 1, 54, 50, 5, 6, 7, 8, 9, 10, 823 54, 50, 5, 6, 7, 8, 9, 10, 11, 50,
825 11, 50, 13, 14, 15, 16, 17, 18, 19, 20, 824 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
826 21, 22, 50, 24, 25, 26, 27, 28, 29, 50, 825 50, 24, 25, 26, 27, 28, 29, 50, 155, 32,
827 50, 32, 33, 50, 50, 50, 98, 157, 39, 116, 826 33, 97, 110, 115, 84, 51, 39, -1, -1, -1,
828 84, 111, 43, 51, -1, 46, 47, -1, 49, -1, 827 43, -1, -1, 46, 47, 106, 49, -1, 51, 1,
829 51, 1, 107, 54, -1, 5, 6, 7, 8, 9, 828 -1, 54, -1, 5, 6, 7, 8, 9, 10, 11,
830 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 829 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
831 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 830 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
832 30, 31, 32, 33, -1, -1, -1, -1, -1, 39, 831 32, 33, -1, -1, -1, -1, -1, 39, -1, -1,
833 -1, -1, -1, 43, -1, -1, 46, -1, 1, 49, 832 -1, 43, -1, -1, 46, -1, 1, 49, -1, 51,
834 -1, 51, 5, 6, 7, 8, 9, 10, 11, -1, 833 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
834 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
835 25, 26, 27, 28, 29, -1, -1, 32, 33, -1,
836 -1, -1, -1, 38, -1, -1, -1, -1, 43, -1,
837 -1, -1, 1, -1, -1, 50, 5, 6, 7, 8,
838 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
839 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
840 29, -1, -1, 32, 33, -1, -1, -1, -1, 38,
841 -1, -1, -1, -1, 43, -1, -1, -1, 1, -1,
842 -1, 50, 5, 6, 7, 8, 9, 10, 11, -1,
835 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 843 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
836 -1, 24, 25, 26, 27, 28, 29, -1, -1, 32, 844 -1, 24, 25, 26, 27, 28, 29, -1, -1, 32,
837 33, -1, -1, -1, -1, 38, -1, -1, -1, -1, 845 33, -1, -1, -1, -1, 38, -1, -1, -1, -1,
838 43, -1, -1, -1, 1, -1, -1, 50, 5, 6, 846 43, -1, -1, -1, -1, -1, -1, 50, 5, 6,
839 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 847 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
840 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, 848 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
841 27, 28, 29, -1, -1, 32, 33, -1, -1, -1, 849 27, 28, 29, -1, -1, 32, 33, -1, -1, -1,
842 -1, 38, -1, -1, -1, -1, 43, -1, -1, -1, 850 -1, -1, 39, -1, -1, -1, 43, -1, -1, -1,
843 1, -1, -1, 50, 5, 6, 7, 8, 9, 10, 851 -1, -1, 49, -1, 51, 5, 6, 7, 8, 9,
852 10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
853 20, 21, 22, -1, 24, 25, 26, 27, 28, 29,
854 -1, -1, 32, 33, -1, -1, -1, -1, 38, -1,
855 -1, -1, -1, 43, 5, 6, 7, 8, 9, 10,
844 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, 856 11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
845 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 857 21, 22, -1, 24, 25, 26, 27, 28, 29, -1,
846 -1, 32, 33, -1, -1, -1, -1, 38, -1, -1, 858 -1, 32, 33, -1, -1, -1, -1, -1, -1, -1,
847 -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, 859 -1, -1, 43
848 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
849 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
850 25, 26, 27, 28, 29, -1, -1, 32, 33, -1,
851 -1, -1, -1, -1, 39, -1, -1, -1, 43, -1,
852 -1, -1, -1, -1, 49, -1, 51, 5, 6, 7,
853 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
854 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
855 28, 29, -1, -1, 32, 33, -1, -1, -1, -1,
856 38, -1, -1, -1, -1, 43, 5, 6, 7, 8,
857 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
858 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
859 29, -1, -1, 32, 33, -1, -1, -1, -1, -1,
860 -1, -1, -1, -1, 43
861}; 860};
862 861
863/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 862/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -873,16 +872,16 @@ static const yytype_uint8 yystos[] =
873 89, 49, 49, 46, 39, 43, 49, 51, 63, 64, 872 89, 49, 49, 46, 39, 43, 49, 51, 63, 64,
874 65, 72, 76, 77, 68, 98, 39, 99, 100, 60, 873 65, 72, 76, 77, 68, 98, 39, 99, 100, 60,
875 89, 1, 66, 90, 91, 92, 62, 66, 89, 67, 874 89, 1, 66, 90, 91, 92, 62, 66, 89, 67,
876 83, 39, 1, 76, 73, 74, 75, 46, 48, 76, 875 83, 39, 76, 73, 74, 75, 46, 48, 76, 31,
877 31, 34, 102, 35, 49, 52, 47, 48, 62, 46, 876 34, 102, 35, 49, 52, 47, 48, 62, 46, 47,
878 47, 39, 43, 49, 54, 72, 78, 79, 93, 94, 877 39, 43, 49, 54, 72, 78, 79, 93, 94, 95,
879 95, 96, 47, 1, 92, 76, 39, 43, 49, 72, 878 96, 47, 1, 92, 76, 39, 43, 49, 72, 84,
880 84, 85, 50, 50, 50, 50, 75, 65, 97, 1, 879 85, 50, 50, 50, 75, 65, 97, 1, 80, 81,
881 80, 81, 82, 83, 36, 47, 100, 96, 1, 39, 880 82, 83, 36, 47, 100, 96, 1, 39, 78, 36,
882 78, 36, 78, 97, 35, 49, 46, 48, 1, 43, 881 78, 97, 35, 49, 46, 48, 1, 43, 84, 84,
883 84, 84, 35, 49, 46, 32, 52, 87, 88, 50, 882 35, 49, 46, 32, 52, 87, 88, 50, 50, 38,
884 50, 38, 48, 50, 50, 1, 80, 95, 50, 50, 883 48, 50, 50, 1, 80, 95, 50, 50, 1, 80,
885 1, 80, 36, 38, 83, 50, 50, 50, 50 884 36, 38, 83, 50, 50, 50, 50
886}; 885};
887 886
888#define yyerrok (yyerrstatus = 0) 887#define yyerrok (yyerrstatus = 0)
@@ -1928,12 +1927,12 @@ yyreduce:
1928 1927
1929 case 75: 1928 case 75:
1930 1929
1931 { (yyval) = (yyvsp[(3) - (3)]); } 1930 { (yyval) = (yyvsp[(2) - (2)]); }
1932 break; 1931 break;
1933 1932
1934 case 76: 1933 case 79:
1935 1934
1936 { (yyval) = (yyvsp[(2) - (2)]); } 1935 { (yyval) = (yyvsp[(4) - (4)]); }
1937 break; 1936 break;
1938 1937
1939 case 80: 1938 case 80:
@@ -1943,12 +1942,12 @@ yyreduce:
1943 1942
1944 case 81: 1943 case 81:
1945 1944
1946 { (yyval) = (yyvsp[(4) - (4)]); } 1945 { (yyval) = (yyvsp[(2) - (2)]); }
1947 break; 1946 break;
1948 1947
1949 case 82: 1948 case 82:
1950 1949
1951 { (yyval) = (yyvsp[(2) - (2)]); } 1950 { (yyval) = (yyvsp[(3) - (3)]); }
1952 break; 1951 break;
1953 1952
1954 case 83: 1953 case 83:
@@ -1958,45 +1957,40 @@ yyreduce:
1958 1957
1959 case 84: 1958 case 84:
1960 1959
1961 { (yyval) = (yyvsp[(3) - (3)]); }
1962 break;
1963
1964 case 85:
1965
1966 { (yyval) = (yyvsp[(2) - (2)]); } 1960 { (yyval) = (yyvsp[(2) - (2)]); }
1967 break; 1961 break;
1968 1962
1969 case 87: 1963 case 86:
1970 1964
1971 { (yyval) = (yyvsp[(3) - (3)]); } 1965 { (yyval) = (yyvsp[(3) - (3)]); }
1972 break; 1966 break;
1973 1967
1974 case 88: 1968 case 87:
1975 1969
1976 { (yyval) = NULL; } 1970 { (yyval) = NULL; }
1977 break; 1971 break;
1978 1972
1979 case 91: 1973 case 90:
1980 1974
1981 { (yyval) = (yyvsp[(3) - (3)]); } 1975 { (yyval) = (yyvsp[(3) - (3)]); }
1982 break; 1976 break;
1983 1977
1984 case 92: 1978 case 91:
1985 1979
1986 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); } 1980 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
1987 break; 1981 break;
1988 1982
1989 case 93: 1983 case 92:
1990 1984
1991 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); } 1985 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
1992 break; 1986 break;
1993 1987
1994 case 95: 1988 case 94:
1995 1989
1996 { (yyval) = NULL; } 1990 { (yyval) = NULL; }
1997 break; 1991 break;
1998 1992
1999 case 96: 1993 case 95:
2000 1994
2001 { /* For version 2 checksums, we don't want to remember 1995 { /* For version 2 checksums, we don't want to remember
2002 private parameter names. */ 1996 private parameter names. */
@@ -2005,39 +1999,39 @@ yyreduce:
2005 } 1999 }
2006 break; 2000 break;
2007 2001
2008 case 97: 2002 case 96:
2009 2003
2010 { remove_node((yyvsp[(1) - (1)])); 2004 { remove_node((yyvsp[(1) - (1)]));
2011 (yyval) = (yyvsp[(1) - (1)]); 2005 (yyval) = (yyvsp[(1) - (1)]);
2012 } 2006 }
2013 break; 2007 break;
2014 2008
2015 case 98: 2009 case 97:
2016 2010
2017 { (yyval) = (yyvsp[(4) - (4)]); } 2011 { (yyval) = (yyvsp[(4) - (4)]); }
2018 break; 2012 break;
2019 2013
2020 case 99: 2014 case 98:
2021 2015
2022 { (yyval) = (yyvsp[(4) - (4)]); } 2016 { (yyval) = (yyvsp[(4) - (4)]); }
2023 break; 2017 break;
2024 2018
2025 case 100: 2019 case 99:
2026 2020
2027 { (yyval) = (yyvsp[(2) - (2)]); } 2021 { (yyval) = (yyvsp[(2) - (2)]); }
2028 break; 2022 break;
2029 2023
2030 case 101: 2024 case 100:
2031 2025
2032 { (yyval) = (yyvsp[(3) - (3)]); } 2026 { (yyval) = (yyvsp[(3) - (3)]); }
2033 break; 2027 break;
2034 2028
2035 case 102: 2029 case 101:
2036 2030
2037 { (yyval) = (yyvsp[(3) - (3)]); } 2031 { (yyval) = (yyvsp[(3) - (3)]); }
2038 break; 2032 break;
2039 2033
2040 case 103: 2034 case 102:
2041 2035
2042 { struct string_list *decl = *(yyvsp[(2) - (3)]); 2036 { struct string_list *decl = *(yyvsp[(2) - (3)]);
2043 *(yyvsp[(2) - (3)]) = NULL; 2037 *(yyvsp[(2) - (3)]) = NULL;
@@ -2046,87 +2040,87 @@ yyreduce:
2046 } 2040 }
2047 break; 2041 break;
2048 2042
2049 case 104: 2043 case 103:
2050 2044
2051 { (yyval) = NULL; } 2045 { (yyval) = NULL; }
2052 break; 2046 break;
2053 2047
2054 case 106: 2048 case 105:
2055 2049
2056 { remove_list((yyvsp[(2) - (2)]), &(*(yyvsp[(1) - (2)]))->next); (yyval) = (yyvsp[(2) - (2)]); } 2050 { remove_list((yyvsp[(2) - (2)]), &(*(yyvsp[(1) - (2)]))->next); (yyval) = (yyvsp[(2) - (2)]); }
2057 break; 2051 break;
2058 2052
2059 case 107: 2053 case 106:
2060 2054
2061 { (yyval) = (yyvsp[(3) - (3)]); } 2055 { (yyval) = (yyvsp[(3) - (3)]); }
2062 break; 2056 break;
2063 2057
2064 case 108: 2058 case 107:
2065 2059
2066 { (yyval) = (yyvsp[(3) - (3)]); } 2060 { (yyval) = (yyvsp[(3) - (3)]); }
2067 break; 2061 break;
2068 2062
2069 case 109: 2063 case 108:
2070 2064
2071 { (yyval) = NULL; } 2065 { (yyval) = NULL; }
2072 break; 2066 break;
2073 2067
2074 case 112: 2068 case 111:
2075 2069
2076 { (yyval) = (yyvsp[(2) - (2)]); } 2070 { (yyval) = (yyvsp[(2) - (2)]); }
2077 break; 2071 break;
2078 2072
2079 case 113: 2073 case 112:
2080 2074
2081 { (yyval) = (yyvsp[(3) - (3)]); } 2075 { (yyval) = (yyvsp[(3) - (3)]); }
2082 break; 2076 break;
2083 2077
2084 case 114: 2078 case 113:
2085 2079
2086 { (yyval) = (yyvsp[(2) - (2)]); } 2080 { (yyval) = (yyvsp[(2) - (2)]); }
2087 break; 2081 break;
2088 2082
2089 case 115: 2083 case 114:
2090 2084
2091 { (yyval) = NULL; } 2085 { (yyval) = NULL; }
2092 break; 2086 break;
2093 2087
2094 case 118: 2088 case 117:
2095 2089
2096 { (yyval) = (yyvsp[(3) - (3)]); } 2090 { (yyval) = (yyvsp[(3) - (3)]); }
2097 break; 2091 break;
2098 2092
2099 case 119: 2093 case 118:
2100 2094
2101 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); } 2095 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
2102 break; 2096 break;
2103 2097
2104 case 120: 2098 case 119:
2105 2099
2106 { (yyval) = (yyvsp[(2) - (2)]); } 2100 { (yyval) = (yyvsp[(2) - (2)]); }
2107 break; 2101 break;
2108 2102
2109 case 122: 2103 case 121:
2110 2104
2111 { (yyval) = (yyvsp[(2) - (2)]); } 2105 { (yyval) = (yyvsp[(2) - (2)]); }
2112 break; 2106 break;
2113 2107
2114 case 123: 2108 case 122:
2115 2109
2116 { (yyval) = NULL; } 2110 { (yyval) = NULL; }
2117 break; 2111 break;
2118 2112
2119 case 125: 2113 case 124:
2120 2114
2121 { (yyval) = (yyvsp[(3) - (3)]); } 2115 { (yyval) = (yyvsp[(3) - (3)]); }
2122 break; 2116 break;
2123 2117
2124 case 126: 2118 case 125:
2125 2119
2126 { (yyval) = (yyvsp[(4) - (4)]); } 2120 { (yyval) = (yyvsp[(4) - (4)]); }
2127 break; 2121 break;
2128 2122
2129 case 129: 2123 case 128:
2130 2124
2131 { 2125 {
2132 const char *name = strdup((*(yyvsp[(1) - (1)]))->string); 2126 const char *name = strdup((*(yyvsp[(1) - (1)]))->string);
@@ -2134,7 +2128,7 @@ yyreduce:
2134 } 2128 }
2135 break; 2129 break;
2136 2130
2137 case 130: 2131 case 129:
2138 2132
2139 { 2133 {
2140 const char *name = strdup((*(yyvsp[(1) - (3)]))->string); 2134 const char *name = strdup((*(yyvsp[(1) - (3)]))->string);
@@ -2143,17 +2137,17 @@ yyreduce:
2143 } 2137 }
2144 break; 2138 break;
2145 2139
2146 case 131: 2140 case 130:
2147 2141
2148 { (yyval) = (yyvsp[(2) - (2)]); } 2142 { (yyval) = (yyvsp[(2) - (2)]); }
2149 break; 2143 break;
2150 2144
2151 case 132: 2145 case 131:
2152 2146
2153 { (yyval) = NULL; } 2147 { (yyval) = NULL; }
2154 break; 2148 break;
2155 2149
2156 case 134: 2150 case 133:
2157 2151
2158 { export_symbol((*(yyvsp[(3) - (5)]))->string); (yyval) = (yyvsp[(5) - (5)]); } 2152 { export_symbol((*(yyvsp[(3) - (5)]))->string); (yyval) = (yyvsp[(5) - (5)]); }
2159 break; 2153 break;
diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y
index 4fba255e54ae..00a6d7e54971 100644
--- a/scripts/genksyms/parse.y
+++ b/scripts/genksyms/parse.y
@@ -322,8 +322,6 @@ direct_declarator:
322 { $$ = $2; } 322 { $$ = $2; }
323 | '(' declarator ')' 323 | '(' declarator ')'
324 { $$ = $3; } 324 { $$ = $3; }
325 | '(' error ')'
326 { $$ = $3; }
327 ; 325 ;
328 326
329/* Nested declarators differ from regular declarators in that they do 327/* Nested declarators differ from regular declarators in that they do
diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile
index 19d9bcadc0cc..b497d9764dcf 100644
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -7,32 +7,8 @@ modpost-objs := modpost.o file2alias.o sumversion.o
7 7
8devicetable-offsets-file := devicetable-offsets.h 8devicetable-offsets-file := devicetable-offsets.h
9 9
10define sed-y 10$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE
11 "/^->/{s:->#\(.*\):/* \1 */:; \ 11 $(call filechk,offsets,__DEVICETABLE_OFFSETS_H__)
12 s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
13 s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
14 s:->::; p;}"
15endef
16
17quiet_cmd_offsets = GEN $@
18define cmd_offsets
19 (set -e; \
20 echo "#ifndef __DEVICETABLE_OFFSETS_H__"; \
21 echo "#define __DEVICETABLE_OFFSETS_H__"; \
22 echo "/*"; \
23 echo " * DO NOT MODIFY."; \
24 echo " *"; \
25 echo " * This file was generated by Kbuild"; \
26 echo " *"; \
27 echo " */"; \
28 echo ""; \
29 sed -ne $(sed-y) $<; \
30 echo ""; \
31 echo "#endif" ) > $@
32endef
33
34$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s
35 $(call if_changed,offsets)
36 12
37targets += $(devicetable-offsets-file) devicetable-offsets.s 13targets += $(devicetable-offsets-file) devicetable-offsets.s
38 14