build:arm: Remove setting of CROSS_COMPILE environment variable
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
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
--- arch/arm/config.mk | 4 ---- 1 file changed, 4 deletions(-)
arch/arm/config.mk +0 -4
@@ -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
Signature · 1 line
1.7.10.4
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Quoted 2 lines · Lukasz Majewski
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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?
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140318/bd975719/attachment.pgp>
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Tom,
Quoted 7 lines · Lukasz Majewski
Quoted 3 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140318/a89c0703/attachment.pgp>
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Lukasz, Tom,
Quoted 20 lines
Hi Tom,
Quoted 7 lines · Lukasz Majewski
Quoted 3 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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.
Quoted 5 lines
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" onx86_64host 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.
Quoted 3 lines
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_COMPILEenvironment variable.
I believe it is the same as prior to Kbuild.
So, I am not convined with this part of your commit description:
Quoted 5 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Masahiro,
Quoted 34 lines
Hi Lukasz, Tom,
Quoted 20 lines
Hi Tom,
Quoted 7 lines · Lukasz Majewski
Quoted 3 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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.
Quoted 5 lines
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" onx86_64host 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.
Quoted 8 lines
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 <[email protected]>
Thanks for review.
Quoted 39 lines
Quoted 6 lines
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_COMPILEenvironment variable.I believe it is the same as prior to
Kbuild.So, I am not convined with this part of your commit description:
Quoted 5 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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 ("$(originCROSS_COMPILE)", "command line")
ifeq ($(CROSS_COMPILE),)CROSS_COMPILE:= arm-linux-
endif
endifFor native build on ARM, you can explicitely set
CROSS_COMPILEas
empty: "make CROSS_COMPILE="
In this case,CROSS_COMPILEwill not be overwritten inarch/arm/config.mk.[2]
ifneq ($(HOSTARCH),$(ARCH))
ifeq ($(CROSS_COMPILE),)CROSS_COMPILE:= arm-linux-
endif
endif
Quoted 7 lines
For native build on ARM, both $(HOSTARCH) and $(ARCH) are "arm", so
CROSS_COMPILEwill not be set.But, I think deleting
CROSS_COMPILEsetting is the simplest and the best.
Ok, lets stick to this solution.
Quoted 5 lines
Best Regards
Masahiro Yamada
Signature · 5 lines
Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
In reply to Masahiro YamadaHi Albert,
Quoted 34 lines
Hi Lukasz, Tom,
Quoted 20 lines
Hi Tom,
Quoted 7 lines · Lukasz Majewski
Quoted 3 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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.
Quoted 5 lines
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" onx86_64host 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.
Quoted 8 lines
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 <[email protected]>
Albert, could you take this patch for your arm repository?
Quoted 51 lines
Quoted 6 lines
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_COMPILEenvironment variable.I believe it is the same as prior to
Kbuild.So, I am not convined with this part of your commit description:
Quoted 5 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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 ("$(originCROSS_COMPILE)", "command line")
ifeq ($(CROSS_COMPILE),)CROSS_COMPILE:= arm-linux-
endif
endifFor native build on ARM, you can explicitely set
CROSS_COMPILEas
empty: "make CROSS_COMPILE="
In this case,CROSS_COMPILEwill not be overwritten inarch/arm/config.mk.[2]
ifneq ($(HOSTARCH),$(ARCH))
ifeq ($(CROSS_COMPILE),)CROSS_COMPILE:= arm-linux-
endif
endifFor native build on ARM, both $(HOSTARCH) and $(ARCH) are "arm", so
CROSS_COMPILEwill not be set.But, I think deleting
CROSS_COMPILEsetting is the simplest and the best.Best Regards
Masahiro Yamada
Signature · 5 lines
Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Lukasz,
Quoted 39 lines · Lukasz Majewski
Hi Albert,
Quoted 37 lines
Hi Lukasz, Tom,
Quoted 20 lines
Hi Tom,
Quoted 7 lines · Lukasz Majewski
Quoted 3 lines
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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.
Quoted 5 lines
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" onx86_64host 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.
Quoted 7 lines
Quoted 5 lines
So, I agree with this patch except a little misleading commit description I commented below.
Acked-by Masahiro Yamada <[email protected]>Albert, could you take this patch for your arm repository?
I can. How would you like me to rephrase the commit message?
Amicalement,
Signature · 1 line
Albert.
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Albert,
Quoted 49 lines
Hi Lukasz,
Quoted 44 lines · Lukasz Majewski
Hi Albert,
Quoted 42 lines
Hi Lukasz, Tom,
Quoted 22 lines
Hi Tom,
Quoted 9 lines
Quoted 3 lines · Lukasz Majewski
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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.
Quoted 5 lines
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" onx86_64host 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.
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines
Acked-by Masahiro Yamada <[email protected]>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.
Quoted 2 lines
Amicalement,
Thanks a lot for your support.
Signature · 5 lines
Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Albert,
Quoted 69 lines
Hi Albert,
Quoted 50 lines
Hi Lukasz,
Quoted 45 lines · Lukasz Majewski
Hi Albert,
Quoted 43 lines
Hi Lukasz, Tom,
Quoted 23 lines
Hi Tom,
Quoted 9 lines
Quoted 3 lines · Lukasz Majewski
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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.
Quoted 5 lines
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" onx86_64host 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.
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines
Acked-by Masahiro Yamada <[email protected]>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 theCROSS_COMPILEenvironment 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.
Quoted 8 lines
As a side note:
The most universal way to cross compile u-boot is to specify theCROSS_COMPILEenvironment 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?
Quoted 6 lines
Quoted 3 lines
Amicalement,
Thanks a lot for your support.
Signature · 5 lines
Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Albert,
Quoted 76 lines
Hi Albert,
Quoted 74 lines
Hi Albert,
Quoted 50 lines
Hi Lukasz,
Quoted 45 lines · Lukasz Majewski
Hi Albert,
Quoted 43 lines
Hi Lukasz, Tom,
Quoted 23 lines
Hi Tom,
Quoted 9 lines
Quoted 3 lines · Lukasz Majewski
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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.
Quoted 5 lines
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" onx86_64host 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.
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines
Acked-by Masahiro Yamada <[email protected]>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 theCROSS_COMPILEenvironment 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 theCROSS_COMPILEenvironment variable explicitly - e.g.:
CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make
Quoted 6 lines
Quoted 3 lines
-- >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?
Quoted 10 lines
Quoted 7 lines
Quoted 4 lines
Amicalement,
Thanks a lot for your support.
Signature · 5 lines
Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Lukasz,
Quoted 5 lines · Lukasz Majewski
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,
Signature · 1 line
Albert.
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
In reply to Lukasz MajewskiHi Lukasz,
Quoted 22 lines · Lukasz Majewski
After
Kbuildintroduction, theCROSS_COMPILEenvironment 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- makeSigned-off-by Lukasz Majewski <[email protected]>Cc Masahiro Yamada <[email protected]>--- arch/arm/config.mk | 4 ---- 1 file changed, 4 deletions(-)arch/arm/config.mk +0
-0
arch/arm/config.mk line 10
Quoted 10 lines
arch/arm/config.mk +0
-4@@ -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,
Signature · 1 line
Albert.
PATCH 1/1 build:arm: Remove setting of CROSS_COMPILE environment variable
Hi Albert,
Quoted 1 line
Applied to u-boot-arm/master, thanks!
BTW, you failed to rephrase the commit message.
Anyway it's too late and OK for me.
Quoted 8 lines
-- 8< --
For building u-boot on ARM theCROSS_COMPILEenvironment 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.
Quoted 6 lines
As a side note:
The most universal way to cross compile u-boot is to specify theCROSS_COMPILEenvironment variable explicitly - e.g.:
CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make-- >8 --
Best Regards
Masahiro Yamada