From mboxrd@z Thu Jan 1 00:00:00 1970 From: Masahiro Yamada Date: Wed, 19 Mar 2014 11:55:35 +0900 Subject: [U-Boot] [PATCH] build:arm: Remove setting of CROSS_COMPILE environment variable In-Reply-To: <20140318230939.62536707@jawa> References: <20140318162248.GC16360@bill-the-cat> <20140318230939.62536707@jawa> Message-ID: <20140319115535.7A59.AA925319@jp.panasonic.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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= 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 > 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. Best Regards Masahiro Yamada