diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-10 23:11:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-10 23:11:05 -0400 |
commit | 593043d35ddff8ab033546c2a89bb1d4080d03e1 (patch) | |
tree | 81284ecf3ce7dc79e18401d2b76c414556e7f2a1 | |
parent | 556d994a75790dce8a9c6b35b94cff1d526b2e32 (diff) | |
parent | f55813b4d8bfc9f35fda87bc1e21b7f26835fc5c (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-- | .gitignore | 1 | ||||
-rw-r--r-- | Kbuild | 25 | ||||
-rw-r--r-- | Makefile | 41 | ||||
-rw-r--r-- | arch/alpha/lib/Makefile | 11 | ||||
-rw-r--r-- | arch/frv/kernel/asm-offsets.c | 19 | ||||
-rw-r--r-- | arch/ia64/kernel/Makefile | 26 | ||||
-rw-r--r-- | arch/ia64/kernel/Makefile.gate | 2 | ||||
-rw-r--r-- | include/linux/kbuild.h | 6 | ||||
-rw-r--r-- | scripts/Kbuild.include | 6 | ||||
-rw-r--r-- | scripts/Makefile.build | 12 | ||||
-rw-r--r-- | scripts/Makefile.dtbinst | 8 | ||||
-rw-r--r-- | scripts/Makefile.extrawarn | 1 | ||||
-rw-r--r-- | scripts/Makefile.lib | 31 | ||||
-rw-r--r-- | scripts/genksyms/parse.tab.c_shipped | 474 | ||||
-rw-r--r-- | scripts/genksyms/parse.y | 2 | ||||
-rw-r--r-- | scripts/mod/Makefile | 28 |
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 | ||
36 | modules.builtin | 37 | modules.builtin |
37 | Module.symvers | 38 | Module.symvers |
38 | *.dwo | 39 | *.dwo |
@@ -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 | ||
11 | define sed-y | ||
12 | "/^->/{s:->#\(.*\):/* \1 */:; \ | ||
13 | s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \ | ||
14 | s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ | ||
15 | s:->::; p;}" | ||
16 | endef | ||
17 | |||
18 | # Use filechk to avoid rebuilds when a header changes, but the resulting file | ||
19 | # does not | ||
20 | define 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" ) | ||
33 | endef | ||
34 | |||
35 | ##### | 10 | ##### |
36 | # 1) Generate bounds.h | 11 | # 1) Generate bounds.h |
37 | 12 | ||
@@ -632,13 +632,9 @@ include arch/$(SRCARCH)/Makefile | |||
632 | KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) | 632 | KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) |
633 | KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) | 633 | KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) |
634 | 634 | ||
635 | ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION | ||
636 | KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,) | ||
637 | KBUILD_CFLAGS += $(call cc-option,-fdata-sections,) | ||
638 | endif | ||
639 | |||
640 | ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE | 635 | ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE |
641 | KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) | 636 | KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) |
637 | KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,) | ||
642 | else | 638 | else |
643 | ifdef CONFIG_PROFILE_ALL_BRANCHES | 639 | ifdef CONFIG_PROFILE_ALL_BRANCHES |
644 | KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) | 640 | KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) |
@@ -698,8 +694,16 @@ endif | |||
698 | KBUILD_CFLAGS += $(stackp-flag) | 694 | KBUILD_CFLAGS += $(stackp-flag) |
699 | 695 | ||
700 | ifeq ($(cc-name),clang) | 696 | ifeq ($(cc-name),clang) |
697 | ifneq ($(CROSS_COMPILE),) | ||
698 | CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%)) | ||
699 | GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..) | ||
700 | endif | ||
701 | ifneq ($(GCC_TOOLCHAIN),) | ||
702 | CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN) | ||
703 | endif | ||
704 | KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) | ||
705 | KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) | ||
701 | KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) | 706 | KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) |
702 | KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,) | ||
703 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable) | 707 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable) |
704 | KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) | 708 | KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) |
705 | KBUILD_CFLAGS += $(call cc-disable-warning, gnu) | 709 | KBUILD_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 |
711 | KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,) | 715 | KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,) |
712 | KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior) | 716 | KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior) |
717 | KBUILD_CFLAGS += $(call cc-option, -no-integrated-as) | ||
718 | KBUILD_AFLAGS += $(call cc-option, -no-integrated-as) | ||
713 | else | 719 | else |
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) |
717 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) | 723 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) |
718 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) | 724 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) |
719 | endif | 725 | endif |
@@ -773,6 +779,11 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH | |||
773 | KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) | 779 | KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) |
774 | endif | 780 | endif |
775 | 781 | ||
782 | ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION | ||
783 | KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,) | ||
784 | KBUILD_CFLAGS += $(call cc-option,-fdata-sections,) | ||
785 | endif | ||
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 |
777 | NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) | 788 | NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) |
778 | CHECKFLAGS += $(NOSTDINC_FLAGS) | 789 | CHECKFLAGS += $(NOSTDINC_FLAGS) |
@@ -801,6 +812,9 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=date-time) | |||
801 | # enforce correct pointer usage | 812 | # enforce correct pointer usage |
802 | KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types) | 813 | KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types) |
803 | 814 | ||
815 | # Require designated initializers for all marked structures | ||
816 | KBUILD_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 |
805 | KBUILD_ARFLAGS := $(call ar-option,D) | 819 | KBUILD_ARFLAGS := $(call ar-option,D) |
806 | 820 | ||
@@ -815,7 +829,7 @@ KBUILD_AFLAGS += $(ARCH_AFLAGS) $(KAFLAGS) | |||
815 | KBUILD_CFLAGS += $(ARCH_CFLAGS) $(KCFLAGS) | 829 | KBUILD_CFLAGS += $(ARCH_CFLAGS) $(KCFLAGS) |
816 | 830 | ||
817 | # Use --build-id when available. | 831 | # Use --build-id when available. |
818 | LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ | 832 | LDFLAGS_BUILD_ID := $(patsubst -Wl$(comma)%,%,\ |
819 | $(call cc-ldoption, -Wl$(comma)--build-id,)) | 833 | $(call cc-ldoption, -Wl$(comma)--build-id,)) |
820 | KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID) | 834 | KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID) |
821 | LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID) | 835 | LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID) |
@@ -1315,8 +1329,8 @@ PHONY += distclean | |||
1315 | distclean: mrproper | 1329 | distclean: 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 | |||
46 | AFLAGS___divlu.o = -DDIV -DINTSIZE | 46 | AFLAGS___divlu.o = -DDIV -DINTSIZE |
47 | AFLAGS___remlu.o = -DREM -DINTSIZE | 47 | AFLAGS___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 | ||
33 | void foo(void) | 22 | void 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. |
51 | include $(src)/Makefile.gate | 51 | include $(src)/Makefile.gate |
52 | 52 | ||
53 | # Calculate NR_IRQ = max(IA64_NATIVE_NR_IRQS, XEN_NR_IRQS, ...) based on config | ||
54 | define sed-y | ||
55 | "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}" | ||
56 | endef | ||
57 | quiet_cmd_nr_irqs = GEN $@ | ||
58 | define 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" ) > $@ | ||
72 | endef | ||
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 |
75 | arch/$(SRCARCH)/kernel/nr-irqs.s: arch/$(SRCARCH)/kernel/nr-irqs.c | 54 | arch/$(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 | ||
79 | include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s | 58 | include/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 | ||
7 | CPPFLAGS_gate.lds := -P -C -U$(ARCH) | 7 | CPPFLAGS_gate.lds := -P -C -U$(ARCH) |
8 | 8 | ||
9 | quiet_cmd_gate = GATE $@ | 9 | quiet_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 | ||
12 | GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1 \ | 12 | GATECFLAGS_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 | ||
118 | cc-option = $(call try-run,\ | 118 | cc-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) |
123 | cc-option-yn = $(call try-run,\ | 123 | cc-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) |
133 | cc-disable-warning = $(call try-run,\ | 133 | cc-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 | ||
182 | quiet_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) |
277 | endef | 285 | endef |
278 | 286 | ||
279 | define rule_as_o_S | 287 | define 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) |
283 | endef | 291 | endef |
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 | |||
20 | include scripts/Kbuild.include | 20 | include scripts/Kbuild.include |
21 | include $(src)/Makefile | 21 | include $(src)/Makefile |
22 | 22 | ||
23 | PHONY += __dtbs_install_prep | ||
24 | __dtbs_install_prep: | ||
25 | ifeq ("$(dtbinst-root)", "$(obj)") | ||
26 | $(Q)mkdir -p $(INSTALL_DTBS_PATH) | ||
27 | endif | ||
28 | |||
29 | dtbinst-files := $(dtb-y) | 23 | dtbinst-files := $(dtb-y) |
30 | dtbinst-dirs := $(dts-dirs) | 24 | dtbinst-dirs := $(dts-dirs) |
31 | 25 | ||
@@ -35,8 +29,6 @@ quiet_cmd_dtb_install = INSTALL $< | |||
35 | 29 | ||
36 | install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj)) | 30 | install-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) | |||
64 | KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides) | 64 | KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides) |
65 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-value) | 65 | KBUILD_CFLAGS += $(call cc-disable-warning, unused-value) |
66 | KBUILD_CFLAGS += $(call cc-disable-warning, format) | 66 | KBUILD_CFLAGS += $(call cc-disable-warning, format) |
67 | KBUILD_CFLAGS += $(call cc-disable-warning, unknown-warning-option) | ||
68 | KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare) | 67 | KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare) |
69 | KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length) | 68 | KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length) |
70 | KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized) | 69 | KBUILD_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 $@ | |||
420 | cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ | 420 | cmd_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. | ||
431 | define sed-offsets | ||
432 | 's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:; \ | ||
433 | /^->/{s:->#\(.*\):/* \1 */:; \ | ||
434 | s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \ | ||
435 | s:->::; p;}' | ||
436 | endef | ||
437 | |||
438 | # Use filechk to avoid rebuilds when a header changes, but the resulting file | ||
439 | # does not | ||
440 | define 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" ) | ||
453 | endef | ||
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]. */ |
694 | static const yytype_int16 yydefgoto[] = | 693 | static 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 |
706 | static const yytype_int16 yypact[] = | 705 | static 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]. */ |
730 | static const yytype_int16 yypgoto[] = | 729 | static 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 |
743 | static const yytype_int16 yytable[] = | 742 | static 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 | ||
806 | static const yytype_int16 yycheck[] = | 805 | static 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 | ||
8 | devicetable-offsets-file := devicetable-offsets.h | 8 | devicetable-offsets-file := devicetable-offsets.h |
9 | 9 | ||
10 | define 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;}" | ||
15 | endef | ||
16 | |||
17 | quiet_cmd_offsets = GEN $@ | ||
18 | define 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" ) > $@ | ||
32 | endef | ||
33 | |||
34 | $(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s | ||
35 | $(call if_changed,offsets) | ||
36 | 12 | ||
37 | targets += $(devicetable-offsets-file) devicetable-offsets.s | 13 | targets += $(devicetable-offsets-file) devicetable-offsets.s |
38 | 14 | ||