[U-Boot] [PATCH] build:arm: Remove setting of CROSS_COMPILE environment variable

Lukasz Majewski l.majewski at samsung.com
Wed Mar 19 08:04:35 CET 2014


Hi Masahiro,

> Hi Lukasz, Tom,
> 
> 
> > Hi Tom,
> > 
> > > On Tue, Mar 18, 2014 at 04:46:48PM +0100, Lukasz Majewski wrote:
> > > 
> > > > After Kbuild introduction, the CROSS_COMPILE environment
> > > > variable has been set to some default value (prefix arm-linux-).
> > > 
> > > Note that this is quite a long-standing thing.  Perhaps we're now
> > > not detecting a native build when we used to?
> > 
> > My point is that we are relying on assigning default prefix (i.e.
> > arm-linux-)
> > 
> > For example OSELAS toolchains can have an arbitrary prefix
> > (e.g. arm-linux-gnueabi-).
> > 
> > When I cross compile I set explicitly "CROSS_COMPILE=<toolchain>
> > make" and it works as it should (with or without this patch). Such
> > approach seems natural for me.
> >
> > However, I don't know what is the exact rationale for seting this
> > arm-linux- prefix to CROSS_COMPILE.
> > I can only guess, that it is connected with situation when one just
> > type "make" on x86_64 host and expect u-boot to be CROSS_COMPILE'd
> > out of the box.
> 
> Agree.
> It is useful only for people using "arm-linux-gcc" on x86 host.
> I usually use "arm-linux-gnueabi-gcc". Someone else may be using other
> prefixes.
> 
> I think there is no rationale more sophisticated than that it just has
> been there since long time before.
> 
> So, I agree with this patch except a little misleading
> commit description I commented below.
> 
> Acked-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
> 

Thanks for review.

> 
> 
> > Unfortunately this doesn't work with ARM host emulated with qemu
> > (like OBS). Here when I type "make" I expect that "native" gcc for
> > arm will run without even touching CROSS_COMPILE environment
> > variable.
> 
> I believe it is the same as prior to Kbuild.
> 
> So, I am not convined with this part of your commit description:
> > After Kbuild introduction, the CROSS_COMPILE environment variable
> > has been set to some default value (prefix arm-linux-).
> 
> 
> > Any idea how to fix this is more than welcome.
> 
> If you are searching some other choices,
> 
> 
> [1]
> ifneq ("$(origin CROSS_COMPILE)", "command line")
> ifeq ($(CROSS_COMPILE),)
> CROSS_COMPILE := arm-linux-
> endif
> endif
> 
> For native build on ARM, you can explicitely set CROSS_COMPILE as
> empty:    "make CROSS_COMPILE="
> In this case, CROSS_COMPILE will not be overwritten in
> arch/arm/config.mk.
> 
> 
> [2]
> ifneq ($(HOSTARCH),$(ARCH))
> ifeq ($(CROSS_COMPILE),)
> CROSS_COMPILE := arm-linux-
> endif
> endif
> 
> For native build on ARM, both $(HOSTARCH) and $(ARCH)
> are "arm", so CROSS_COMPILE will not be set.
> 
> 
> 
> But, I think deleting CROSS_COMPILE setting is the simplest and the
> best.

Ok, lets stick to this solution.

> 
> 
> Best Regards
> Masahiro Yamada
> 



-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list