build: Fix cross compile build

From: Jiri Olsa
Date: Tue Oct 13 2015 - 08:44:30 EST


On Thu, Oct 08, 2015 at 10:30:04AM +0200, Jiri Olsa wrote:
> On Thu, Oct 08, 2015 at 04:02:48PM +0800, He Kuang wrote:
> > 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.
>
> could you please provide output from that build with 'JOBS=1 V=1'
>
> last chance before I kick myself to actualy setup cross compiling :-\
>
> thanks,
> jirka

posting patch for the issue

thanks,
jirka


---
He Kuang the new fixdep tool breaks cross compiling. The reason
is it wouldn't get compiled under host arch, but under cross arch
and failed to run.

We need to add support for host side tools build, meanwhile
disabling fixdep usage for cross arch builds.

Reported-by: He Kuang <hekuang@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-3h8xhjd858qf03mnqbmzfvgl@xxxxxxxxxxxxxx
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
---
tools/build/Makefile.include | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/build/Makefile.include b/tools/build/Makefile.include
index 6572bb023543..4e09ad617a60 100644
--- a/tools/build/Makefile.include
+++ b/tools/build/Makefile.include
@@ -1,6 +1,10 @@
build := -f $(srctree)/tools/build/Makefile.build dir=. obj

+ifdef CROSS_COMPILE
+fixdep:
+else
fixdep:
$(Q)$(MAKE) -C $(srctree)/tools/build fixdep
+endif

.PHONY: fixdep
--
2.4.3

--
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/