[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#833561: arm64: dtbs no longer installed in vendor subdir



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


Reply to: