buildroot fails for ARM w/ gcc 4.1 and soft float

Jeff Warren tiny.laser at comcast.net
Fri Jun 29 17:19:13 UTC 2007


Hello,
I am using the latest buildroot snapshot and it defaults to gcc 4.1.2  I
have scoured the web for my issues building the tool chain and am
falling into the exact same trap that lance here did with this thread
last year. http://www.busybox.net/lists/uclibc/2006-May/015352.html
First the undefined links to the floating point functions and then the
cannot link with GCC_NO_EXECUTABLES set error.  Looking back at this
thread, I see no definitive answer as to where to go next.  Anyone have
any insight?  Lance, did you ever get this working?  

I added the patch that Khem Raj suggested to get further:
http://www.busybox.net/lists/uclibc/2006-May/015361.html


Index: gcc-4.1.0/gcc/config/arm/t-linux
===================================================================
--- gcc-4.1.0.orig/gcc/config/arm/t-linux
+++ gcc-4.1.0/gcc/config/arm/t-linux
@@ -4,7 +4,12 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi
 LIBGCC2_DEBUG_CFLAGS = -g0

 LIB1ASMSRC = arm/lib1funcs.asm
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
+       _call_via_rX _interwork_call_via_rX \
+       _lshrdi3 _ashrdi3 _ashldi3 \
+       _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi 
_fixunsdfsi \
+       _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
+       _fixsfsi _fixunssfsi _floatdidf _floatdisf

 # MULTILIB_OPTIONS = mhard-float/msoft-float
 # MULTILIB_DIRNAMES = hard-float soft-float

Now I am wondering if this is causing the GCC_NO_EXECUTABLES issue.

Should I use a different/better GCC?  I am targeting the arm920T.

Another thought I had was to remove the above patch from GCC and build
only the initial GCC, with this build the libfloat and put it somewhere
that uClibc can link to it.  I got libfloat to build and changed
Rules.mak by uncommenting the line: LDADD_LIBFLOAT=-lfloat (-msoft-float
is already set by telling the build root to use software floating point
right?)  Although I did this, I could not find the place to put libfloat
so that uClibc would link up to it, I tried $STAGING_DIR/lib,
toolchain_build_arm_nofpu/uClibc/lib, toolchain_build_arm_nofpu/uClibc
and even the /lib dir of the OS!  I used the file utility to confirm
that libfloat was indeed an ARM library.

Regards,

Jeff Warren








More information about the uClibc mailing list