summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-05-11 03:11:05 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2017-05-11 03:11:05 (GMT)
commit593043d35ddff8ab033546c2a89bb1d4080d03e1 (patch)
tree81284ecf3ce7dc79e18401d2b76c414556e7f2a1
parent556d994a75790dce8a9c6b35b94cff1d526b2e32 (diff)
parentf55813b4d8bfc9f35fda87bc1e21b7f26835fc5c (diff)
downloadlinux-593043d35ddff8ab033546c2a89bb1d4080d03e1.tar.gz
linux-593043d35ddff8ab033546c2a89bb1d4080d03e1.tar.xz
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 c2ed4ec..0c39aa2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@
*.lzo
*.patch
*.gcno
+*.ll
modules.builtin
Module.symvers
*.dwo
diff --git a/Kbuild b/Kbuild
index 3d0ae15..94c7527 100644
--- a/Kbuild
+++ b/Kbuild
@@ -7,31 +7,6 @@
# 4) Check for missing system calls
# 5) Generate constants.py (may need bounds.h)
-# Default sed regexp - multiline due to syntax constraints
-define sed-y
- "/^->/{s:->#\(.*\):/* \1 */:; \
- s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
- s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
- s:->::; p;}"
-endef
-
-# Use filechk to avoid rebuilds when a header changes, but the resulting file
-# does not
-define filechk_offsets
- (set -e; \
- echo "#ifndef $2"; \
- echo "#define $2"; \
- echo "/*"; \
- echo " * DO NOT MODIFY."; \
- echo " *"; \
- echo " * This file was generated by Kbuild"; \
- echo " */"; \
- echo ""; \
- sed -ne $(sed-y); \
- echo ""; \
- echo "#endif" )
-endef
-
#####
# 1) Generate bounds.h
diff --git a/Makefile b/Makefile
index 220121f..c0a5fab 100644
--- a/Makefile
+++ b/Makefile
@@ -632,13 +632,9 @@ include arch/$(SRCARCH)/Makefile
KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
-ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
-KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
-KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
-endif
-
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
-KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
+KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
+KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
else
ifdef CONFIG_PROFILE_ALL_BRANCHES
KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
@@ -698,8 +694,16 @@ endif
KBUILD_CFLAGS += $(stackp-flag)
ifeq ($(cc-name),clang)
+ifneq ($(CROSS_COMPILE),)
+CLANG_TARGET := -target $(notdir $(CROSS_COMPILE:%-=%))
+GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
+endif
+ifneq ($(GCC_TOOLCHAIN),)
+CLANG_GCC_TC := -gcc-toolchain $(GCC_TOOLCHAIN)
+endif
+KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
+KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
-KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
@@ -710,10 +714,12 @@ KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
# See modpost pattern 2
KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
+KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
+KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
else
# These warnings generated too much noise in a regular build.
-# Use make W=1 to enable them (see scripts/Makefile.build)
+# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
endif
@@ -773,6 +779,11 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
endif
+ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
+KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
+KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
+endif
+
# arch Makefile may override CC so keep this after arch Makefile is included
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
CHECKFLAGS += $(NOSTDINC_FLAGS)
@@ -801,6 +812,9 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=date-time)
# enforce correct pointer usage
KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
+# Require designated initializers for all marked structures
+KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
+
# use the deterministic mode of AR if available
KBUILD_ARFLAGS := $(call ar-option,D)
@@ -815,7 +829,7 @@ KBUILD_AFLAGS += $(ARCH_AFLAGS) $(KAFLAGS)
KBUILD_CFLAGS += $(ARCH_CFLAGS) $(KCFLAGS)
# Use --build-id when available.
-LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
+LDFLAGS_BUILD_ID := $(patsubst -Wl$(comma)%,%,\
$(call cc-ldoption, -Wl$(comma)--build-id,))
KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
@@ -1315,8 +1329,8 @@ PHONY += distclean
distclean: mrproper
@find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
- -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
- -o -name '.*.rej' -o -name '*%' -o -name 'core' \) \
+ -o -name '*.bak' -o -name '#*#' -o -name '*%' \
+ -o -name 'core' \) \
-type f -print | xargs rm -f
@@ -1361,6 +1375,8 @@ help:
@echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
@echo ' dir/ - Build all files in dir and below'
@echo ' dir/file.[ois] - Build specified target only'
+ @echo ' dir/file.ll - Build the LLVM assembly file'
+ @echo ' (requires compiler support for LLVM assembly generation)'
@echo ' dir/file.lst - Build specified mixed source/assembly target only'
@echo ' (requires a recent binutils and recent build (System.map))'
@echo ' dir/file.ko - Build module including final link'
@@ -1549,6 +1565,7 @@ clean: $(clean-dirs)
-o -name '*.symtypes' -o -name 'modules.order' \
-o -name modules.builtin -o -name '.tmp_*.o.*' \
-o -name '*.c.[012]*.*' \
+ -o -name '*.ll' \
-o -name '*.gcno' \) -type f -print | xargs rm -f
# Generate tags for editors
@@ -1652,6 +1669,8 @@ endif
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.symtypes: %.c prepare scripts FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
+%.ll: %.c prepare scripts FORCE
+ $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
# Modules
/: prepare scripts FORCE
diff --git a/arch/alpha/lib/Makefile b/arch/alpha/lib/Makefile
index 5966074..7083434 100644
--- a/arch/alpha/lib/Makefile
+++ b/arch/alpha/lib/Makefile
@@ -46,11 +46,6 @@ AFLAGS___remqu.o = -DREM
AFLAGS___divlu.o = -DDIV -DINTSIZE
AFLAGS___remlu.o = -DREM -DINTSIZE
-$(obj)/__divqu.o: $(obj)/$(ev6-y)divide.S
- $(cmd_as_o_S)
-$(obj)/__remqu.o: $(obj)/$(ev6-y)divide.S
- $(cmd_as_o_S)
-$(obj)/__divlu.o: $(obj)/$(ev6-y)divide.S
- $(cmd_as_o_S)
-$(obj)/__remlu.o: $(obj)/$(ev6-y)divide.S
- $(cmd_as_o_S)
+$(addprefix $(obj)/,__divqu.o __remqu.o __divlu.o __remlu.o): \
+ $(src)/$(ev6-y)divide.S FORCE
+ $(call if_changed_rule,as_o_S)
diff --git a/arch/frv/kernel/asm-offsets.c b/arch/frv/kernel/asm-offsets.c
index 8414293..20c5b79 100644
--- a/arch/frv/kernel/asm-offsets.c
+++ b/arch/frv/kernel/asm-offsets.c
@@ -14,21 +14,10 @@
#include <asm/thread_info.h>
#include <asm/gdb-stub.h>
-#define DEF_PTREG(sym, reg) \
- asm volatile("\n->" #sym " %0 offsetof(struct pt_regs, " #reg ")" \
- : : "i" (offsetof(struct pt_regs, reg)))
-
-#define DEF_IREG(sym, reg) \
- asm volatile("\n->" #sym " %0 offsetof(struct user_context, " #reg ")" \
- : : "i" (offsetof(struct user_context, reg)))
-
-#define DEF_FREG(sym, reg) \
- asm volatile("\n->" #sym " %0 offsetof(struct user_context, " #reg ")" \
- : : "i" (offsetof(struct user_context, reg)))
-
-#define DEF_0REG(sym, reg) \
- asm volatile("\n->" #sym " %0 offsetof(struct frv_frame0, " #reg ")" \
- : : "i" (offsetof(struct frv_frame0, reg)))
+#define DEF_PTREG(sym, reg) OFFSET(sym, pt_regs, reg)
+#define DEF_IREG(sym, reg) OFFSET(sym, user_context, reg)
+#define DEF_FREG(sym, reg) OFFSET(sym, user_context, reg)
+#define DEF_0REG(sym, reg) OFFSET(sym, frv_frame0, reg)
void foo(void)
{
diff --git a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile
index 3686d6a..9edda54 100644
--- a/arch/ia64/kernel/Makefile
+++ b/arch/ia64/kernel/Makefile
@@ -50,32 +50,10 @@ CFLAGS_traps.o += -mfixed-range=f2-f5,f16-f31
# The gate DSO image is built using a special linker script.
include $(src)/Makefile.gate
-# Calculate NR_IRQ = max(IA64_NATIVE_NR_IRQS, XEN_NR_IRQS, ...) based on config
-define sed-y
- "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
-endef
-quiet_cmd_nr_irqs = GEN $@
-define cmd_nr_irqs
- (set -e; \
- echo "#ifndef __ASM_NR_IRQS_H__"; \
- echo "#define __ASM_NR_IRQS_H__"; \
- echo "/*"; \
- echo " * DO NOT MODIFY."; \
- echo " *"; \
- echo " * This file was generated by Kbuild"; \
- echo " *"; \
- echo " */"; \
- echo ""; \
- sed -ne $(sed-y) $<; \
- echo ""; \
- echo "#endif" ) > $@
-endef
-
# We use internal kbuild rules to avoid the "is up to date" message from make
arch/$(SRCARCH)/kernel/nr-irqs.s: arch/$(SRCARCH)/kernel/nr-irqs.c
$(Q)mkdir -p $(dir $@)
$(call if_changed_dep,cc_s_c)
-include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s
- $(Q)mkdir -p $(dir $@)
- $(call cmd,nr_irqs)
+include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s FORCE
+ $(call filechk,offsets,__ASM_NR_IRQS_H__)
diff --git a/arch/ia64/kernel/Makefile.gate b/arch/ia64/kernel/Makefile.gate
index ceeffc5..a32903a 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
CPPFLAGS_gate.lds := -P -C -U$(ARCH)
-quiet_cmd_gate = GATE $@
+quiet_cmd_gate = GATE $@
cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@
GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1 \
diff --git a/include/linux/kbuild.h b/include/linux/kbuild.h
index 22a7219..4e80f3a 100644
--- a/include/linux/kbuild.h
+++ b/include/linux/kbuild.h
@@ -2,14 +2,14 @@
#define __LINUX_KBUILD_H
#define DEFINE(sym, val) \
- asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+ asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
-#define BLANK() asm volatile("\n->" : : )
+#define BLANK() asm volatile("\n.ascii \"->\"" : : )
#define OFFSET(sym, str, mem) \
DEFINE(sym, offsetof(struct str, mem))
#define COMMENT(x) \
- asm volatile("\n->#" x)
+ asm volatile("\n.ascii \"->#" x "\"")
#endif
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index afe3fd3..61f87a9 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -116,12 +116,12 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
cc-option = $(call try-run,\
- $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
+ $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
# cc-option-yn
# Usage: flag := $(call cc-option-yn,-march=winchip-c6)
cc-option-yn = $(call try-run,\
- $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
+ $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
# cc-option-align
# Prefix align with either -falign or -malign
@@ -131,7 +131,7 @@ cc-option-align = $(subst -functions=0,,\
# cc-disable-warning
# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
cc-disable-warning = $(call try-run,\
- $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
+ $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
# cc-name
# Expands to either gcc or clang
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index d883116..733e044 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -177,6 +177,14 @@ cmd_cc_symtypes_c = \
$(obj)/%.symtypes : $(src)/%.c FORCE
$(call cmd,cc_symtypes_c)
+# LLVM assembly
+# Generate .ll files from .c
+quiet_cmd_cc_ll_c = CC $(quiet_modtag) $@
+ cmd_cc_ll_c = $(CC) $(c_flags) -emit-llvm -S -o $@ $<
+
+$(obj)/%.ll: $(src)/%.c FORCE
+ $(call if_changed_dep,cc_ll_c)
+
# C (.c) files
# The C file is compiled and updated dependency information is generated.
# (See cmd_cc_o_c + relevant part of rule_cc_o_c)
@@ -272,14 +280,14 @@ define rule_cc_o_c
$(call echo-cmd,checksrc) $(cmd_checksrc) \
$(call cmd_and_fixdep,cc_o_c) \
$(cmd_modversions_c) \
- $(cmd_objtool) \
+ $(call echo-cmd,objtool) $(cmd_objtool) \
$(call echo-cmd,record_mcount) $(cmd_record_mcount)
endef
define rule_as_o_S
$(call cmd_and_fixdep,as_o_S) \
$(cmd_modversions_S) \
- $(cmd_objtool)
+ $(call echo-cmd,objtool) $(cmd_objtool)
endef
# List module undefined symbols (or empty line if not enabled)
diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
index a1be75d..34614a4 100644
--- a/scripts/Makefile.dtbinst
+++ b/scripts/Makefile.dtbinst
@@ -20,12 +20,6 @@ include include/config/auto.conf
include scripts/Kbuild.include
include $(src)/Makefile
-PHONY += __dtbs_install_prep
-__dtbs_install_prep:
-ifeq ("$(dtbinst-root)", "$(obj)")
- $(Q)mkdir -p $(INSTALL_DTBS_PATH)
-endif
-
dtbinst-files := $(dtb-y)
dtbinst-dirs := $(dts-dirs)
@@ -35,8 +29,6 @@ quiet_cmd_dtb_install = INSTALL $<
install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
-$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
-
$(dtbinst-files): %.dtb: $(obj)/%.dtb
$(call cmd,dtb_install,$(install-dir))
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
index 7c321a6..fb3522f 100644
--- a/scripts/Makefile.extrawarn
+++ b/scripts/Makefile.extrawarn
@@ -64,7 +64,6 @@ ifeq ($(cc-name),clang)
KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-value)
KBUILD_CFLAGS += $(call cc-disable-warning, format)
-KBUILD_CFLAGS += $(call cc-disable-warning, unknown-warning-option)
KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare)
KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length)
KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized)
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index c9f975a..6dc1eda1 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -420,3 +420,34 @@ quiet_cmd_xzmisc = XZMISC $@
cmd_xzmisc = (cat $(filter-out FORCE,$^) | \
xz --check=crc32 --lzma2=dict=1MiB) > $@ || \
(rm -f $@ ; false)
+
+# ASM offsets
+# ---------------------------------------------------------------------------
+
+# Default sed regexp - multiline due to syntax constraints
+#
+# Use [:space:] because LLVM's integrated assembler inserts <tab> around
+# the .ascii directive whereas GCC keeps the <space> as-is.
+define sed-offsets
+ 's:^[[:space:]]*\.ascii[[:space:]]*"\(.*\)".*:\1:; \
+ /^->/{s:->#\(.*\):/* \1 */:; \
+ s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
+ s:->::; p;}'
+endef
+
+# Use filechk to avoid rebuilds when a header changes, but the resulting file
+# does not
+define filechk_offsets
+ (set -e; \
+ echo "#ifndef $2"; \
+ echo "#define $2"; \
+ echo "/*"; \
+ echo " * DO NOT MODIFY."; \
+ echo " *"; \
+ echo " * This file was generated by Kbuild"; \
+ echo " */"; \
+ echo ""; \
+ sed -ne $(sed-offsets); \
+ echo ""; \
+ echo "#endif" )
+endef
diff --git a/scripts/genksyms/parse.tab.c_shipped b/scripts/genksyms/parse.tab.c_shipped
index 69148d3..d02258b 100644
--- a/scripts/genksyms/parse.tab.c_shipped
+++ b/scripts/genksyms/parse.tab.c_shipped
@@ -440,16 +440,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 4
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 524
+#define YYLAST 522
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 55
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 49
/* YYNRULES -- Number of rules. */
-#define YYNRULES 134
+#define YYNRULES 133
/* YYNRULES -- Number of states. */
-#define YYNSTATES 189
+#define YYNSTATES 187
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -506,13 +506,13 @@ static const yytype_uint16 yyprhs[] =
97, 101, 105, 109, 112, 115, 118, 120, 122, 124,
126, 128, 130, 132, 134, 136, 138, 140, 142, 145,
146, 148, 150, 153, 155, 157, 159, 161, 164, 166,
- 168, 170, 175, 180, 183, 187, 191, 194, 196, 198,
- 200, 205, 210, 213, 217, 221, 224, 226, 230, 231,
- 233, 235, 239, 242, 245, 247, 248, 250, 252, 257,
- 262, 265, 269, 273, 277, 278, 280, 283, 287, 291,
- 292, 294, 296, 299, 303, 306, 307, 309, 311, 315,
- 318, 321, 323, 326, 327, 330, 334, 339, 341, 345,
- 347, 351, 354, 355, 357
+ 168, 170, 175, 180, 183, 187, 190, 192, 194, 196,
+ 201, 206, 209, 213, 217, 220, 222, 226, 227, 229,
+ 231, 235, 238, 241, 243, 244, 246, 248, 253, 258,
+ 261, 265, 269, 273, 274, 276, 279, 283, 287, 288,
+ 290, 292, 295, 299, 302, 303, 305, 307, 311, 314,
+ 317, 319, 322, 323, 326, 330, 335, 337, 341, 343,
+ 347, 350, 351, 353
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -536,25 +536,24 @@ static const yytype_int8 yyrhs[] =
74, 75, -1, 8, -1, 27, -1, 32, -1, 18,
-1, 72, 76, -1, 77, -1, 39, -1, 43, -1,
77, 49, 80, 50, -1, 77, 49, 1, 50, -1,
- 77, 35, -1, 49, 76, 50, -1, 49, 1, 50,
- -1, 72, 78, -1, 79, -1, 39, -1, 43, -1,
- 79, 49, 80, 50, -1, 79, 49, 1, 50, -1,
- 79, 35, -1, 49, 78, 50, -1, 49, 1, 50,
- -1, 81, 38, -1, 81, -1, 82, 48, 38, -1,
- -1, 82, -1, 83, -1, 82, 48, 83, -1, 67,
- 84, -1, 72, 84, -1, 85, -1, -1, 39, -1,
- 43, -1, 85, 49, 80, 50, -1, 85, 49, 1,
- 50, -1, 85, 35, -1, 49, 84, 50, -1, 49,
- 1, 50, -1, 66, 76, 34, -1, -1, 88, -1,
- 52, 36, -1, 53, 90, 47, -1, 53, 1, 47,
- -1, -1, 91, -1, 92, -1, 91, 92, -1, 66,
- 93, 46, -1, 1, 46, -1, -1, 94, -1, 95,
- -1, 94, 48, 95, -1, 78, 97, -1, 39, 96,
- -1, 96, -1, 54, 36, -1, -1, 97, 32, -1,
- 53, 99, 47, -1, 53, 99, 48, 47, -1, 100,
- -1, 99, 48, 100, -1, 39, -1, 39, 52, 36,
- -1, 31, 46, -1, -1, 31, -1, 30, 49, 39,
- 50, 46, -1
+ 77, 35, -1, 49, 76, 50, -1, 72, 78, -1,
+ 79, -1, 39, -1, 43, -1, 79, 49, 80, 50,
+ -1, 79, 49, 1, 50, -1, 79, 35, -1, 49,
+ 78, 50, -1, 49, 1, 50, -1, 81, 38, -1,
+ 81, -1, 82, 48, 38, -1, -1, 82, -1, 83,
+ -1, 82, 48, 83, -1, 67, 84, -1, 72, 84,
+ -1, 85, -1, -1, 39, -1, 43, -1, 85, 49,
+ 80, 50, -1, 85, 49, 1, 50, -1, 85, 35,
+ -1, 49, 84, 50, -1, 49, 1, 50, -1, 66,
+ 76, 34, -1, -1, 88, -1, 52, 36, -1, 53,
+ 90, 47, -1, 53, 1, 47, -1, -1, 91, -1,
+ 92, -1, 91, 92, -1, 66, 93, 46, -1, 1,
+ 46, -1, -1, 94, -1, 95, -1, 94, 48, 95,
+ -1, 78, 97, -1, 39, 96, -1, 96, -1, 54,
+ 36, -1, -1, 97, 32, -1, 53, 99, 47, -1,
+ 53, 99, 48, 47, -1, 100, -1, 99, 48, 100,
+ -1, 39, -1, 39, 52, 36, -1, 31, 46, -1,
+ -1, 31, -1, 30, 49, 39, 50, 46, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -567,13 +566,13 @@ static const yytype_uint16 yyrline[] =
238, 240, 242, 247, 250, 251, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, 265, 266, 270, 275,
276, 280, 281, 285, 285, 285, 286, 294, 295, 299,
- 308, 317, 319, 321, 323, 325, 332, 333, 337, 338,
- 339, 341, 343, 345, 347, 352, 353, 354, 358, 359,
- 363, 364, 369, 374, 376, 380, 381, 389, 393, 395,
- 397, 399, 401, 406, 415, 416, 421, 426, 427, 431,
- 432, 436, 437, 441, 443, 448, 449, 453, 454, 458,
- 459, 460, 464, 468, 469, 473, 474, 478, 479, 482,
- 487, 495, 499, 500, 504
+ 308, 317, 319, 321, 323, 330, 331, 335, 336, 337,
+ 339, 341, 343, 345, 350, 351, 352, 356, 357, 361,
+ 362, 367, 372, 374, 378, 379, 387, 391, 393, 395,
+ 397, 399, 404, 413, 414, 419, 424, 425, 429, 430,
+ 434, 435, 439, 441, 446, 447, 451, 452, 456, 457,
+ 458, 462, 466, 467, 471, 472, 476, 477, 480, 485,
+ 493, 497, 498, 502
};
#endif
@@ -636,13 +635,13 @@ static const yytype_uint8 yyr1[] =
70, 70, 70, 70, 70, 70, 71, 71, 71, 71,
71, 71, 71, 71, 71, 71, 71, 71, 72, 73,
73, 74, 74, 75, 75, 75, 75, 76, 76, 77,
- 77, 77, 77, 77, 77, 77, 78, 78, 79, 79,
- 79, 79, 79, 79, 79, 80, 80, 80, 81, 81,
- 82, 82, 83, 84, 84, 85, 85, 85, 85, 85,
- 85, 85, 85, 86, 87, 87, 88, 89, 89, 90,
- 90, 91, 91, 92, 92, 93, 93, 94, 94, 95,
- 95, 95, 96, 97, 97, 98, 98, 99, 99, 100,
- 100, 101, 102, 102, 103
+ 77, 77, 77, 77, 77, 78, 78, 79, 79, 79,
+ 79, 79, 79, 79, 80, 80, 80, 81, 81, 82,
+ 82, 83, 84, 84, 85, 85, 85, 85, 85, 85,
+ 85, 85, 86, 87, 87, 88, 89, 89, 90, 90,
+ 91, 91, 92, 92, 93, 93, 94, 94, 95, 95,
+ 95, 96, 97, 97, 98, 98, 99, 99, 100, 100,
+ 101, 102, 102, 103
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -655,13 +654,13 @@ static const yytype_uint8 yyr2[] =
3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
1, 1, 2, 1, 1, 1, 1, 2, 1, 1,
- 1, 4, 4, 2, 3, 3, 2, 1, 1, 1,
- 4, 4, 2, 3, 3, 2, 1, 3, 0, 1,
- 1, 3, 2, 2, 1, 0, 1, 1, 4, 4,
- 2, 3, 3, 3, 0, 1, 2, 3, 3, 0,
- 1, 1, 2, 3, 2, 0, 1, 1, 3, 2,
- 2, 1, 2, 0, 2, 3, 4, 1, 3, 1,
- 3, 2, 0, 1, 5
+ 1, 4, 4, 2, 3, 2, 1, 1, 1, 4,
+ 4, 2, 3, 3, 2, 1, 3, 0, 1, 1,
+ 3, 2, 2, 1, 0, 1, 1, 4, 4, 2,
+ 3, 3, 3, 0, 1, 2, 3, 3, 0, 1,
+ 1, 2, 3, 2, 0, 1, 1, 3, 2, 2,
+ 1, 2, 0, 2, 3, 4, 1, 3, 1, 3,
+ 2, 0, 1, 5
};
/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -675,189 +674,189 @@ static const yytype_uint8 yydefact[] =
0, 56, 0, 0, 65, 36, 57, 5, 10, 17,
23, 24, 26, 27, 33, 34, 11, 12, 13, 14,
15, 39, 0, 43, 6, 37, 0, 44, 22, 38,
- 45, 0, 0, 131, 69, 70, 0, 59, 0, 18,
- 19, 0, 132, 68, 25, 42, 129, 0, 127, 22,
- 40, 0, 115, 0, 0, 111, 9, 17, 41, 95,
- 0, 0, 0, 0, 58, 60, 61, 16, 0, 67,
- 133, 103, 123, 73, 0, 0, 125, 0, 7, 114,
- 108, 78, 79, 0, 0, 0, 123, 77, 0, 116,
- 117, 121, 107, 0, 112, 132, 96, 57, 0, 95,
- 92, 94, 35, 0, 75, 74, 62, 20, 104, 0,
- 0, 86, 89, 90, 130, 126, 128, 120, 0, 78,
- 0, 122, 76, 119, 82, 0, 113, 0, 0, 97,
- 0, 93, 100, 0, 134, 124, 0, 21, 105, 72,
- 71, 85, 0, 84, 83, 0, 0, 118, 102, 101,
- 0, 0, 106, 87, 91, 81, 80, 99, 98
+ 45, 0, 0, 130, 69, 70, 0, 59, 0, 18,
+ 19, 0, 131, 68, 25, 42, 128, 0, 126, 22,
+ 40, 0, 114, 0, 0, 110, 9, 17, 41, 94,
+ 0, 0, 0, 58, 60, 61, 16, 0, 67, 132,
+ 102, 122, 73, 0, 0, 124, 0, 7, 113, 107,
+ 77, 78, 0, 0, 0, 122, 76, 0, 115, 116,
+ 120, 106, 0, 111, 131, 95, 57, 0, 94, 91,
+ 93, 35, 0, 74, 62, 20, 103, 0, 0, 85,
+ 88, 89, 129, 125, 127, 119, 0, 77, 0, 121,
+ 75, 118, 81, 0, 112, 0, 0, 96, 0, 92,
+ 99, 0, 133, 123, 0, 21, 104, 72, 71, 84,
+ 0, 83, 82, 0, 0, 117, 101, 100, 0, 0,
+ 105, 86, 90, 80, 79, 98, 97
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 2, 3, 37, 79, 58, 38, 68, 69,
- 70, 82, 40, 41, 42, 43, 44, 71, 94, 95,
- 45, 125, 73, 116, 117, 140, 141, 142, 143, 130,
- 131, 46, 167, 168, 57, 83, 84, 85, 118, 119,
- 120, 121, 138, 53, 77, 78, 47, 102, 48
+ 70, 82, 40, 41, 42, 43, 44, 71, 93, 94,
+ 45, 124, 73, 115, 116, 138, 139, 140, 141, 129,
+ 130, 46, 165, 166, 57, 83, 84, 85, 117, 118,
+ 119, 120, 136, 53, 77, 78, 47, 101, 48
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -111
+#define YYPACT_NINF -94
static const yytype_int16 yypact[] =
{
- -111, 13, -111, 210, -111, -111, 28, -111, -111, -111,
- -111, -111, -27, -111, 44, -111, -111, -111, -111, -111,
- -111, -111, -111, -111, -24, -111, -20, -111, -111, -111,
- 31, -111, 32, 42, -111, -111, -111, -111, -111, 34,
- 481, -111, -111, -111, -111, -111, -111, -111, -111, -111,
- -111, 51, 56, -111, -111, 52, 108, -111, 481, 52,
- -111, 481, 58, -111, -111, -111, 19, 0, 54, 55,
- -111, 34, 30, -18, -111, -111, 68, -25, -111, 481,
- -111, 45, 33, 59, 159, -111, -111, 34, -111, 395,
- 57, 60, 81, 88, -111, 0, -111, -111, 34, -111,
- -111, -111, -111, -111, 257, 72, -111, -23, -111, -111,
- -111, 85, -111, 20, 106, 47, -111, -10, 97, 96,
- -111, -111, -111, 99, -111, 115, -111, -111, 5, 50,
- -111, 11, -111, 102, -111, -111, -111, -111, -22, 100,
- 103, 111, 104, -111, -111, -111, -111, -111, 113, -111,
- 121, -111, -111, 124, -111, 303, -111, 33, 132, -111,
- 139, -111, -111, 349, -111, -111, 122, -111, -111, -111,
- -111, -111, 442, -111, -111, 140, 143, -111, -111, -111,
- 144, 145, -111, -111, -111, -111, -111, -111, -111
+ -94, 15, -94, 208, -94, -94, 34, -94, -94, -94,
+ -94, -94, -27, -94, -5, -94, -94, -94, -94, -94,
+ -94, -94, -94, -94, -25, -94, -16, -94, -94, -94,
+ -4, -94, 19, -24, -94, -94, -94, -94, -94, 24,
+ 479, -94, -94, -94, -94, -94, -94, -94, -94, -94,
+ -94, 29, 48, -94, -94, 37, 106, -94, 479, 37,
+ -94, 479, 54, -94, -94, -94, 24, -2, 49, 53,
+ -94, 24, -14, -11, -94, -94, 47, 38, -94, 479,
+ -94, 51, 23, 55, 157, -94, -94, 24, -94, 393,
+ 56, 58, 68, -94, -2, -94, -94, 24, -94, -94,
+ -94, -94, -94, 255, 67, -94, 5, -94, -94, -94,
+ 50, -94, 7, 69, 40, -94, -8, 83, 88, -94,
+ -94, -94, 91, -94, 109, -94, -94, 4, 45, -94,
+ 16, -94, 95, -94, -94, -94, -23, 92, 93, 108,
+ 96, -94, -94, -94, -94, -94, 97, -94, 98, -94,
+ -94, 118, -94, 301, -94, 23, 101, -94, 104, -94,
+ -94, 347, -94, -94, 120, -94, -94, -94, -94, -94,
+ 440, -94, -94, 111, 119, -94, -94, -94, 130, 137,
+ -94, -94, -94, -94, -94, -94, -94
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -111, -111, 160, -111, -111, -111, -111, -51, -111, -111,
- 98, -1, -61, -37, -111, -111, -111, -78, -111, -111,
- -53, -30, -111, -66, -111, -110, -111, -111, -60, -63,
- -111, -111, -111, -111, -21, -111, -111, 116, -111, -111,
- 40, 90, 83, 152, -111, 105, -111, -111, -111
+ -94, -94, 158, -94, -94, -94, -94, -45, -94, -94,
+ 94, -1, -61, -29, -94, -94, -94, -79, -94, -94,
+ -63, -7, -94, -93, -94, -92, -94, -94, -60, -57,
+ -94, -94, -94, -94, -19, -94, -94, 110, -94, -94,
+ 33, 82, 78, 144, -94, 99, -94, -94, -94
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -111
+#define YYTABLE_NINF -110
static const yytype_int16 yytable[] =
{
- 89, 90, 39, 74, 115, 60, 158, 86, 10, 72,
- 165, 129, 51, 4, 96, 55, 76, 103, 20, 59,
- 92, 148, 106, 107, 145, 154, 52, 29, 108, 56,
- 166, 104, 34, 56, 80, 115, 93, 115, 88, 155,
- -95, 99, 136, 89, 126, 176, 162, 150, 159, 152,
- 129, 129, 74, 181, 128, -95, 67, 87, 64, 149,
- 163, 100, 65, 112, 101, 160, 161, 54, 66, 113,
- 67, 67, 111, 64, 49, 50, 112, 65, 87, 115,
- 61, 62, 113, 66, 67, 67, 149, 114, 63, 126,
- 112, 109, 110, 159, 89, 76, 113, 91, 67, 128,
- 97, 67, 89, 98, 52, 56, 122, 132, 144, 81,
- 133, 89, 184, 7, 8, 9, 10, 11, 12, 13,
- 105, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 134, 26, 27, 28, 29, 30, 31, 135, 114,
- 34, 35, 151, 156, 157, 109, 100, -22, 164, 171,
- 169, 36, 172, 170, -22, -109, 165, -22, 182, -22,
- 123, 5, -22, 173, 7, 8, 9, 10, 11, 12,
- 13, 174, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 178, 26, 27, 28, 29, 30, 31, 179,
- 185, 34, 35, 186, 187, 188, 137, 177, -22, 153,
- 124, 147, 36, 75, 0, -22, -110, 0, -22, 0,
- -22, 6, 146, -22, 0, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 0, 0, 0, 0, 0, -22,
- 0, 0, 0, 36, 0, 0, -22, 0, 139, -22,
- 0, -22, 7, 8, 9, 10, 11, 12, 13, 0,
+ 89, 90, 39, 114, 95, 156, 10, 60, 146, 163,
+ 128, 74, 51, 86, 55, 4, 20, 99, 54, 148,
+ 100, 150, 63, 59, 102, 29, 52, 152, 56, 164,
+ 34, 134, 72, 114, 107, 114, 80, 56, 103, -94,
+ 88, 153, 89, 125, 76, 61, 147, 157, 128, 128,
+ 111, 160, 143, 127, -94, 67, 112, 87, 67, 92,
+ 74, 174, 110, 64, 98, 161, 111, 65, 62, 179,
+ 158, 159, 112, 66, 67, 67, 114, 113, 87, 147,
+ 49, 50, 52, 111, 125, 105, 106, 76, 157, 112,
+ 56, 67, 89, 91, 127, 96, 67, 108, 109, 104,
+ 89, 97, 121, 142, 113, 149, 131, 81, 132, 89,
+ 182, 7, 8, 9, 10, 11, 12, 13, 133, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 154,
+ 26, 27, 28, 29, 30, 31, 155, 108, 34, 35,
+ 99, 162, 167, 168, 170, -22, 169, 171, 172, 36,
+ 163, 176, -22, -108, 177, -22, 180, -22, 122, 5,
+ -22, 183, 7, 8, 9, 10, 11, 12, 13, 184,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 185, 26, 27, 28, 29, 30, 31, 186, 175, 34,
+ 35, 135, 145, 151, 123, 75, -22, 0, 0, 0,
+ 36, 0, 0, -22, -109, 144, -22, 0, -22, 6,
+ 0, -22, 0, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 0, 0, 0, 0, 0, -22, 0, 0,
+ 0, 36, 0, 0, -22, 0, 137, -22, 0, -22,
+ 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
+ 27, 28, 29, 30, 31, 0, 0, 34, 35, 0,
+ 0, 0, 0, -87, 0, 0, 0, 0, 36, 0,
+ 0, 0, 173, 0, 0, -87, 7, 8, 9, 10,
+ 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
+ 31, 0, 0, 34, 35, 0, 0, 0, 0, -87,
+ 0, 0, 0, 0, 36, 0, 0, 0, 178, 0,
+ 0, -87, 7, 8, 9, 10, 11, 12, 13, 0,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
0, 26, 27, 28, 29, 30, 31, 0, 0, 34,
- 35, 0, 0, 0, 0, -88, 0, 0, 0, 0,
- 36, 0, 0, 0, 175, 0, 0, -88, 7, 8,
+ 35, 0, 0, 0, 0, -87, 0, 0, 0, 0,
+ 36, 0, 0, 0, 0, 0, 0, -87, 7, 8,
9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
29, 30, 31, 0, 0, 34, 35, 0, 0, 0,
- 0, -88, 0, 0, 0, 0, 36, 0, 0, 0,
- 180, 0, 0, -88, 7, 8, 9, 10, 11, 12,
+ 0, 0, 125, 0, 0, 0, 126, 0, 0, 0,
+ 0, 0, 127, 0, 67, 7, 8, 9, 10, 11,
+ 12, 13, 0, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 0, 26, 27, 28, 29, 30, 31,
+ 0, 0, 34, 35, 0, 0, 0, 0, 181, 0,
+ 0, 0, 0, 36, 7, 8, 9, 10, 11, 12,
13, 0, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 0, 26, 27, 28, 29, 30, 31, 0,
- 0, 34, 35, 0, 0, 0, 0, -88, 0, 0,
- 0, 0, 36, 0, 0, 0, 0, 0, 0, -88,
- 7, 8, 9, 10, 11, 12, 13, 0, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 0, 26,
- 27, 28, 29, 30, 31, 0, 0, 34, 35, 0,
- 0, 0, 0, 0, 126, 0, 0, 0, 127, 0,
- 0, 0, 0, 0, 128, 0, 67, 7, 8, 9,
- 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
- 30, 31, 0, 0, 34, 35, 0, 0, 0, 0,
- 183, 0, 0, 0, 0, 36, 7, 8, 9, 10,
- 11, 12, 13, 0, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 0, 26, 27, 28, 29, 30,
- 31, 0, 0, 34, 35, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 36
+ 0, 34, 35, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 36
};
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-111)))
+ (!!((Yystate) == (-94)))
#define yytable_value_is_error(Yytable_value) \
YYID (0)
static const yytype_int16 yycheck[] =
{
- 61, 61, 3, 40, 82, 26, 1, 58, 8, 39,
- 32, 89, 39, 0, 67, 39, 39, 35, 18, 39,
- 1, 1, 47, 48, 47, 35, 53, 27, 79, 53,
- 52, 49, 32, 53, 55, 113, 66, 115, 59, 49,
- 35, 71, 95, 104, 39, 155, 35, 113, 43, 115,
- 128, 129, 89, 163, 49, 50, 51, 58, 39, 39,
- 49, 31, 43, 43, 34, 128, 129, 23, 49, 49,
- 51, 51, 39, 39, 46, 47, 43, 43, 79, 157,
- 49, 49, 49, 49, 51, 51, 39, 54, 46, 39,
- 43, 46, 47, 43, 155, 39, 49, 39, 51, 49,
- 46, 51, 163, 48, 53, 53, 47, 50, 36, 1,
- 50, 172, 172, 5, 6, 7, 8, 9, 10, 11,
- 52, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 50, 24, 25, 26, 27, 28, 29, 50, 54,
- 32, 33, 36, 46, 48, 46, 31, 39, 46, 38,
- 50, 43, 48, 50, 46, 47, 32, 49, 36, 51,
- 1, 1, 54, 50, 5, 6, 7, 8, 9, 10,
- 11, 50, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 50, 24, 25, 26, 27, 28, 29, 50,
- 50, 32, 33, 50, 50, 50, 98, 157, 39, 116,
- 84, 111, 43, 51, -1, 46, 47, -1, 49, -1,
- 51, 1, 107, 54, -1, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, -1, -1, -1, -1, -1, 39,
- -1, -1, -1, 43, -1, -1, 46, -1, 1, 49,
- -1, 51, 5, 6, 7, 8, 9, 10, 11, -1,
+ 61, 61, 3, 82, 67, 1, 8, 26, 1, 32,
+ 89, 40, 39, 58, 39, 0, 18, 31, 23, 112,
+ 34, 114, 46, 39, 35, 27, 53, 35, 53, 52,
+ 32, 94, 39, 112, 79, 114, 55, 53, 49, 35,
+ 59, 49, 103, 39, 39, 49, 39, 43, 127, 128,
+ 43, 35, 47, 49, 50, 51, 49, 58, 51, 66,
+ 89, 153, 39, 39, 71, 49, 43, 43, 49, 161,
+ 127, 128, 49, 49, 51, 51, 155, 54, 79, 39,
+ 46, 47, 53, 43, 39, 47, 48, 39, 43, 49,
+ 53, 51, 153, 39, 49, 46, 51, 46, 47, 52,
+ 161, 48, 47, 36, 54, 36, 50, 1, 50, 170,
+ 170, 5, 6, 7, 8, 9, 10, 11, 50, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 46,
+ 24, 25, 26, 27, 28, 29, 48, 46, 32, 33,
+ 31, 46, 50, 50, 48, 39, 38, 50, 50, 43,
+ 32, 50, 46, 47, 50, 49, 36, 51, 1, 1,
+ 54, 50, 5, 6, 7, 8, 9, 10, 11, 50,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 50, 24, 25, 26, 27, 28, 29, 50, 155, 32,
+ 33, 97, 110, 115, 84, 51, 39, -1, -1, -1,
+ 43, -1, -1, 46, 47, 106, 49, -1, 51, 1,
+ -1, 54, -1, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, -1, -1, -1, -1, -1, 39, -1, -1,
+ -1, 43, -1, -1, 46, -1, 1, 49, -1, 51,
+ 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
+ 25, 26, 27, 28, 29, -1, -1, 32, 33, -1,
+ -1, -1, -1, 38, -1, -1, -1, -1, 43, -1,
+ -1, -1, 1, -1, -1, 50, 5, 6, 7, 8,
+ 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
+ 29, -1, -1, 32, 33, -1, -1, -1, -1, 38,
+ -1, -1, -1, -1, 43, -1, -1, -1, 1, -1,
+ -1, 50, 5, 6, 7, 8, 9, 10, 11, -1,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-1, 24, 25, 26, 27, 28, 29, -1, -1, 32,
33, -1, -1, -1, -1, 38, -1, -1, -1, -1,
- 43, -1, -1, -1, 1, -1, -1, 50, 5, 6,
+ 43, -1, -1, -1, -1, -1, -1, 50, 5, 6,
7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
27, 28, 29, -1, -1, 32, 33, -1, -1, -1,
- -1, 38, -1, -1, -1, -1, 43, -1, -1, -1,
- 1, -1, -1, 50, 5, 6, 7, 8, 9, 10,
+ -1, -1, 39, -1, -1, -1, 43, -1, -1, -1,
+ -1, -1, 49, -1, 51, 5, 6, 7, 8, 9,
+ 10, 11, -1, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, -1, 24, 25, 26, 27, 28, 29,
+ -1, -1, 32, 33, -1, -1, -1, -1, 38, -1,
+ -1, -1, -1, 43, 5, 6, 7, 8, 9, 10,
11, -1, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, -1, 24, 25, 26, 27, 28, 29, -1,
- -1, 32, 33, -1, -1, -1, -1, 38, -1, -1,
- -1, -1, 43, -1, -1, -1, -1, -1, -1, 50,
- 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
- 25, 26, 27, 28, 29, -1, -1, 32, 33, -1,
- -1, -1, -1, -1, 39, -1, -1, -1, 43, -1,
- -1, -1, -1, -1, 49, -1, 51, 5, 6, 7,
- 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
- 28, 29, -1, -1, 32, 33, -1, -1, -1, -1,
- 38, -1, -1, -1, -1, 43, 5, 6, 7, 8,
- 9, 10, 11, -1, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, -1, 24, 25, 26, 27, 28,
- 29, -1, -1, 32, 33, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 43
+ -1, 32, 33, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 43
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -873,16 +872,16 @@ static const yytype_uint8 yystos[] =
89, 49, 49, 46, 39, 43, 49, 51, 63, 64,
65, 72, 76, 77, 68, 98, 39, 99, 100, 60,
89, 1, 66, 90, 91, 92, 62, 66, 89, 67,
- 83, 39, 1, 76, 73, 74, 75, 46, 48, 76,
- 31, 34, 102, 35, 49, 52, 47, 48, 62, 46,
- 47, 39, 43, 49, 54, 72, 78, 79, 93, 94,
- 95, 96, 47, 1, 92, 76, 39, 43, 49, 72,
- 84, 85, 50, 50, 50, 50, 75, 65, 97, 1,
- 80, 81, 82, 83, 36, 47, 100, 96, 1, 39,
- 78, 36, 78, 97, 35, 49, 46, 48, 1, 43,
- 84, 84, 35, 49, 46, 32, 52, 87, 88, 50,
- 50, 38, 48, 50, 50, 1, 80, 95, 50, 50,
- 1, 80, 36, 38, 83, 50, 50, 50, 50
+ 83, 39, 76, 73, 74, 75, 46, 48, 76, 31,
+ 34, 102, 35, 49, 52, 47, 48, 62, 46, 47,
+ 39, 43, 49, 54, 72, 78, 79, 93, 94, 95,
+ 96, 47, 1, 92, 76, 39, 43, 49, 72, 84,
+ 85, 50, 50, 50, 75, 65, 97, 1, 80, 81,
+ 82, 83, 36, 47, 100, 96, 1, 39, 78, 36,
+ 78, 97, 35, 49, 46, 48, 1, 43, 84, 84,
+ 35, 49, 46, 32, 52, 87, 88, 50, 50, 38,
+ 48, 50, 50, 1, 80, 95, 50, 50, 1, 80,
+ 36, 38, 83, 50, 50, 50, 50
};
#define yyerrok (yyerrstatus = 0)
@@ -1928,12 +1927,12 @@ yyreduce:
case 75:
- { (yyval) = (yyvsp[(3) - (3)]); }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 76:
+ case 79:
- { (yyval) = (yyvsp[(2) - (2)]); }
+ { (yyval) = (yyvsp[(4) - (4)]); }
break;
case 80:
@@ -1943,12 +1942,12 @@ yyreduce:
case 81:
- { (yyval) = (yyvsp[(4) - (4)]); }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 82:
- { (yyval) = (yyvsp[(2) - (2)]); }
+ { (yyval) = (yyvsp[(3) - (3)]); }
break;
case 83:
@@ -1958,45 +1957,40 @@ yyreduce:
case 84:
- { (yyval) = (yyvsp[(3) - (3)]); }
- break;
-
- case 85:
-
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 87:
+ case 86:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 88:
+ case 87:
{ (yyval) = NULL; }
break;
- case 91:
+ case 90:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 92:
+ case 91:
{ (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
break;
- case 93:
+ case 92:
{ (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
break;
- case 95:
+ case 94:
{ (yyval) = NULL; }
break;
- case 96:
+ case 95:
{ /* For version 2 checksums, we don't want to remember
private parameter names. */
@@ -2005,39 +1999,39 @@ yyreduce:
}
break;
- case 97:
+ case 96:
{ remove_node((yyvsp[(1) - (1)]));
(yyval) = (yyvsp[(1) - (1)]);
}
break;
- case 98:
+ case 97:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
- case 99:
+ case 98:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
- case 100:
+ case 99:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 101:
+ case 100:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 102:
+ case 101:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 103:
+ case 102:
{ struct string_list *decl = *(yyvsp[(2) - (3)]);
*(yyvsp[(2) - (3)]) = NULL;
@@ -2046,87 +2040,87 @@ yyreduce:
}
break;
- case 104:
+ case 103:
{ (yyval) = NULL; }
break;
- case 106:
+ case 105:
{ remove_list((yyvsp[(2) - (2)]), &(*(yyvsp[(1) - (2)]))->next); (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 107:
+ case 106:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 108:
+ case 107:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 109:
+ case 108:
{ (yyval) = NULL; }
break;
- case 112:
+ case 111:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 113:
+ case 112:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 114:
+ case 113:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 115:
+ case 114:
{ (yyval) = NULL; }
break;
- case 118:
+ case 117:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 119:
+ case 118:
{ (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
break;
- case 120:
+ case 119:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 122:
+ case 121:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 123:
+ case 122:
{ (yyval) = NULL; }
break;
- case 125:
+ case 124:
{ (yyval) = (yyvsp[(3) - (3)]); }
break;
- case 126:
+ case 125:
{ (yyval) = (yyvsp[(4) - (4)]); }
break;
- case 129:
+ case 128:
{
const char *name = strdup((*(yyvsp[(1) - (1)]))->string);
@@ -2134,7 +2128,7 @@ yyreduce:
}
break;
- case 130:
+ case 129:
{
const char *name = strdup((*(yyvsp[(1) - (3)]))->string);
@@ -2143,17 +2137,17 @@ yyreduce:
}
break;
- case 131:
+ case 130:
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
- case 132:
+ case 131:
{ (yyval) = NULL; }
break;
- case 134:
+ case 133:
{ export_symbol((*(yyvsp[(3) - (5)]))->string); (yyval) = (yyvsp[(5) - (5)]); }
break;
diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y
index 4fba255..00a6d7e 100644
--- a/scripts/genksyms/parse.y
+++ b/scripts/genksyms/parse.y
@@ -322,8 +322,6 @@ direct_declarator:
{ $$ = $2; }
| '(' declarator ')'
{ $$ = $3; }
- | '(' error ')'
- { $$ = $3; }
;
/* Nested declarators differ from regular declarators in that they do
diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile
index 19d9bca..b497d97 100644
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -7,32 +7,8 @@ modpost-objs := modpost.o file2alias.o sumversion.o
devicetable-offsets-file := devicetable-offsets.h
-define sed-y
- "/^->/{s:->#\(.*\):/* \1 */:; \
- s:^->\([^ ]*\) [\$$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; \
- s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; \
- s:->::; p;}"
-endef
-
-quiet_cmd_offsets = GEN $@
-define cmd_offsets
- (set -e; \
- echo "#ifndef __DEVICETABLE_OFFSETS_H__"; \
- echo "#define __DEVICETABLE_OFFSETS_H__"; \
- echo "/*"; \
- echo " * DO NOT MODIFY."; \
- echo " *"; \
- echo " * This file was generated by Kbuild"; \
- echo " *"; \
- echo " */"; \
- echo ""; \
- sed -ne $(sed-y) $<; \
- echo ""; \
- echo "#endif" ) > $@
-endef
-
-$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s
- $(call if_changed,offsets)
+$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE
+ $(call filechk,offsets,__DEVICETABLE_OFFSETS_H__)
targets += $(devicetable-offsets-file) devicetable-offsets.s