* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? @ 2006-11-29 13:25 MikeW 2006-11-30 1:07 ` Pavel Roskin 2006-11-30 10:20 ` [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? + MikeW 0 siblings, 2 replies; 12+ messages in thread From: MikeW @ 2006-11-29 13:25 UTC (permalink / raw) To: buildroot gcc-3.4.3 binutils-2.16.91.0.7 buildroot-20061031 Target Architecture: arm Target Architecture Variant: arm926t Target ABI: EABI Build Options: GNU Target Suffix: ???? Toolchain options: Kernel Headers 2.6.11 Is there a way of building an EABI ARM toolchain using Buildroot ? Or is it one of those things that is not currently possible ? If I set the target suffix to 'elf-linux' the toolchain build completes, but objects created with it have EABI version=0 (= no EABI). (These will not link with a 3rd-party-built library with EABI version=4.) If I set to to 'armelf-linux-eabi' or one of the other likely- looking values, I get a build error from ld: in/ld: unrecognised emulation mode: armelf_linux Supported emulations: armelf_linux_eabi I can't see any other likely setting to change ... Any ideas ? Or do a need a newer version of Buildroot ... or a patch ? Thanks, MikeW ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-11-29 13:25 [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? MikeW @ 2006-11-30 1:07 ` Pavel Roskin 2006-11-30 11:14 ` MikeW 2006-12-14 9:40 ` [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? MikeW 2006-11-30 10:20 ` [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? + MikeW 1 sibling, 2 replies; 12+ messages in thread From: Pavel Roskin @ 2006-11-30 1:07 UTC (permalink / raw) To: buildroot Hello! On Wed, 2006-11-29 at 13:25 +0000, MikeW wrote: > If I set the target suffix to 'elf-linux' the toolchain build > completes, but objects created with it have EABI version=0 (= no EABI). > (These will not link with a 3rd-party-built library with EABI version=4.) How do you check that? > If I set to to 'armelf-linux-eabi' or one of the other likely- > looking values, I get a build error from ld: > in/ld: unrecognised emulation mode: armelf_linux > Supported emulations: armelf_linux_eabi You don't need the CPU part in the target, only the OS and the kernel part. In other word, you need something like "linux", "linux-gnu", "linux-uclibc" etc. > I can't see any other likely setting to change ... > > Any ideas ? > Or do a need a newer version of Buildroot ... or a patch ? Remove BR2_GNU_TARGET_SUFFIX from .config and run "make oldconfig". The suggested value will be "linux-uclibcgnueabi" and it should work. To make sure the suffix would work, run recent config.sub with the arm-unknown-SUFFIX argument and make sure it's accepted. Sometimes config.sub can become confused if it doesn't know how to insert "gnu" after "linux" :) I still see it failing with gcc 3.4.6 and binutils 2.17.50.0.7: /usr/local/src/buildroot/toolchain_build_arm/gcc-3.4.6-initial/gcc/xgcc -B/usr/local/src/buildroot/toolchain_build_arm/gcc-3.4.6-initial/gcc/ -B/usr/local/src/buildroot/build_arm/staging_dir/arm-linux-uclibcgnueabi/bin/ -B/usr/local/src/buildroot/build_arm/staging_dir/arm-linux-uclibcgnueabi/lib/ -isystem /usr/local/src/buildroot/build_arm/staging_dir/arm-linux-uclibcgnueabi/include -isystem /usr/local/src/buildroot/build_arm/staging_dir/arm-linux-uclibcgnueabi/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fomit-frame-pointer -fPIC -g0 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I/usr/local/src/buildroot/toolchain_build_arm/gcc-3.4.6/gcc -I/usr/local/src/buildroot/toolchain_build_arm/gcc-3.4.6/gcc/. -I/usr/local/src/buildroot/toolchain_build_arm/gcc-3.4.6/gcc/../include -DL_floatdisf -c /usr/local/src/buildroot/toolchain_build_arm/gcc-3.4.6/gcc/libgcc2.c -o libgcc/./_floatdisf.o /tmp/cciYVnPk.s: Assembler messages: /tmp/cciYVnPk.s:23: Error: selected processor does not support `ldfd f0,.L8+16' /tmp/cciYVnPk.s:43: Error: selected processor does not support `fltd f1,r7' /tmp/cciYVnPk.s:45: Error: selected processor does not support `mufd f1,f1,f0' /tmp/cciYVnPk.s:46: Error: selected processor does not support `mufd f1,f1,f0' /tmp/cciYVnPk.s:47: Error: selected processor does not support `fltd f2,r5' /tmp/cciYVnPk.s:48: Error: selected processor does not support `ldfltd f0,.L8+32' /tmp/cciYVnPk.s:49: Error: selected processor does not support `adfltd f2,f2,f0' /tmp/cciYVnPk.s:50: Error: selected processor does not support `adfd f1,f1,f2' /tmp/cciYVnPk.s:52: Error: selected processor does not support `mvfs f0,f1' make[3]: *** [libgcc/./_floatdisf.o] Error 1 Maybe you can fix it. You can try another compiler. If I understand it correctly, the binutils and gcc configuration is affected solely by BR2_GNU_TARGET_SUFFIX, not by BR2_ARM_EABI and BR2_ARM_OABI values. That's why it's important to get BR2_GNU_TARGET_SUFFIX right. -- Regards, Pavel Roskin ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-11-30 1:07 ` Pavel Roskin @ 2006-11-30 11:14 ` MikeW 2006-12-01 8:11 ` Pavel Roskin 2006-12-14 9:40 ` [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? MikeW 1 sibling, 1 reply; 12+ messages in thread From: MikeW @ 2006-11-30 11:14 UTC (permalink / raw) To: buildroot Pavel Roskin <proski@...> writes: > > Hello! > > On Wed, 2006-11-29 at 13:25 +0000, MikeW wrote: > > > If I set the target suffix to 'elf-linux' the toolchain build > > completes, but objects created with it have EABI version=0 (= no EABI). > > (These will not link with a 3rd-party-built library with EABI version=4.) > > How do you check that? objdump -x objectfile.o > > You don't need the CPU part in the target, only the OS and the kernel > part. In other word, you need something like "linux", "linux-gnu", > "linux-uclibc" etc. I *do* miss out the CPU part in the menuconfig option field. I have also tried using the default setting for the field, which is linux-uclibcgnueabi, as you suggest. > > > I can't see any other likely setting to change ... > > > > Any ideas ? > > Or do a need a newer version of Buildroot ... or a patch ? > > Remove BR2_GNU_TARGET_SUFFIX from .config and run "make oldconfig". The > suggested value will be "linux-uclibcgnueabi" and it should work. > > To make sure the suffix would work, run recent config.sub with the > arm-unknown-SUFFIX argument and make sure it's accepted. Sometimes > config.sub can become confused if it doesn't know how to insert "gnu" > after "linux" :) > > I still see it failing with gcc 3.4.6 and binutils 2.17.50.0.7: > [As per my other post] You also need to specify software FP. > > Maybe you can fix it. You can try another compiler. > It appears that (most of) the toolchain *is* built correctly. The relevant directory in staging_dir/bin contains files like arm-linux-uclibcgnueabi-gcc - correct ! If I build an object file with this compiler after the aborted Buildroot make, it has EABI version=4, as required. The problem seems to be with the step in building the gcc package which checks for 'supported emulations' using ld. Something seems to cause a mismatch between what is seen, and what is expected - this looks like a gcc/ld problem, at least with the configuration that Buildroot gives to it. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-11-30 11:14 ` MikeW @ 2006-12-01 8:11 ` Pavel Roskin 2006-12-01 10:13 ` MikeW 2006-12-13 12:08 ` MikeW 0 siblings, 2 replies; 12+ messages in thread From: Pavel Roskin @ 2006-12-01 8:11 UTC (permalink / raw) To: buildroot On Thu, 2006-11-30 at 11:14 +0000, MikeW wrote: > This seems to be due to an incompatibility between: > 1) toolchain.../gcc-x.x.x/config/arm/linux-elf.h > 2) toolchain.../binutils-x.x.x/ld/earmelf_linux_eabi.c > > In 1) there is a setting TARGET_LINKER_EMULATION "armelf_linux" > In 2) there is a string (part of a struct initialiser) "armelf_linux_eabi" > > so unless I can find matching strings in a version of gcc and ld, > buildroot will never be able to build a toolchain. There are already patches for gcc in buildroot that change TARGET_LINKER_EMULATION for bigendian systems and uClibc. I think support for EABI belongs there too. -- Regards, Pavel Roskin ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-12-01 8:11 ` Pavel Roskin @ 2006-12-01 10:13 ` MikeW 2006-12-01 10:28 ` MikeW 2006-12-13 12:08 ` MikeW 1 sibling, 1 reply; 12+ messages in thread From: MikeW @ 2006-12-01 10:13 UTC (permalink / raw) To: buildroot Pavel Roskin <proski@...> writes: > There are already patches for gcc in buildroot that change > TARGET_LINKER_EMULATION for bigendian systems and uClibc. I think > support for EABI belongs there too. > So looking at 800-arm-bigendian.patch, it would appear that I need to 1) in config.gcc, have a case $target that detects *eabi and sets a TARGET_EABI flag 2) in linux-elf.h, have another #if TARGET_EABI ... #else ... #endif which just tags "_eabi" onto all of the other strings, if EABI is active Does this make sense ? Or is there an official GCC patch to do this (I have searched!) Since other people are building ARM EABI versions of gcc, there must be a patch that they are using which somehow has been omitted from Buildroot :( Regards, Mike ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-12-01 10:13 ` MikeW @ 2006-12-01 10:28 ` MikeW 0 siblings, 0 replies; 12+ messages in thread From: MikeW @ 2006-12-01 10:28 UTC (permalink / raw) To: buildroot MikeW <mw_phil@...> writes: > Since other people are building ARM EABI versions of gcc, there must > be a patch that they are using which somehow has been omitted > from Buildroot :( > > Regards, > Mike > Incidentally, why don't projects using gcc just inherit all their patches from gcc ... it seems (from searching) as if each dependent project has to reinvent its own patches each time, whereas once a fix is found, it should just go to gcc for everyone to use once & for all, thereby saving everyone a lot of time and effort. This should be part of the 'synergy' of open source ... ;-) Regards, MikeW ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-12-01 8:11 ` Pavel Roskin 2006-12-01 10:13 ` MikeW @ 2006-12-13 12:08 ` MikeW 2006-12-13 19:22 ` [Buildroot] Impossible to build EABI ARM gcc toolchain?using?Buildroot ? Bernhard Fischer 1 sibling, 1 reply; 12+ messages in thread From: MikeW @ 2006-12-13 12:08 UTC (permalink / raw) To: buildroot Pavel Roskin <proski@...> writes: > There are already patches for gcc in buildroot that change > TARGET_LINKER_EMULATION for bigendian systems and uClibc. I think > support for EABI belongs there too. > So how do we get these included into Buildroot ? There are patches for EABI working mentioned on gcc.gnu.org dating back to 2004. But no systematic list anywhere (?), or information about applying them. We need the wheel to be invented *once* !! ;-) Thanks again, MikeW ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain?using?Buildroot ? 2006-12-13 12:08 ` MikeW @ 2006-12-13 19:22 ` Bernhard Fischer 0 siblings, 0 replies; 12+ messages in thread From: Bernhard Fischer @ 2006-12-13 19:22 UTC (permalink / raw) To: buildroot On Wed, Dec 13, 2006 at 12:08:41PM +0000, MikeW wrote: >Pavel Roskin <proski@...> writes: >> There are already patches for gcc in buildroot that change >> TARGET_LINKER_EMULATION for bigendian systems and uClibc. I think >> support for EABI belongs there too. >> > >So how do we get these included into Buildroot ? Someone who knows arm writes, tests and applies them. I don't do arm (don't have a board and don't intend to play with an emulated one, fwiw), sorry. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-11-30 1:07 ` Pavel Roskin 2006-11-30 11:14 ` MikeW @ 2006-12-14 9:40 ` MikeW 2006-12-18 11:37 ` MikeW 1 sibling, 1 reply; 12+ messages in thread From: MikeW @ 2006-12-14 9:40 UTC (permalink / raw) To: buildroot Pavel Roskin <proski@...> writes: > Maybe you can fix it. You can try another compiler. Unfortunately, Buldroot gcc-4.1.1 which includes ARM EABI support won't build the 2.6.10 kernel we are using - fails in the get_user macro in uaccess.h. Patch that, something else breaks in a similar way due to the compiler breaking code that worked under gcc-3.4.x (it needs a switch to turn this off!) The joys of bazaar development - grrr ! Regards, MikeW ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? 2006-12-14 9:40 ` [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? MikeW @ 2006-12-18 11:37 ` MikeW 2006-12-18 12:15 ` [Buildroot] Impossible to build EABI ARM gcc toolchain?using?Buildroot ? Bernhard Fischer 0 siblings, 1 reply; 12+ messages in thread From: MikeW @ 2006-12-18 11:37 UTC (permalink / raw) To: buildroot MikeW <mw_phil@...> writes: > > Pavel Roskin <proski <at> ...> writes: > > > Maybe you can fix it. You can try another compiler. > > Unfortunately, Buldroot gcc-4.1.1 which includes ARM EABI support won't build > the 2.6.10 kernel we are using - fails in the get_user macro in uaccess.h. > > Patch that, something else breaks in a similar way due to the compiler > breaking code that worked under gcc-3.4.x (it needs a switch to turn this off!) > > The joys of bazaar development - grrr ! > > Regards, > MikeW > Looks like the only 3.4.x version of GCC is the one from CodeSourcery, http://www.codesourcery.com/gnu_toolchains/arm/releases.html I think one of the older ones is derived from a 3.4.x GCC. Was considering doing a Buildroot config.in patch to get the tar.bz2 file from the CS website, but unfortunately the files are returned in response to a form submission :( MikeW ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain?using?Buildroot ? 2006-12-18 11:37 ` MikeW @ 2006-12-18 12:15 ` Bernhard Fischer 0 siblings, 0 replies; 12+ messages in thread From: Bernhard Fischer @ 2006-12-18 12:15 UTC (permalink / raw) To: buildroot On Mon, Dec 18, 2006 at 11:37:11AM +0000, MikeW wrote: >MikeW <mw_phil@...> writes: > >> >> Pavel Roskin <proski <at> ...> writes: >> >> > Maybe you can fix it. You can try another compiler. >> >> Unfortunately, Buldroot gcc-4.1.1 which includes ARM EABI support won't build >> the 2.6.10 kernel we are using - fails in the get_user macro in uaccess.h. >> >> Patch that, something else breaks in a similar way due to the compiler >> breaking code that worked under gcc-3.4.x (it needs a switch to turn this off!) >> >> The joys of bazaar development - grrr ! >> >> Regards, >> MikeW >> > >Looks like the only 3.4.x version of GCC is the one from CodeSourcery, >http://www.codesourcery.com/gnu_toolchains/arm/releases.html >I think one of the older ones is derived from a 3.4.x GCC. > >Was considering doing a Buildroot config.in patch to get the tar.bz2 file from >the CS website, but unfortunately the files are returned in response >to a form submission :( huh? http://www.codesourcery.com/public/gnu_toolchain/$target/arm-2006q3-27-$target.src.tar.bz2 for e.g. target=arm-none-eabi I don't see the problem, really.. Apart from that, it's beyond me why would one want/need to use 2.6.10 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? + 2006-11-29 13:25 [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? MikeW 2006-11-30 1:07 ` Pavel Roskin @ 2006-11-30 10:20 ` MikeW 1 sibling, 0 replies; 12+ messages in thread From: MikeW @ 2006-11-30 10:20 UTC (permalink / raw) To: buildroot MikeW <mw_phil@...> writes: > > gcc-3.4.3 > binutils-2.16.91.0.7 > buildroot-20061031 > > Target Architecture: arm > Target Architecture Variant: arm926t > Target ABI: EABI > Build Options: GNU Target Suffix: ???? > Toolchain options: Kernel Headers 2.6.11 Also: need to select software FP: Toolchain Options: Use software floating point by default ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2006-12-18 12:15 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-11-29 13:25 [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? MikeW 2006-11-30 1:07 ` Pavel Roskin 2006-11-30 11:14 ` MikeW 2006-12-01 8:11 ` Pavel Roskin 2006-12-01 10:13 ` MikeW 2006-12-01 10:28 ` MikeW 2006-12-13 12:08 ` MikeW 2006-12-13 19:22 ` [Buildroot] Impossible to build EABI ARM gcc toolchain?using?Buildroot ? Bernhard Fischer 2006-12-14 9:40 ` [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? MikeW 2006-12-18 11:37 ` MikeW 2006-12-18 12:15 ` [Buildroot] Impossible to build EABI ARM gcc toolchain?using?Buildroot ? Bernhard Fischer 2006-11-30 10:20 ` [Buildroot] Impossible to build EABI ARM gcc toolchain using Buildroot ? + MikeW
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox