[uClibc] arm-uclibc toolchain

David Muse dmuse at 4accesscommunications.com
Thu Dec 11 19:53:35 UTC 2003


Hello,

I've been having difficulty building an arm-uclibc toolchain lately.

I have been using a uclibc-0.9.21, glibc-3.3.1 toolchain that I built from the gcc-3.3.1, but a while ago I ran into some timezone-related issues.  I posted the problem that I had to the list and Manuel responded indicating that I needed to pass the GMT offset, not just the timezone abbreviation, but also that there was a bug in uClibc that needed fixing.  Pretty soon afterward 0.9.22 came out, then 0.9.23.

However, I've been unable to build toolchains for 0.9.22 and 0.9.23.  I tried using both of the toolchains and buildroot CVS modules, but both failed in the same way; some kind of software/hardware floating point issue while trying to link libpthread. 

Recently, I tried the gcc-3.3.x toolchain and it worked, sort of.  The build fails while installing libfloat.  It appears that TARGET_DIR is undefined, but is required by many of the .mk files in the make subdirectory.  I edited the main Makefile and
added a TARGET_DIR and everything built, but I'm not sure it's right.

What I want is a complete toolchain in /opt/arm-uclibc-linux.  That way, I can make a tarball of it and install it on other machines in a standard place.  When I added TARGET_DIR to the gcc-3.3.x toolchain Makefile,  I set it to /opt/arm-uclibc-linux.  In previous toolchain Makefiles setting TARGET_DIR to /opt/arm-uclibc-linux got me what I wanted but with the gcc-3.3.x toolchain Makefile, only some of the necessary files end up in /opt/arm-uclibc-linux.  It appears that the rest of the toolchain ends up in the toolchain_arm_nofpu subdirectory of the gcc-3.3.x directory.  Should I set TARGET_DIR to that directory?  What can I do to get everything installed in /opt/arm-uclibc-linux instead?

Another issue is soft/hard floating point.  I'm using a kernel module to do floating point emulation.  So, from the compilers perspective, I have hardware floating point support.  However, I can't figure out how to build an arm-uclibc without software floating point support.  This isn't a really big deal, I can just not use the kernel module, but it also appears that I need to specify -msoft-float on the command line every time I compile (or maybe just link) a program.  The MontaVista compiler toolchain doesn't require this.  Is there something I can do to the gcc specs file to force -msoft-float option?

Thanks,

David Muse
dmuse at 4accesscommunications.com



More information about the uClibc mailing list