On Sat, 06 Aug 2016 11:38:21 +0100 Ian Campbell <ijc@debian.org> wrote: [...] > Or similar to your original: > > $ make -n -C debian/build/build_arm64_none_arm64/ dtbs_install INSTALL_DTBS_PATH=$HOME/tmp/dtbs V=1 | head -n 15 > make: Entering directory '/local/scratch/ijc/development/debian/pkg-kernel/master.git/debian/build/build_arm64_none_arm64' > make -C /local/scratch/ijc/development/debian/pkg-kernel/master.git O=/local/scratch/ijc/development/debian/pkg-kernel/master.git/debian/build/build_arm64_none_arm64/. dtbs_install > make -C /local/scratch/ijc/development/debian/pkg-kernel/master.git/debian/build/build_arm64_none_arm64 KBUILD_SRC=/local/scratch/ijc/development/debian/pkg-kernel/master.git \ > -f /local/scratch/ijc/development/debian/pkg-kernel/master.git/Makefile dtbs_install > /local/scratch/ijc/development/debian/pkg-kernel/master.git/Makefile:681: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler I can reproduce this by running: debian/rules setup /usr/bin/make -C debian/build/build_arm64_none_arm64 dtbs /usr/bin/make -C debian/build/build_arm64_none_arm64 dtbs_install INSTALL_DTBS_PATH=$PWD/debian/linux-image-4.7.0-rc7-arm64-unsigned/usr/lib/linux-image-4.7.0-rc7-arm64 The problem is with this definition in Makefile.dtbinst: export dtbinst-root ?= $(obj) This should define and export dtbinst-root when handling the root dts directory, and do nothing in the subdirectories. But it does not get exported to the environment, probably because it contains a hyphen. It does somehow get through to a sub-make if and only if we perform an in- tree build, but the Debian package always does out-of-tree builds. This looks like a bug in make, but we can at least work around it by using a non-hyphenated variable name. The current make documentation says that: "Except by explicit request, 'make' exports a variable only if it is either defined in the environment initially or set on the command line, and if its name consists only of letters, numbers, and underscores. Some shells cannot cope with environment variable names consisting of characters other than letters, numbers, and underscores." That implies that an explicit export of a variable whose name contains a hyphen should be OK. Ben. -- Ben Hutchings Editing code like this is akin to sticking plasters on the bleeding stump of a severed limb. - me, 29 June 1999
Attachment:
signature.asc
Description: This is a digitally signed message part