diff --git a/debian/changelog b/debian/changelog index e0c3169ec..d894489c7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ linux (4.9.13-2) UNRELEASED; urgency=medium * [media] dvb-usb: don't use stack for firmware load or reset (Closes: #853894) + * Kbuild.include: addtree: Remove quotes before matching path + (regression in 4.8) (Closes: #856474) -- Ben Hutchings Wed, 01 Mar 2017 15:42:54 +0000 diff --git a/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch b/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch new file mode 100644 index 000000000..46d73f423 --- /dev/null +++ b/debian/patches/bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch @@ -0,0 +1,39 @@ +From: Ben Hutchings +Date: Sat, 04 Mar 2017 01:44:15 +0000 +Subject: Kbuild.include: addtree: Remove quotes before matching path +Bug-Debian: https://bugs.debian.org/856474 + +systemtap currently fails to build modules when the kernel source and +object trees are separate. + +systemtap adds something like -I"/usr/share/systemtap/runtime" to +EXTRA_CFLAGS, and addtree should not adjust this as it's specifying an +absolute directory. But since make has no understanding of shell +quoting, it does anyway. + +For a long time this didn't matter, because addtree would still emit +the original -I option after the adjusted one. However, commit +db547ef19064 ("Kbuild: don't add obj tree in additional includes") +changed it to remove the original -I option. + +Remove quotes (both double and single) before matching against the +excluded patterns. + +References: https://bugs.debian.org/856474 +Reported-by: Jack Henschel +Reported-by: Ritesh Raj Sarraf +Fixes: db547ef19064 ("Kbuild: don't add obj tree in additional includes") +Cc: stable@vger.kernel.org # 4.8+ +Signed-off-by: Ben Hutchings +--- +--- a/scripts/Kbuild.include ++++ b/scripts/Kbuild.include +@@ -207,7 +207,7 @@ hdr-inst := -f $(srctree)/scripts/Makefi + # Prefix -I with $(srctree) if it is not an absolute path. + # skip if -I has no parameter + addtree = $(if $(patsubst -I%,%,$(1)), \ +-$(if $(filter-out -I/% -I./% -I../%,$(1)),$(patsubst -I%,-I$(srctree)/%,$(1)),$(1))) ++$(if $(filter-out -I/% -I./% -I../%,$(subst $(quote),,$(subst $(squote),,$(1)))),$(patsubst -I%,-I$(srctree)/%,$(1)),$(1))) + + # Find all -I options and call addtree + flags = $(foreach o,$($(1)),$(if $(filter -I%,$(o)),$(call addtree,$(o)),$(o))) diff --git a/debian/patches/series b/debian/patches/series index e382e8758..d627088f4 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -81,6 +81,7 @@ bugfix/all/net-ipv6-check-route-protocol-when-deleting-routes.patch bugfix/all/media-dvb-usb-dibusb-mc-common-add-module_license.patch bugfix/all/media-dvb-usb-don-t-use-stack-for-firmware-load.patch bugfix/all/media-dvb-usb-don-t-use-stack-for-reset-either.patch +bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch # Miscellaneous features