From: Greg Kroah-Hartman Date: Thu, 10 Apr 2014 16:00:26 +0000 (-0700) Subject: 3.10-stable patches X-Git-Tag: v3.10.37~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=09cc1b27890d11729e05396f335b14792a526fdb;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches added patches: kbuild-fix-make-headers_install-when-path-is-too-long.patch --- diff --git a/queue-3.10/kbuild-fix-make-headers_install-when-path-is-too-long.patch b/queue-3.10/kbuild-fix-make-headers_install-when-path-is-too-long.patch new file mode 100644 index 00000000000..05cf76b1986 --- /dev/null +++ b/queue-3.10/kbuild-fix-make-headers_install-when-path-is-too-long.patch @@ -0,0 +1,122 @@ +From c0ff68f1611d6855a06d672989ad5cfea160a4eb Mon Sep 17 00:00:00 2001 +From: Nicolas Dichtel +Date: Mon, 29 Apr 2013 14:15:51 +0200 +Subject: kbuild: fix make headers_install when path is too long + +From: Nicolas Dichtel + +commit c0ff68f1611d6855a06d672989ad5cfea160a4eb upstream. + +If headers_install is executed from a deep/long directory structure, the +shell's maximum argument length can be execeeded, which breaks the operation +with: + +| make[2]: execvp: /bin/sh: Argument list too long +| make[2]: *** + +Instead of passing each files name with the entire path, I give only the file +name without the source path and give this path as a new argument to +headers_install.pl. + +Because there is three possible paths, I have tree input-files list, one per +path. + +Signed-off-by: Nicolas Dichtel +Tested-by: Bruce Ashfield +Signed-off-by: Michal Marek +Cc: Wang Nan +Signed-off-by: Greg Kroah-Hartman + +--- + scripts/Makefile.headersinst | 20 ++++++++++++++------ + scripts/headers_install.sh | 7 +++++-- + 2 files changed, 19 insertions(+), 8 deletions(-) + +--- a/scripts/Makefile.headersinst ++++ b/scripts/Makefile.headersinst +@@ -47,18 +47,24 @@ header-y := $(filter-out $(generic- + all-files := $(header-y) $(genhdr-y) $(wrapper-files) + output-files := $(addprefix $(installdir)/, $(all-files)) + +-input-files := $(foreach hdr, $(header-y), \ ++input-files1 := $(foreach hdr, $(header-y), \ + $(if $(wildcard $(srcdir)/$(hdr)), \ +- $(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))) \ +- )) \ +- $(foreach hdr, $(genhdr-y), \ ++ )) ++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)) + + # Work out what needs to be removed + oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h)) +@@ -72,7 +78,9 @@ printdir = $(patsubst $(INSTALL_HDR_PATH + quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\ + file$(if $(word 2, $(all-files)),s)) + cmd_install = \ +- $(CONFIG_SHELL) $< $(installdir) $(input-files); \ ++ $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(input-files1-name); \ ++ $(CONFIG_SHELL) $< $(installdir) $(oldsrcdir) $(input-files2-name); \ ++ $(CONFIG_SHELL) $< $(installdir) $(gendir) $(input-files3-name); \ + for F in $(wrapper-files); do \ + echo "\#include " > $(installdir)/$$F; \ + done; \ +@@ -98,7 +106,7 @@ __headersinst: $(subdirs) $(install-file + @: + + targets += $(install-file) +-$(install-file): scripts/headers_install.sh $(input-files) FORCE ++$(install-file): scripts/headers_install.sh $(input-files1) $(input-files2) $(input-files3) FORCE + $(if $(unwanted),$(call cmd,remove),) + $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@))) + $(call if_changed,install) +--- a/scripts/headers_install.sh ++++ b/scripts/headers_install.sh +@@ -2,7 +2,7 @@ + + if [ $# -lt 1 ] + then +- echo "Usage: headers_install.sh OUTDIR [FILES...] ++ echo "Usage: headers_install.sh OUTDIR SRCDIR [FILES...] + echo + echo "Prepares kernel header files for use by user space, by removing" + echo "all compiler.h definitions and #includes, removing any" +@@ -10,6 +10,7 @@ then + echo "asm/inline/volatile keywords." + echo + echo "OUTDIR: directory to write each userspace header FILE to." ++ echo "SRCDIR: source directory where files are picked." + echo "FILES: list of header files to operate on." + + exit 1 +@@ -19,6 +20,8 @@ fi + + OUTDIR="$1" + shift ++SRCDIR="$1" ++shift + + # Iterate through files listed on command line + +@@ -34,7 +37,7 @@ do + -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \ + -e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \ + -e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' \ +- "$i" > "$OUTDIR/$FILE.sed" || exit 1 ++ "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || exit 1 + scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \ + > "$OUTDIR/$FILE" + [ $? -gt 1 ] && exit 1 diff --git a/queue-3.10/series b/queue-3.10/series index 0dc05c05abc..728ba971f85 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -2,3 +2,4 @@ selinux-correctly-label-proc-inodes-in-use-before-the-policy-is-loaded.patch powernow-k6-disable-cache-when-changing-frequency.patch powernow-k6-correctly-initialize-default-parameters.patch powernow-k6-reorder-frequencies.patch +kbuild-fix-make-headers_install-when-path-is-too-long.patch