kexec: fix build when BR2_STRIP_none=y
authorMarcin Nowakowski <marcin.nowakowski@imgtec.com>
Fri, 2 Dec 2016 11:51:57 +0000 (12:51 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 2 Dec 2016 16:12:27 +0000 (17:12 +0100)
When BR2_STRIP is set to none, a dummy 'true' app is used instead of
strip utility. However, kexec package always requires a real strip
executable as it is used to generate intermediate files during the build
process.

If 'true' is used the build system runs the following command:

true --strip-debug -o purgatory/purgatory.ro purgatory/purgatory.ro.sym

which obviously doesn't do anything useful and the build later fails
with:

bin/bin-to-hex purgatory < purgatory/purgatory.ro > kexec/purgatory.c
/bin/sh: purgatory/purgatory.ro: No such file or directory
kexec/Makefile:7: recipe for target 'kexec/purgatory.c' failed
make[2]: *** [kexec/purgatory.c] Error 1

To resolve it always specify STRIP=$(CROSS_COMPILE)strip, regardless of
buildroot configuration.

[Peter: add a comment explaining why this is done]
Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/kexec/kexec.mk

index 4ca55e5bc38bb2e8db69eb6e46d0bc88d22b395c..0a7436978548bd44a2e644871bcd47ffd83eacd0 100644 (file)
@@ -10,6 +10,9 @@ KEXEC_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kernel/kexec
 KEXEC_LICENSE = GPLv2
 KEXEC_LICENSE_FILES = COPYING
 
+# Makefile expects $STRIP -o to work, so needed for BR2_STRIP_none
+KEXEC_MAKE_OPTS = STRIP="$(TARGET_CROSS)strip"
+
 ifeq ($(BR2_PACKAGE_KEXEC_ZLIB),y)
 KEXEC_CONF_OPTS += --with-zlib
 KEXEC_DEPENDENCIES = zlib