NWR04B: Toolchain problems
30 Jul 2005I thought I'd give PTXDist (latest version: 0.7.5) a try in my continuing attempts to get a proper toolchain going. I'm running into problems, though, when it comes time to compile uClibc:
make[5]: Entering directory
`/home/aardvark/bin/ptxdist-0.7.5/build/crosstool-0.32/build/arm-uclibc-linux-gnu/gcc-3.4.2-uClibc-0.9.27/build-libc/libc/sysdeps/linux/arm'
arm-uclibc-linux-gnu-gcc -Wall -Wstrict-prototypes -Wno-trigraphs
-fno-strict-aliasing -fstrict-aliasing -Os -funit-at-a-time
-mlittle-endian -fno-builtin -nostdinc -D_LIBC -I../../../../include
-I. -isystem
/home/aardvark/bin/ptxdist-0.7.5/local/arm-uclibc-linux-gnu/gcc-3.4.2-uClibc-0.9.27/lib/gcc/arm-uclibc-linux-gnu/3.4.2/include
-DNDEBUG -fPIC -c __longjmp.S -o __longjmp.o
__longjmp.S: Assembler messages:
__longjmp.S:36: Error: selected processor does not support `lfmfd
f4,4,[ip]!'
make[5]: *** [__longjmp.o] Error 1
make[5]: Leaving directory
`/home/aardvark/bin/ptxdist-0.7.5/build/crosstool-0.32/build/arm-uclibc-linux-gnu/gcc-3.4.2-uClibc-0.9.27/build-libc/libc/sysdeps/linux/arm'
make[4]: *** [arm] Error 2
make[4]: Leaving directory
`/home/aardvark/bin/ptxdist-0.7.5/build/crosstool-0.32/build/arm-uclibc-linux-gnu/gcc-3.4.2-uClibc-0.9.27/build-libc/libc/sysdeps/linux'
make[3]: *** [_dir_linux] Error 2
make[3]: Leaving directory
`/home/aardvark/bin/ptxdist-0.7.5/build/crosstool-0.32/build/arm-uclibc-linux-gnu/gcc-3.4.2-uClibc-0.9.27/build-libc/libc/sysdeps'
make[2]: *** [_dir_sysdeps] Error 2
make[2]: Leaving directory
`/home/aardvark/bin/ptxdist-0.7.5/build/crosstool-0.32/build/arm-uclibc-linux-gnu/gcc-3.4.2-uClibc-0.9.27/build-libc/libc'
make[1]: *** [_dir_libc] Error 2
make[1]: Leaving directory
`/home/aardvark/bin/ptxdist-0.7.5/build/crosstool-0.32/build/arm-uclibc-linux-gnu/gcc-3.4.2-uClibc-0.9.27/build-libc'
make: *** [/home/aardvark/bin/ptxdist-0.7.5/state/crosstool.install]
Error 2
Googling didn't turn up much, but what I found suggested that uClibc
was being compilied for the wrong processor, and/or for a processor
that had an FPU -- which I don't believe the ADM5106 in this thing
does. When configuring PTXDist at the beginning, I'd certainly told it
to use softfloat, and GCC appeared to be compiled with that in mind
(thus the error). Sure enough, when I took a look at the .config
file in the uClibc build directory, it was pretty wrong:
ARCH_LITTLE_ENDIAN=y
# ARCH_BIG_ENDIAN is not set
# ARCH_HAS_NO_MMU is not set
ARCH_HAS_MMU=y
UCLIBC_HAS_FLOATS=y
HAS_FPU=y
I'm not sure why the configuration details make it to GCC and not uClibc; I imagine it's a bug, though it could also be that I'm pointing PTXDist at my uClinux source tree...I wouldn't think that'd be a problem, but it's not supported. I'm not sure I have the patience to follow this through, though, so I may just leave it rather than file a bug (I'm a bad person, I know).
One annoying thing about PTXDist is that make world
, the do-it-all
command, cleans everything out before starting, and there does not
appear to be a make continue
target to just keep going; it makes
debugging things very difficult. I've been looking around at other
scripts, and it's hard to find one that supports uClinux
explicitly. I'm probably being superstitious, but I've had enough
problems with toolchains that I'm reluctant to assume it'll work if I
just drop in the uClinux sources. I may end up compiling my own ('cos
that'll be easier...).
Add a comment:
Name and email required; email is not displayed.
Related Posts
QRP weekend 08 Oct 2018
Open Source Cubesat Workshop 2018 03 Oct 2018
mpd crash? try removing files in /var/lib/mpd/ 11 Aug 2018