summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-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.headersinst105
-rw-r--r--scripts/Makefile.lib33
-rwxr-xr-xscripts/checkpatch.pl165
-rw-r--r--scripts/dtc/checks.c2
l---------scripts/dtc/include-prefixes/arc1
l---------scripts/dtc/include-prefixes/arm1
l---------scripts/dtc/include-prefixes/arm641
l---------scripts/dtc/include-prefixes/c6x1
l---------scripts/dtc/include-prefixes/cris1
l---------scripts/dtc/include-prefixes/dt-bindings1
l---------scripts/dtc/include-prefixes/h83001
l---------scripts/dtc/include-prefixes/metag1
l---------scripts/dtc/include-prefixes/microblaze1
l---------scripts/dtc/include-prefixes/mips1
l---------scripts/dtc/include-prefixes/nios21
l---------scripts/dtc/include-prefixes/openrisc1
l---------scripts/dtc/include-prefixes/powerpc1
l---------scripts/dtc/include-prefixes/sh1
l---------scripts/dtc/include-prefixes/xtensa1
-rw-r--r--scripts/gdb/linux/dmesg.py9
-rw-r--r--scripts/genksyms/parse.tab.c_shipped474
-rw-r--r--scripts/genksyms/parse.y2
-rw-r--r--scripts/mod/Makefile28
-rwxr-xr-xscripts/objdiff5
-rwxr-xr-xscripts/package/builddeb16
-rw-r--r--scripts/spelling.txt8
30 files changed, 481 insertions, 408 deletions
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))
# 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 d883116ebaa4..733e044fff8b 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 a1be75d0a5fd..34614a48b717 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 7c321a603b07..fb3522fd8702 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.headersinst b/scripts/Makefile.headersinst
index 1106d6ca3a38..ce753a408c56 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -1,33 +1,56 @@
# ==========================================================================
# Installing headers
#
-# header-y - list files to be installed. They are preprocessed
-# to remove __KERNEL__ section of the file
-# genhdr-y - Same as header-y but in a generated/ directory
+# All headers under include/uapi, include/generated/uapi,
+# arch/<arch>/include/uapi and arch/<arch>/include/generated/uapi are
+# exported.
+# They are preprocessed to remove __KERNEL__ section of the file.
#
# ==========================================================================
+PHONY := __headers
+__headers:
+
+include scripts/Kbuild.include
+
+srcdir := $(srctree)/$(obj)
+subdirs := $(patsubst $(srcdir)/%/.,%,$(wildcard $(srcdir)/*/.))
+# caller may set destination dir (when installing to asm/)
+_dst := $(if $(dst),$(dst),$(obj))
+
+# Recursion
+__headers: $(subdirs)
+
+.PHONY: $(subdirs)
+$(subdirs):
+ $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@
+
+# Skip header install/check for include/uapi and arch/$(hdr-arch)/include/uapi.
+# We have only sub-directories there.
+skip-inst := $(if $(filter %/uapi,$(obj)),1)
+
+ifeq ($(skip-inst),)
+
# generated header directory
gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj)))
+# Kbuild file is optional
kbuild-file := $(srctree)/$(obj)/Kbuild
-include $(kbuild-file)
-
-# called may set destination dir (when installing to asm/)
-_dst := $(if $(destination-y),$(destination-y),$(if $(dst),$(dst),$(obj)))
+-include $(kbuild-file)
old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild
ifneq ($(wildcard $(old-kbuild-file)),)
include $(old-kbuild-file)
endif
-include scripts/Kbuild.include
-
installdir := $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst))
-header-y := $(sort $(header-y))
-subdirs := $(patsubst %/,%,$(filter %/, $(header-y)))
-header-y := $(filter-out %/, $(header-y))
+gendir := $(objtree)/$(gen)
+header-files := $(notdir $(wildcard $(srcdir)/*.h))
+header-files += $(notdir $(wildcard $(srcdir)/*.agh))
+header-files := $(filter-out $(no-export-headers), $(header-files))
+genhdr-files := $(notdir $(wildcard $(gendir)/*.h))
+genhdr-files := $(filter-out $(header-files), $(genhdr-files))
# files used to track state of install/check
install-file := $(installdir)/.install
@@ -35,36 +58,20 @@ check-file := $(installdir)/.check
# generic-y list all files an architecture uses from asm-generic
# Use this to build a list of headers which require a wrapper
-wrapper-files := $(filter $(header-y), $(generic-y))
-
-srcdir := $(srctree)/$(obj)
-gendir := $(objtree)/$(gen)
-
-oldsrcdir := $(srctree)/$(subst /uapi,,$(obj))
+generic-files := $(notdir $(wildcard $(srctree)/include/uapi/asm-generic/*.h))
+wrapper-files := $(filter $(generic-files), $(generic-y))
+wrapper-files := $(filter-out $(header-files), $(wrapper-files))
# all headers files for this dir
-header-y := $(filter-out $(generic-y), $(header-y))
-all-files := $(header-y) $(genhdr-y) $(wrapper-files)
+all-files := $(header-files) $(genhdr-files) $(wrapper-files)
output-files := $(addprefix $(installdir)/, $(all-files))
-input-files1 := $(foreach hdr, $(header-y), \
- $(if $(wildcard $(srcdir)/$(hdr)), \
- $(wildcard $(srcdir)/$(hdr))) \
- )
-input-files1-name := $(notdir $(input-files1))
-input-files2 := $(foreach hdr, $(header-y), \
- $(if $(wildcard $(srcdir)/$(hdr)),, \
- $(if $(wildcard $(oldsrcdir)/$(hdr)), \
- $(wildcard $(oldsrcdir)/$(hdr)), \
- $(error Missing UAPI file $(srcdir)/$(hdr))) \
- ))
-input-files2-name := $(notdir $(input-files2))
-input-files3 := $(foreach hdr, $(genhdr-y), \
- $(if $(wildcard $(gendir)/$(hdr)), \
- $(wildcard $(gendir)/$(hdr)), \
- $(error Missing generated UAPI file $(gendir)/$(hdr)) \
- ))
-input-files3-name := $(notdir $(input-files3))
+ifneq ($(mandatory-y),)
+missing := $(filter-out $(all-files),$(mandatory-y))
+ifneq ($(missing),)
+$(error Some mandatory headers ($(missing)) are missing in $(obj))
+endif
+endif
# Work out what needs to be removed
oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h))
@@ -78,9 +85,8 @@ printdir = $(patsubst $(INSTALL_HDR_PATH)/%/,%,$(dir $@))
quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\
file$(if $(word 2, $(all-files)),s))
cmd_install = \
- $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(input-files1-name); \
- $(CONFIG_SHELL) $< $(installdir) $(oldsrcdir) $(input-files2-name); \
- $(CONFIG_SHELL) $< $(installdir) $(gendir) $(input-files3-name); \
+ $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(header-files); \
+ $(CONFIG_SHELL) $< $(installdir) $(gendir) $(genhdr-files); \
for F in $(wrapper-files); do \
echo "\#include <asm-generic/$$F>" > $(installdir)/$$F; \
done; \
@@ -98,21 +104,21 @@ quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files)
$(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \
touch $@
-PHONY += __headersinst __headerscheck
-
ifndef HDRCHECK
# Rules for installing headers
-__headersinst: $(subdirs) $(install-file)
+__headers: $(install-file)
@:
targets += $(install-file)
-$(install-file): scripts/headers_install.sh $(input-files1) $(input-files2) $(input-files3) FORCE
+$(install-file): scripts/headers_install.sh \
+ $(addprefix $(srcdir)/,$(header-files)) \
+ $(addprefix $(gendir)/,$(genhdr-files)) FORCE
$(if $(unwanted),$(call cmd,remove),)
$(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@)))
$(call if_changed,install)
else
-__headerscheck: $(subdirs) $(check-file)
+__headers: $(check-file)
@:
targets += $(check-file)
@@ -121,11 +127,6 @@ $(check-file): scripts/headers_check.pl $(output-files) FORCE
endif
-# Recursion
-.PHONY: $(subdirs)
-$(subdirs):
- $(Q)$(MAKE) $(hdr-inst)=$(obj)/$@ dst=$(_dst)/$@
-
targets := $(wildcard $(sort $(targets)))
cmd_files := $(wildcard \
$(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
@@ -134,6 +135,8 @@ ifneq ($(cmd_files),)
include $(cmd_files)
endif
+endif # skip-inst
+
.PHONY: $(PHONY)
PHONY += FORCE
FORCE: ;
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index c9f975ab9840..58c05e5d9870 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -175,7 +175,7 @@ ld_flags = $(LDFLAGS) $(ldflags-y)
dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \
-I$(srctree)/arch/$(SRCARCH)/boot/dts \
- -I$(srctree)/arch/$(SRCARCH)/boot/dts/include \
+ -I$(srctree)/scripts/dtc/include-prefixes \
-I$(srctree)/drivers/of/testcase-data \
-undef -D__DTS__
@@ -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/checkpatch.pl b/scripts/checkpatch.pl
index baa3c7be04ad..4b9569fa931b 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -55,6 +55,7 @@ my $spelling_file = "$D/spelling.txt";
my $codespell = 0;
my $codespellfile = "/usr/share/codespell/dictionary.txt";
my $conststructsfile = "$D/const_structs.checkpatch";
+my $typedefsfile = "";
my $color = 1;
my $allow_c99_comments = 1;
@@ -113,6 +114,7 @@ Options:
--codespell Use the codespell dictionary for spelling/typos
(default:/usr/share/codespell/dictionary.txt)
--codespellfile Use this codespell dictionary
+ --typedefsfile Read additional types from this file
--color Use colors when output is STDOUT (default: on)
-h, --help, --version display this help and exit
@@ -208,6 +210,7 @@ GetOptions(
'test-only=s' => \$tst_only,
'codespell!' => \$codespell,
'codespellfile=s' => \$codespellfile,
+ 'typedefsfile=s' => \$typedefsfile,
'color!' => \$color,
'h|help' => \$help,
'version' => \$help
@@ -629,29 +632,44 @@ if ($codespell) {
$misspellings = join("|", sort keys %spelling_fix) if keys %spelling_fix;
-my $const_structs = "";
-if (open(my $conststructs, '<', $conststructsfile)) {
- while (<$conststructs>) {
- my $line = $_;
+sub read_words {
+ my ($wordsRef, $file) = @_;
- $line =~ s/\s*\n?$//g;
- $line =~ s/^\s*//g;
+ if (open(my $words, '<', $file)) {
+ while (<$words>) {
+ my $line = $_;
- next if ($line =~ m/^\s*#/);
- next if ($line =~ m/^\s*$/);
- if ($line =~ /\s/) {
- print("$conststructsfile: '$line' invalid - ignored\n");
- next;
- }
+ $line =~ s/\s*\n?$//g;
+ $line =~ s/^\s*//g;
- $const_structs .= '|' if ($const_structs ne "");
- $const_structs .= $line;
+ next if ($line =~ m/^\s*#/);
+ next if ($line =~ m/^\s*$/);
+ if ($line =~ /\s/) {
+ print("$file: '$line' invalid - ignored\n");
+ next;
+ }
+
+ $$wordsRef .= '|' if ($$wordsRef ne "");
+ $$wordsRef .= $line;
+ }
+ close($file);
+ return 1;
}
- close($conststructsfile);
-} else {
- warn "No structs that should be const will be found - file '$conststructsfile': $!\n";
+
+ return 0;
}
+my $const_structs = "";
+read_words(\$const_structs, $conststructsfile)
+ or warn "No structs that should be const will be found - file '$conststructsfile': $!\n";
+
+my $typeOtherTypedefs = "";
+if (length($typedefsfile)) {
+ read_words(\$typeOtherTypedefs, $typedefsfile)
+ or warn "No additional types will be considered - file '$typedefsfile': $!\n";
+}
+$typeTypedefs .= '|' . $typeOtherTypedefs if ($typeOtherTypedefs ne "");
+
sub build_types {
my $mods = "(?x: \n" . join("|\n ", (@modifierList, @modifierListFile)) . "\n)";
my $all = "(?x: \n" . join("|\n ", (@typeList, @typeListFile)) . "\n)";
@@ -2195,8 +2213,7 @@ sub process {
}
#next;
}
- if ($rawline=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@(.*)/) {
- my $context = $4;
+ if ($rawline =~ /^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
$realline=$1-1;
if (defined $2) {
$realcnt=$3+1;
@@ -2205,12 +2222,6 @@ sub process {
}
$in_comment = 0;
- if ($context =~ /\b(\w+)\s*\(/) {
- $context_function = $1;
- } else {
- undef $context_function;
- }
-
# Guestimate if this is a continuing comment. Run
# the context looking for a comment "edge". If this
# edge is a close comment then we must be in a comment
@@ -2281,7 +2292,8 @@ sub process {
#extract the line range in the file after the patch is applied
if (!$in_commit_log &&
- $line =~ /^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
+ $line =~ /^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@(.*)/) {
+ my $context = $4;
$is_patch = 1;
$first_line = $linenr + 1;
$realline=$1-1;
@@ -2297,6 +2309,11 @@ sub process {
%suppress_whiletrailers = ();
%suppress_export = ();
$suppress_statement = 0;
+ if ($context =~ /\b(\w+)\s*\(/) {
+ $context_function = $1;
+ } else {
+ undef $context_function;
+ }
next;
# track the line number as we move through the hunk, note that
@@ -2539,6 +2556,7 @@ sub process {
# Check for git id commit length and improperly formed commit descriptions
if ($in_commit_log && !$commit_log_possible_stack_dump &&
$line !~ /^\s*(?:Link|Patchwork|http|https|BugLink):/i &&
+ $line !~ /^This reverts commit [0-9a-f]{7,40}/ &&
($line =~ /\bcommit\s+[0-9a-f]{5,}\b/i ||
($line =~ /(?:\s|^)[0-9a-f]{12,40}(?:[\s"'\(\[]|$)/i &&
$line !~ /[\<\[][0-9a-f]{12,40}[\>\]]/i &&
@@ -2628,8 +2646,8 @@ sub process {
# Check if it's the start of a commit log
# (not a header line and we haven't seen the patch filename)
if ($in_header_lines && $realfile =~ /^$/ &&
- !($rawline =~ /^\s+\S/ ||
- $rawline =~ /^(commit\b|from\b|[\w-]+:).*$/i)) {
+ !($rawline =~ /^\s+(?:\S|$)/ ||
+ $rawline =~ /^(?:commit\b|from\b|[\w-]+:)/i)) {
$in_header_lines = 0;
$in_commit_log = 1;
$has_commit_log = 1;
@@ -2757,13 +2775,6 @@ sub process {
#print "is_start<$is_start> is_end<$is_end> length<$length>\n";
}
-# discourage the addition of CONFIG_EXPERIMENTAL in Kconfig.
- if ($realfile =~ /Kconfig/ &&
- $line =~ /.\s*depends on\s+.*\bEXPERIMENTAL\b/) {
- WARN("CONFIG_EXPERIMENTAL",
- "Use of CONFIG_EXPERIMENTAL is deprecated. For alternatives, see https://lkml.org/lkml/2012/10/23/580\n");
- }
-
# discourage the use of boolean for type definition attributes of Kconfig options
if ($realfile =~ /Kconfig/ &&
$line =~ /^\+\s*\bboolean\b/) {
@@ -3133,6 +3144,17 @@ sub process {
# check we are in a valid C source file if not then ignore this hunk
next if ($realfile !~ /\.(h|c)$/);
+# check if this appears to be the start function declaration, save the name
+ if ($sline =~ /^\+\{\s*$/ &&
+ $prevline =~ /^\+(?:(?:(?:$Storage|$Inline)\s*)*\s*$Type\s*)?($Ident)\(/) {
+ $context_function = $1;
+ }
+
+# check if this appears to be the end of function declaration
+ if ($sline =~ /^\+\}\s*$/) {
+ undef $context_function;
+ }
+
# check indentation of any line with a bare else
# (but not if it is a multiple line "if (foo) return bar; else return baz;")
# if the previous line is a break or return and is indented 1 tab more...
@@ -3157,12 +3179,6 @@ sub process {
}
}
-# discourage the addition of CONFIG_EXPERIMENTAL in #if(def).
- if ($line =~ /^\+\s*\#\s*if.*\bCONFIG_EXPERIMENTAL\b/) {
- WARN("CONFIG_EXPERIMENTAL",
- "Use of CONFIG_EXPERIMENTAL is deprecated. For alternatives, see https://lkml.org/lkml/2012/10/23/580\n");
- }
-
# check for RCS/CVS revision markers
if ($rawline =~ /^\+.*\$(Revision|Log|Id)(?:\$|)/) {
WARN("CVS_KEYWORD",
@@ -3338,7 +3354,7 @@ sub process {
}
# Check relative indent for conditionals and blocks.
- if ($line =~ /\b(?:(?:if|while|for|(?:[a-z_]+|)for_each[a-z_]+)\s*\(|do\b)/ && $line !~ /^.\s*#/ && $line !~ /\}\s*while\s*/) {
+ if ($line =~ /\b(?:(?:if|while|for|(?:[a-z_]+|)for_each[a-z_]+)\s*\(|(?:do|else)\b)/ && $line !~ /^.\s*#/ && $line !~ /\}\s*while\s*/) {
($stat, $cond, $line_nr_next, $remain_next, $off_next) =
ctx_statement_block($linenr, $realcnt, 0)
if (!defined $stat);
@@ -3430,6 +3446,8 @@ sub process {
if ($check && $s ne '' &&
(($sindent % 8) != 0 ||
($sindent < $indent) ||
+ ($sindent == $indent &&
+ ($s !~ /^\s*(?:\}|\{|else\b)/)) ||
($sindent > $indent + 8))) {
WARN("SUSPECT_CODE_INDENT",
"suspect code indent for conditional statements ($indent, $sindent)\n" . $herecurr . "$stat_real\n");
@@ -4851,8 +4869,10 @@ sub process {
$dstat !~ /^\(\{/ && # ({...
$ctx !~ /^.\s*#\s*define\s+TRACE_(?:SYSTEM|INCLUDE_FILE|INCLUDE_PATH)\b/)
{
-
- if ($dstat =~ /;/) {
+ if ($dstat =~ /^\s*if\b/) {
+ ERROR("MULTISTATEMENT_MACRO_USE_DO_WHILE",
+ "Macros starting with if should be enclosed by a do - while loop to avoid possible if/else logic defects\n" . "$herectx");
+ } elsif ($dstat =~ /;/) {
ERROR("MULTISTATEMENT_MACRO_USE_DO_WHILE",
"Macros with multiple statements should be enclosed in a do - while loop\n" . "$herectx");
} else {
@@ -5174,14 +5194,16 @@ sub process {
"break quoted strings at a space character\n" . $hereprev);
}
-#check for an embedded function name in a string when the function is known
-# as part of a diff. This does not work for -f --file checking as it
-#depends on patch context providing the function name
+# check for an embedded function name in a string when the function is known
+# This does not work very well for -f --file checking as it depends on patch
+# context providing the function name or a single line form for in-file
+# function declarations
if ($line =~ /^\+.*$String/ &&
defined($context_function) &&
- get_quoted_string($line, $rawline) =~ /\b$context_function\b/) {
+ get_quoted_string($line, $rawline) =~ /\b$context_function\b/ &&
+ length(get_quoted_string($line, $rawline)) != (length($context_function) + 2)) {
WARN("EMBEDDED_FUNCTION_NAME",
- "Prefer using \"%s\", __func__ to embedded function names\n" . $herecurr);
+ "Prefer using '\"%s...\", __func__' to using '$context_function', this function's name, in a string\n" . $herecurr);
}
# check for spaces before a quoted newline
@@ -5676,6 +5698,32 @@ sub process {
}
}
+ # check for vsprintf extension %p<foo> misuses
+ if ($^V && $^V ge 5.10.0 &&
+ defined $stat &&
+ $stat =~ /^\+(?![^\{]*\{\s*).*\b(\w+)\s*\(.*$String\s*,/s &&
+ $1 !~ /^_*volatile_*$/) {
+ my $bad_extension = "";
+ my $lc = $stat =~ tr@\n@@;
+ $lc = $lc + $linenr;
+ for (my $count = $linenr; $count <= $lc; $count++) {
+ my $fmt = get_quoted_string($lines[$count - 1], raw_line($count, 0));
+ $fmt =~ s/%%//g;
+ if ($fmt =~ /(\%[\*\d\.]*p(?![\WFfSsBKRraEhMmIiUDdgVCbGN]).)/) {
+ $bad_extension = $1;
+ last;
+ }
+ }
+ if ($bad_extension ne "") {
+ my $stat_real = raw_line($linenr, 0);
+ for (my $count = $linenr + 1; $count <= $lc; $count++) {
+ $stat_real = $stat_real . "\n" . raw_line($count, 0);
+ }
+ WARN("VSPRINTF_POINTER_EXTENSION",
+ "Invalid vsprintf pointer extension '$bad_extension'\n" . "$here\n$stat_real\n");
+ }
+ }
+
# Check for misused memsets
if ($^V && $^V ge 5.10.0 &&
defined $stat &&
@@ -5893,7 +5941,8 @@ sub process {
# check for k[mz]alloc with multiplies that could be kmalloc_array/kcalloc
if ($^V && $^V ge 5.10.0 &&
- $line =~ /\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)\s*,/) {
+ defined $stat &&
+ $stat =~ /^\+\s*($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)\s*,/) {
my $oldfunc = $3;
my $a1 = $4;
my $a2 = $10;
@@ -5907,11 +5956,17 @@ sub process {
}
if ($r1 !~ /^sizeof\b/ && $r2 =~ /^sizeof\s*\S/ &&
!($r1 =~ /^$Constant$/ || $r1 =~ /^[A-Z_][A-Z0-9_]*$/)) {
+ my $ctx = '';
+ my $herectx = $here . "\n";
+ my $cnt = statement_rawlines($stat);
+ for (my $n = 0; $n < $cnt; $n++) {
+ $herectx .= raw_line($linenr, $n) . "\n";
+ }
if (WARN("ALLOC_WITH_MULTIPLY",
- "Prefer $newfunc over $oldfunc with multiply\n" . $herecurr) &&
+ "Prefer $newfunc over $oldfunc with multiply\n" . $herectx) &&
+ $cnt == 1 &&
$fix) {
$fixed[$fixlinenr] =~ s/\b($Lval)\s*\=\s*(?:$balanced_parens)?\s*(k[mz]alloc)\s*\(\s*($FuncArg)\s*\*\s*($FuncArg)/$1 . ' = ' . "$newfunc(" . trim($r1) . ', ' . trim($r2)/e;
-
}
}
}
@@ -6066,11 +6121,11 @@ sub process {
}
# check for various structs that are normally const (ops, kgdb, device_tree)
+# and avoid what seem like struct definitions 'struct foo {'
if ($line !~ /\bconst\b/ &&
- $line =~ /\bstruct\s+($const_structs)\b/) {
+ $line =~ /\bstruct\s+($const_structs)\b(?!\s*\{)/) {
WARN("CONST_STRUCT",
- "struct $1 should normally be const\n" .
- $herecurr);
+ "struct $1 should normally be const\n" . $herecurr);
}
# use of NR_CPUS is usually wrong
diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
index 5adfc8f52b4f..4b72b530c84f 100644
--- a/scripts/dtc/checks.c
+++ b/scripts/dtc/checks.c
@@ -873,7 +873,7 @@ static void check_simple_bus_reg(struct check *c, struct dt_info *dti, struct no
while (size--)
reg = (reg << 32) | fdt32_to_cpu(*(cells++));
- snprintf(unit_addr, sizeof(unit_addr), "%lx", reg);
+ snprintf(unit_addr, sizeof(unit_addr), "%zx", reg);
if (!streq(unitname, unit_addr))
FAIL(c, dti, "Node %s simple-bus unit address format error, expected \"%s\"",
node->fullpath, unit_addr);
diff --git a/scripts/dtc/include-prefixes/arc b/scripts/dtc/include-prefixes/arc
new file mode 120000
index 000000000000..5d21b5a69a11
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arc
@@ -0,0 +1 @@
+../../../arch/arc/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/arm b/scripts/dtc/include-prefixes/arm
new file mode 120000
index 000000000000..eb14d4515a57
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arm
@@ -0,0 +1 @@
+../../../arch/arm/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/arm64 b/scripts/dtc/include-prefixes/arm64
new file mode 120000
index 000000000000..275c42c21d71
--- /dev/null
+++ b/scripts/dtc/include-prefixes/arm64
@@ -0,0 +1 @@
+../../../arch/arm64/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/c6x b/scripts/dtc/include-prefixes/c6x
new file mode 120000
index 000000000000..49ded4cae2be
--- /dev/null
+++ b/scripts/dtc/include-prefixes/c6x
@@ -0,0 +1 @@
+../../../arch/c6x/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/cris b/scripts/dtc/include-prefixes/cris
new file mode 120000
index 000000000000..736d998ba506
--- /dev/null
+++ b/scripts/dtc/include-prefixes/cris
@@ -0,0 +1 @@
+../../../arch/cris/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/dt-bindings b/scripts/dtc/include-prefixes/dt-bindings
new file mode 120000
index 000000000000..04fdbb3af016
--- /dev/null
+++ b/scripts/dtc/include-prefixes/dt-bindings
@@ -0,0 +1 @@
+../../../include/dt-bindings \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/h8300 b/scripts/dtc/include-prefixes/h8300
new file mode 120000
index 000000000000..3bdaa332c54c
--- /dev/null
+++ b/scripts/dtc/include-prefixes/h8300
@@ -0,0 +1 @@
+../../../arch/h8300/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/metag b/scripts/dtc/include-prefixes/metag
new file mode 120000
index 000000000000..87a3c847db8f
--- /dev/null
+++ b/scripts/dtc/include-prefixes/metag
@@ -0,0 +1 @@
+../../../arch/metag/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/microblaze b/scripts/dtc/include-prefixes/microblaze
new file mode 120000
index 000000000000..d9830330a21d
--- /dev/null
+++ b/scripts/dtc/include-prefixes/microblaze
@@ -0,0 +1 @@
+../../../arch/microblaze/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/mips b/scripts/dtc/include-prefixes/mips
new file mode 120000
index 000000000000..ae8d4948dc8d
--- /dev/null
+++ b/scripts/dtc/include-prefixes/mips
@@ -0,0 +1 @@
+../../../arch/mips/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/nios2 b/scripts/dtc/include-prefixes/nios2
new file mode 120000
index 000000000000..51772336d13f
--- /dev/null
+++ b/scripts/dtc/include-prefixes/nios2
@@ -0,0 +1 @@
+../../../arch/nios2/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/openrisc b/scripts/dtc/include-prefixes/openrisc
new file mode 120000
index 000000000000..71c3bc75c560
--- /dev/null
+++ b/scripts/dtc/include-prefixes/openrisc
@@ -0,0 +1 @@
+../../../arch/openrisc/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/powerpc b/scripts/dtc/include-prefixes/powerpc
new file mode 120000
index 000000000000..7cd6ec16e899
--- /dev/null
+++ b/scripts/dtc/include-prefixes/powerpc
@@ -0,0 +1 @@
+../../../arch/powerpc/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/sh b/scripts/dtc/include-prefixes/sh
new file mode 120000
index 000000000000..67d37808c599
--- /dev/null
+++ b/scripts/dtc/include-prefixes/sh
@@ -0,0 +1 @@
+../../../arch/sh/boot/dts \ No newline at end of file
diff --git a/scripts/dtc/include-prefixes/xtensa b/scripts/dtc/include-prefixes/xtensa
new file mode 120000
index 000000000000..d1eaf6ec7a2b
--- /dev/null
+++ b/scripts/dtc/include-prefixes/xtensa
@@ -0,0 +1 @@
+../../../arch/xtensa/boot/dts \ No newline at end of file
diff --git a/scripts/gdb/linux/dmesg.py b/scripts/gdb/linux/dmesg.py
index f9b92ece7834..5afd1098e33a 100644
--- a/scripts/gdb/linux/dmesg.py
+++ b/scripts/gdb/linux/dmesg.py
@@ -23,10 +23,11 @@ class LxDmesg(gdb.Command):
super(LxDmesg, self).__init__("lx-dmesg", gdb.COMMAND_DATA)
def invoke(self, arg, from_tty):
- log_buf_addr = int(str(gdb.parse_and_eval("log_buf")).split()[0], 16)
- log_first_idx = int(gdb.parse_and_eval("log_first_idx"))
- log_next_idx = int(gdb.parse_and_eval("log_next_idx"))
- log_buf_len = int(gdb.parse_and_eval("log_buf_len"))
+ log_buf_addr = int(str(gdb.parse_and_eval(
+ "'printk.c'::log_buf")).split()[0], 16)
+ log_first_idx = int(gdb.parse_and_eval("'printk.c'::log_first_idx"))
+ log_next_idx = int(gdb.parse_and_eval("'printk.c'::log_next_idx"))
+ log_buf_len = int(gdb.parse_and_eval("'printk.c'::log_buf_len"))
inf = gdb.inferiors()[0]
start = log_buf_addr + log_first_idx
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
/* 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 4fba255e54ae..00a6d7e54971 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 19d9bcadc0cc..b497d9764dcf 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
diff --git a/scripts/objdiff b/scripts/objdiff
index 62e51dae2138..4fb5d6796893 100755
--- a/scripts/objdiff
+++ b/scripts/objdiff
@@ -57,13 +57,15 @@ get_output_dir() {
do_objdump() {
dir=$(get_output_dir $1)
base=${1##*/}
+ stripped=$dir/${base%.o}.stripped
dis=$dir/${base%.o}.dis
[ ! -d "$dir" ] && mkdir -p $dir
# remove addresses for a cleaner diff
# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
- $OBJDUMP -D $1 | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
+ $STRIP -g $1 -R __bug_table -R .note -R .comment -o $stripped
+ $OBJDUMP -D $stripped | sed -e "s/^[[:space:]]\+[0-9a-f]\+//" -e "s:^$stripped:$1:" > $dis
}
dorecord() {
@@ -73,6 +75,7 @@ dorecord() {
CMT="`git rev-parse --short HEAD`"
+ STRIP="${CROSS_COMPILE}strip"
OBJDUMP="${CROSS_COMPILE}objdump"
for d in $FILES; do
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 676fc10c9514..aad67000e4dd 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -69,7 +69,7 @@ set_debarch() {
echo "" >&2
echo "** ** ** WARNING ** ** **" >&2
echo "" >&2
- echo "Your architecture doesn't have it's equivalent" >&2
+ echo "Your architecture doesn't have its equivalent" >&2
echo "Debian userspace architecture defined!" >&2
echo "Falling back to using your current userspace instead!" >&2
echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
@@ -143,12 +143,7 @@ else
cp System.map "$tmpdir/boot/System.map-$version"
cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version"
fi
-# Not all arches include the boot path in KBUILD_IMAGE
-if [ -e $KBUILD_IMAGE ]; then
- cp $KBUILD_IMAGE "$tmpdir/$installed_image_path"
-else
- cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path"
-fi
+cp "$($MAKE -s image_name)" "$tmpdir/$installed_image_path"
if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then
# Only some architectures with OF support have this target
@@ -265,7 +260,7 @@ This is a packacked upstream version of the Linux kernel.
The sources may be found at most Linux archive sites, including:
https://www.kernel.org/pub/linux/kernel
-Copyright: 1991 - 2015 Linus Torvalds and others.
+Copyright: 1991 - 2017 Linus Torvalds and others.
The git repository for mainline kernel development is at:
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
@@ -288,7 +283,6 @@ Section: kernel
Priority: optional
Maintainer: $maintainer
Build-Depends: $build_depends
-Standards-Version: 3.8.4
Homepage: http://www.kernel.org/
EOF
@@ -296,7 +290,6 @@ if [ "$ARCH" = "um" ]; then
cat <<EOF >> debian/control
Package: $packagename
-Provides: linux-image, linux-image-2.6, linux-modules-$version
Architecture: any
Description: User Mode Linux kernel, version $version
User-mode Linux is a port of the Linux kernel to its own system call
@@ -313,7 +306,6 @@ else
cat <<EOF >> debian/control
Package: $packagename
-Provides: linux-image, linux-image-2.6, linux-modules-$version
Suggests: $fwpackagename
Architecture: any
Description: Linux kernel, version $version
@@ -346,7 +338,6 @@ rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
cat <<EOF >> debian/control
Package: $kernel_headers_packagename
-Provides: linux-headers, linux-headers-2.6
Architecture: any
Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch}
This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch}
@@ -404,7 +395,6 @@ if [ -n "$BUILD_DEBUG" ] ; then
Package: $dbg_packagename
Section: debug
-Provides: linux-debug, linux-debug-$version
Architecture: any
Description: Linux kernel debugging symbols for $version
This package will come in handy if you need to debug the kernel. It provides
diff --git a/scripts/spelling.txt b/scripts/spelling.txt
index b67e74b22826..eb38f49d4b75 100644
--- a/scripts/spelling.txt
+++ b/scripts/spelling.txt
@@ -179,6 +179,7 @@ bakup||backup
baloon||balloon
baloons||balloons
bandwith||bandwidth
+banlance||balance
batery||battery
beacuse||because
becasue||because
@@ -375,6 +376,8 @@ dictionnary||dictionary
didnt||didn't
diferent||different
differrence||difference
+diffrent||different
+diffrentiate||differentiate
difinition||definition
diplay||display
direectly||directly
@@ -605,6 +608,9 @@ interruptted||interrupted
interupted||interrupted
interupt||interrupt
intial||initial
+intialisation||initialisation
+intialised||initialised
+intialise||initialise
intialization||initialization
intialized||initialized
intialize||initialize
@@ -691,6 +697,7 @@ miximum||maximum
mmnemonic||mnemonic
mnay||many
modulues||modules
+momery||memory
monochorome||monochrome
monochromo||monochrome
monocrome||monochrome
@@ -890,6 +897,7 @@ registerd||registered
registeresd||registered
registes||registers
registraration||registration
+regsiter||register
regster||register
regualar||regular
reguator||regulator
OpenPOWER on IntegriCloud