This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
build libgcc for i486 with msoft-float failed
- From: Reid M <reid3759 at gmail dot com>
- To: gcc-help at gcc dot gnu dot org
- Cc: iant at google dot com
- Date: Sat, 5 Oct 2013 23:02:31 -0700
- Subject: build libgcc for i486 with msoft-float failed
- Authentication-results: sourceware.org; auth=none
I was trying to build cross gcc and libgcc based on gcc-4.8 for target
i486 without floating point support.
I build libgcc with option "-D_SOFT_FLOAT -march=i486 -msoft-float
-mno-sse -Wa,-march=i486" but I met following errors:
1. compilation error in file "crtprec.c" : used inline assembly which
contains float-point instruction
../../../gcc-4.8/libgcc/config/i386/crtprec.c: Assembler messages:
../../../gcc-4.8/libgcc/config/i386/crtprec.c:40: Error: `fstcw' is
not supported on `i486'
../../../gcc-4.8/libgcc/config/i386/crtprec.c:45: Error: `fldcw' is
not supported on `i486'
2. After I comment out the inline assembly to avoid error 1, I could
get a libgcc for i486 version. There's some undefined soft-float
function as the following. The source code of corresponding function
are existed in libgcc but they aren't included in libgcc.a.
out/target/product/obj/STATIC_LIBRARIES/libc_common_intermediates/libc_common.a(time.o):
In function `clock_now':
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__floatsidf'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__floatsidf'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__muldf3'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__adddf3'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__fixdfsi'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__floatsidf'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__floatsidf'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__muldf3'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__adddf3'
/home/reid/android/android-4.2.1_r1/bionic/libc/unistd/time.c:53:
undefined reference to `__fixdfsi
My gcc version is 4.8 and configuration is
============================================
./gcc-4.8/configure --target=i486-linux-android --disable-multilib
--disable-nls --disable-shared --disable-threads --enable-visibility
--disable-decimal-float --disable-bootstrap --enable-languages=c,c++
============================================
Could anybody shed some light on how to build libgcc for target i486
without floating point support? Thanks a lot.
Best Regards,
Reid