Re: [BUG] perf cross-compile error dual to fixdep not host-exe

From: He Kuang
Date: Thu Oct 08 2015 - 04:18:28 EST


hi, Jirka

On 2015/9/30 14:13, Jiri Olsa wrote:
On Wed, Sep 30, 2015 at 11:18:20AM +0800, He Kuang wrote:
Hi,

perf cross-compile error dual to fixdep is not a host executable, first bad commit
is 7c422f557266("tools build: Build fixdep helper from perf and basic libs")

Cross-compiling an aarch64 target on x86_64 host, error like this:

$ make ARCH=aarch64 O=xx/aarch64 CROSS_COMPILE=aarch64-linux-gnu
...
make[3]: *** [xx/aarch64/parse-utils.o] Error 126
make[3]: *** Waiting for unfinished jobs....
/bin/sh: xx/aarch64//fixdep: cannot execute binary file

$ uname -a
x86_64 x86_64 x86_64 GNU/Linux

$ file xx/aarch64//fixdep
xx/aarch64//fixdep : ELF 64-bit LSB executable, ARM aarch64, version 1
(SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for
GNU/Linux 3.7.0, not stripped

hum, we need fixdep to stay the host arch.. I should have seen it :-\
could you please check attached patch?

thanks,
jirka


It does not work, 'fixdep' still be compiled as target executable.

Thank you.


---
diff --git a/tools/build/Makefile b/tools/build/Makefile
index a93036272d43..648897694992 100644
--- a/tools/build/Makefile
+++ b/tools/build/Makefile
@@ -5,15 +5,6 @@ endif

include $(srctree)/tools//scripts/Makefile.include

-define allow-override
- $(if $(or $(findstring environment,$(origin $(1))),\
- $(findstring command line,$(origin $(1)))),,\
- $(eval $(1) = $(2)))
-endef
-
-$(call allow-override,CC,$(CROSS_COMPILE)gcc)
-$(call allow-override,LD,$(CROSS_COMPILE)ld)
-
ifeq ($(V),1)
Q =
else


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/