Commit 593043d3 authored by Linus Torvalds's avatar Linus Torvalds

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