Message ID | 1395157608-18834-1-git-send-email-l.majewski@samsung.com |
---|---|
State | Accepted |
Delegated to: | Albert ARIBAUD |
Headers | show |
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?
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. 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. Any idea how to fix this is more than welcome. Best regards, Lukasz Majewski
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@jp.panasonic.com> > 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
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@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 >
Hi Albert, > 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@jp.panasonic.com> > Albert, could you take this patch for your arm repository? > > > > 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 >
Hi Lukasz, On Tue, 25 Mar 2014 09:55:45 +0100, Lukasz Majewski <l.majewski@samsung.com> wrote: > Hi Albert, > > > 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@jp.panasonic.com> > > > > Albert, could you take this patch for your arm repository? I can. How would you like me to rephrase the commit message? Amicalement,
Hi Albert, > Hi Lukasz, > > On Tue, 25 Mar 2014 09:55:45 +0100, Lukasz Majewski > <l.majewski@samsung.com> wrote: > > > Hi Albert, > > > > > 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@jp.panasonic.com> > > > > > > > Albert, could you take this patch for your arm repository? > > I can. How would you like me to rephrase the commit message? Maybe something like this: -- 8< -- For building u-boot on ARM the CROSS_COMPILE environment variable, when not defined, was set to default value (prefix arm-linux-). Since not all cross compilers have the arm-linux- prefix and this setting prevents from building u-boot on natively arm powered devices it would be best to remove it. As a side note: The most universal way to cross compile u-boot is to specify the CROSS_COMPILE environment variable explicitly - e.g.: CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make -- >8 -- And also please add the Acked-by from Masahiro. > > Amicalement, Thanks a lot for your support.
Hi Albert, > Hi Albert, > > > Hi Lukasz, > > > > On Tue, 25 Mar 2014 09:55:45 +0100, Lukasz Majewski > > <l.majewski@samsung.com> wrote: > > > > > Hi Albert, > > > > > > > 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@jp.panasonic.com> > > > > > > > > > > Albert, could you take this patch for your arm repository? > > > > I can. How would you like me to rephrase the commit message? > > Maybe something like this: > > -- 8< -- > For building u-boot on ARM the CROSS_COMPILE environment variable, > when not defined, was set to default value (prefix arm-linux-). > > Since not all cross compilers have the arm-linux- prefix and this > setting prevents from building u-boot on natively arm powered devices > it would be best to remove it. > > As a side note: > The most universal way to cross compile u-boot is to > specify the CROSS_COMPILE environment variable explicitly - e.g.: > CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make > > -- >8 -- > > And also please add the Acked-by from Masahiro. Albert, do you need any more support to pull this patch to u-boot-arm branch? > > > > > Amicalement, > > Thanks a lot for your support. >
Hi Albert, > Hi Albert, > > > Hi Albert, > > > > > Hi Lukasz, > > > > > > On Tue, 25 Mar 2014 09:55:45 +0100, Lukasz Majewski > > > <l.majewski@samsung.com> wrote: > > > > > > > Hi Albert, > > > > > > > > > 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@jp.panasonic.com> > > > > > > > > > > > > > Albert, could you take this patch for your arm repository? > > > > > > I can. How would you like me to rephrase the commit message? > > > > Maybe something like this: > > > > -- 8< -- > > For building u-boot on ARM the CROSS_COMPILE environment variable, > > when not defined, was set to default value (prefix arm-linux-). > > > > Since not all cross compilers have the arm-linux- prefix and this > > setting prevents from building u-boot on natively arm powered > > devices it would be best to remove it. > > > > As a side note: > > The most universal way to cross compile u-boot is to > > specify the CROSS_COMPILE environment variable explicitly - e.g.: > > CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make > > > > -- >8 -- > > > > And also please add the Acked-by from Masahiro. > > Albert, do you need any more support to pull this patch to u-boot-arm > branch? Are you willing to add this patch to your u-boot-arm tree? I know that you were not available on the ML for some time and hence, I'm curious if you plan to send pull request for u-boot-arm tree to Tom before the v2014.04 release? > > > > > > > > > Amicalement, > > > > Thanks a lot for your support. > > > > >
Hi Lukasz, On Mon, 07 Apr 2014 09:04:58 +0200, Lukasz Majewski <l.majewski@samsung.com> wrote: > Are you willing to add this patch to your u-boot-arm tree? > > I know that you were not available on the ML for some time and hence, > I'm curious if you plan to send pull request for u-boot-arm tree to Tom > before the v2014.04 release? Yes and yes -- I am clean up my backlog and this patch will get in before I send the PR. Amicalement,
Hi Lukasz, On Tue, 18 Mar 2014 16:46:48 +0100, Lukasz Majewski <l.majewski@samsung.com> wrote: > After Kbuild introduction, the CROSS_COMPILE environment variable has been > set to some default value (prefix arm-linux-). > > This shall be removed since it breaks building u-boot for native arm target > (like qemu ARM). > Moreover not all compilers have arm-linux- prefix. > > Additionally the u-boot cross compiles with CROSS_COMPILE= set explicitly- > e.g.: > CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make > > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> > Cc: Masahiro Yamada <yamada.m@jp.panasonic.com> > --- > arch/arm/config.mk | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/arch/arm/config.mk b/arch/arm/config.mk > index f4c2d81..178a59a 100644 > --- a/arch/arm/config.mk > +++ b/arch/arm/config.mk > @@ -5,10 +5,6 @@ > # SPDX-License-Identifier: GPL-2.0+ > # > > -ifeq ($(CROSS_COMPILE),) > -CROSS_COMPILE := arm-linux- > -endif > - > ifndef CONFIG_STANDALONE_LOAD_ADDR > ifneq ($(CONFIG_OMAP_COMMON),) > CONFIG_STANDALONE_LOAD_ADDR = 0x80300000 Applied to u-boot-arm/master, thanks! Amicalement,
Hi Albert, > Applied to u-boot-arm/master, thanks! BTW, you failed to rephrase the commit message. Anyway it's too late and OK for me. > -- 8< -- > For building u-boot on ARM the CROSS_COMPILE environment variable, when > not defined, was set to default value (prefix arm-linux-). > > Since not all cross compilers have the arm-linux- prefix and this > setting prevents from building u-boot on natively arm powered devices it > would be best to remove it. > > As a side note: > The most universal way to cross compile u-boot is to > specify the CROSS_COMPILE environment variable explicitly - e.g.: > CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make > > -- >8 -- Best Regards Masahiro Yamada
diff --git a/arch/arm/config.mk b/arch/arm/config.mk index f4c2d81..178a59a 100644 --- a/arch/arm/config.mk +++ b/arch/arm/config.mk @@ -5,10 +5,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -ifeq ($(CROSS_COMPILE),) -CROSS_COMPILE := arm-linux- -endif - ifndef CONFIG_STANDALONE_LOAD_ADDR ifneq ($(CONFIG_OMAP_COMMON),) CONFIG_STANDALONE_LOAD_ADDR = 0x80300000
After Kbuild introduction, the CROSS_COMPILE environment variable has been set to some default value (prefix arm-linux-). This shall be removed since it breaks building u-boot for native arm target (like qemu ARM). Moreover not all compilers have arm-linux- prefix. Additionally the u-boot cross compiles with CROSS_COMPILE= set explicitly- e.g.: CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Masahiro Yamada <yamada.m@jp.panasonic.com> --- arch/arm/config.mk | 4 ---- 1 file changed, 4 deletions(-)