[opensuse-arm] cross-armv7hl-gcc6 package
Hi, in cross-armv7hl-gcc6 package, we get all the cross build tools, but with the gcc version appended. So, we have armv7hl-suse-linux-gnueabi-gcc-6 instead of armv7hl-suse-linux-gnueabi-gcc. This is a problem to build things such as u-boot or Linux kernel which just use a CROSS_COMPILE prefix for the GCC tools in their Makefiles. Is there any update-alternatives mechanism or something? Guillaume -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hi Guillaume, Am 28.02.2017 um 14:55 schrieb Guillaume Gardet:
in cross-armv7hl-gcc6 package, we get all the cross build tools, but with the gcc version appended. So, we have armv7hl-suse-linux-gnueabi-gcc-6 instead of armv7hl-suse-linux-gnueabi-gcc.
This is a problem to build things such as u-boot or Linux kernel which just use a CROSS_COMPILE prefix for the GCC tools in their Makefiles.
Is there any update-alternatives mechanism or something?
The solution is to specify CROSS_COMPILE= for binutils and CC= for gcc. Otherwise we couldn't install different gcc versions side-by-side. Also I think the intention was to use cross-arm-gcc* for compiling kernels etc., whereas cross-armv7hl-gcc* is using the same configuration as native armv7hl gcc*. If you notice any problems with that, please report them. Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hi, Le 28/02/2017 à 16:18, Andreas Färber a écrit :
Hi Guillaume,
Am 28.02.2017 um 14:55 schrieb Guillaume Gardet:
in cross-armv7hl-gcc6 package, we get all the cross build tools, but with the gcc version appended. So, we have armv7hl-suse-linux-gnueabi-gcc-6 instead of armv7hl-suse-linux-gnueabi-gcc.
This is a problem to build things such as u-boot or Linux kernel which just use a CROSS_COMPILE prefix for the GCC tools in their Makefiles.
Is there any update-alternatives mechanism or something? The solution is to specify CROSS_COMPILE= for binutils and CC= for gcc.
It will not work. Here is an extract of the U-Boot Makefile: AS = $(CROSS_COMPILE)as # Always use GNU ld ifneq ($(shell $(CROSS_COMPILE)ld.bfd -v 2> /dev/null),) LD = $(CROSS_COMPILE)ld.bfd else LD = $(CROSS_COMPILE)ld endif CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm LDR = $(CROSS_COMPILE)ldr STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump You can note that a number of tools are missing from the openSUSE package.
Otherwise we couldn't install different gcc versions side-by-side.
Also I think the intention was to use cross-arm-gcc* for compiling kernels etc., whereas cross-armv7hl-gcc* is using the same configuration as native armv7hl gcc*. If you notice any problems with that, please report them.
Ok, so I will try cross-arm-gcc6 package. Guillaume
Regards, Andreas
-- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hi, Am 28.02.2017 um 16:33 schrieb Guillaume Gardet:
Le 28/02/2017 à 16:18, Andreas Färber a écrit :
Hi Guillaume,
Am 28.02.2017 um 14:55 schrieb Guillaume Gardet:
in cross-armv7hl-gcc6 package, we get all the cross build tools, but with the gcc version appended. So, we have armv7hl-suse-linux-gnueabi-gcc-6 instead of armv7hl-suse-linux-gnueabi-gcc.
This is a problem to build things such as u-boot or Linux kernel which just use a CROSS_COMPILE prefix for the GCC tools in their Makefiles.
Is there any update-alternatives mechanism or something? The solution is to specify CROSS_COMPILE= for binutils and CC= for gcc.
It will not work. Here is an extract of the U-Boot Makefile: AS = $(CROSS_COMPILE)as # Always use GNU ld ifneq ($(shell $(CROSS_COMPILE)ld.bfd -v 2> /dev/null),) LD = $(CROSS_COMPILE)ld.bfd else LD = $(CROSS_COMPILE)ld endif CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm LDR = $(CROSS_COMPILE)ldr STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump
You can note that a number of tools are missing from the openSUSE package.
I don't understand your point. I have successfully used cross-aarch64-gcc{6,7} with mainline U-Boot! As I said, you need both variables: make CROSS_COMPILE=aarch64-suse-linux- CC=aarch64-suse-linux-gcc-7 ... Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hi, Le 28/02/2017 à 17:30, Andreas Färber a écrit :
Hi,
Am 28.02.2017 um 16:33 schrieb Guillaume Gardet:
Le 28/02/2017 à 16:18, Andreas Färber a écrit :
Hi Guillaume,
Am 28.02.2017 um 14:55 schrieb Guillaume Gardet:
in cross-armv7hl-gcc6 package, we get all the cross build tools, but with the gcc version appended. So, we have armv7hl-suse-linux-gnueabi-gcc-6 instead of armv7hl-suse-linux-gnueabi-gcc.
This is a problem to build things such as u-boot or Linux kernel which just use a CROSS_COMPILE prefix for the GCC tools in their Makefiles.
Is there any update-alternatives mechanism or something? The solution is to specify CROSS_COMPILE= for binutils and CC= for gcc. It will not work. Here is an extract of the U-Boot Makefile: AS = $(CROSS_COMPILE)as # Always use GNU ld ifneq ($(shell $(CROSS_COMPILE)ld.bfd -v 2> /dev/null),) LD = $(CROSS_COMPILE)ld.bfd else LD = $(CROSS_COMPILE)ld endif CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm LDR = $(CROSS_COMPILE)ldr STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump
You can note that a number of tools are missing from the openSUSE package. I don't understand your point. I have successfully used cross-aarch64-gcc{6,7} with mainline U-Boot!
As I said, you need both variables: make CROSS_COMPILE=aarch64-suse-linux- CC=aarch64-suse-linux-gcc-7 ...
I tried: make CROSS_COMPILE=armv7hl-suse-linux-gnueabi- CC=armv7hl-suse-linux-gnueabi-gcc-6 and make CROSS_COMPILE=arm-suse-linux-gnueabi- CC=arm-suse-linux-gnueabi-gcc-6 but both fail at AR tool call. Guillaume
Regards, Andreas
-- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Am 28.02.2017 um 17:46 schrieb Guillaume Gardet:
Le 28/02/2017 à 17:30, Andreas Färber a écrit :
Am 28.02.2017 um 16:33 schrieb Guillaume Gardet:
Le 28/02/2017 à 16:18, Andreas Färber a écrit :
Am 28.02.2017 um 14:55 schrieb Guillaume Gardet:
in cross-armv7hl-gcc6 package, we get all the cross build tools, but with the gcc version appended. So, we have armv7hl-suse-linux-gnueabi-gcc-6 instead of armv7hl-suse-linux-gnueabi-gcc.
This is a problem to build things such as u-boot or Linux kernel which just use a CROSS_COMPILE prefix for the GCC tools in their Makefiles.
Is there any update-alternatives mechanism or something? The solution is to specify CROSS_COMPILE= for binutils and CC= for gcc. It will not work. Here is an extract of the U-Boot Makefile: AS = $(CROSS_COMPILE)as # Always use GNU ld ifneq ($(shell $(CROSS_COMPILE)ld.bfd -v 2> /dev/null),) LD = $(CROSS_COMPILE)ld.bfd else LD = $(CROSS_COMPILE)ld endif CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm LDR = $(CROSS_COMPILE)ldr STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump
You can note that a number of tools are missing from the openSUSE package. I don't understand your point. I have successfully used cross-aarch64-gcc{6,7} with mainline U-Boot!
As I said, you need both variables: make CROSS_COMPILE=aarch64-suse-linux- CC=aarch64-suse-linux-gcc-7 ...
I tried: make CROSS_COMPILE=armv7hl-suse-linux-gnueabi- CC=armv7hl-suse-linux-gnueabi-gcc-6 and make CROSS_COMPILE=arm-suse-linux-gnueabi- CC=arm-suse-linux-gnueabi-gcc-6 but both fail at AR tool call.
You need to use the prefix matching the installed files from cross-arm-binutils! rpm -ql cross-arm-binutils Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Le 28/02/2017 à 17:54, Andreas Färber a écrit :
Am 28.02.2017 um 17:46 schrieb Guillaume Gardet:
Le 28/02/2017 à 17:30, Andreas Färber a écrit :
Am 28.02.2017 um 16:33 schrieb Guillaume Gardet:
Le 28/02/2017 à 16:18, Andreas Färber a écrit :
Am 28.02.2017 um 14:55 schrieb Guillaume Gardet:
in cross-armv7hl-gcc6 package, we get all the cross build tools, but with the gcc version appended. So, we have armv7hl-suse-linux-gnueabi-gcc-6 instead of armv7hl-suse-linux-gnueabi-gcc.
This is a problem to build things such as u-boot or Linux kernel which just use a CROSS_COMPILE prefix for the GCC tools in their Makefiles.
Is there any update-alternatives mechanism or something? The solution is to specify CROSS_COMPILE= for binutils and CC= for gcc. It will not work. Here is an extract of the U-Boot Makefile: AS = $(CROSS_COMPILE)as # Always use GNU ld ifneq ($(shell $(CROSS_COMPILE)ld.bfd -v 2> /dev/null),) LD = $(CROSS_COMPILE)ld.bfd else LD = $(CROSS_COMPILE)ld endif CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm LDR = $(CROSS_COMPILE)ldr STRIP = $(CROSS_COMPILE)strip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump
You can note that a number of tools are missing from the openSUSE package. I don't understand your point. I have successfully used cross-aarch64-gcc{6,7} with mainline U-Boot!
As I said, you need both variables: make CROSS_COMPILE=aarch64-suse-linux- CC=aarch64-suse-linux-gcc-7 ... I tried: make CROSS_COMPILE=armv7hl-suse-linux-gnueabi- CC=armv7hl-suse-linux-gnueabi-gcc-6 and make CROSS_COMPILE=arm-suse-linux-gnueabi- CC=arm-suse-linux-gnueabi-gcc-6 but both fail at AR tool call. You need to use the prefix matching the installed files from cross-arm-binutils!
Sorry, it was my fault, cross-arm-binutils was not installed! Thanks for your help! But, depending on u-boot confguration and/or version, I sometime hit the following error: arm-suse-linux-gnueabi-ld.bfd: cannot find -lgcc examples/standalone/Makefile:67: recipe for target 'examples/standalone/hello_world' failed Guillaume
rpm -ql cross-arm-binutils
Regards, Andreas
-- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Am 28.02.2017 um 18:08 schrieb Guillaume Gardet:
depending on u-boot confguration and/or version, I sometime hit the following error: arm-suse-linux-gnueabi-ld.bfd: cannot find -lgcc examples/standalone/Makefile:67: recipe for target 'examples/standalone/hello_world' failed
Check for a PRIVATE_LIBGCC (?) Kconfig option. U-Boot has a local copy. We'd need an cross-arm-none-gcc* (with newlib) for libgcc. I'd love to have one, but unlike the existing newlib cross-compilers we'll need to deal with multilib then (for VFP, THUMB vs. ARM, etc.). Volunteers? Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
participants (2)
-
Andreas Färber
-
Guillaume Gardet