Building a GCC toolchain for an i386 target, with soft-float support.
Mian M. Hamayun
mian-muhammad.hamayun@imag.fr
Tue Aug 2 12:49:00 GMT 2011
Hello Everyone,
I am trying to build a gcc toolchain with newlib for an i386 target
which doesn't support hw float instructions. In fact it is a virtual
machine which I am targeting. So when I compile my applications with
"-msoft-float" flag, I get quite a few unresolved symbols.
For Example:
Sources/susan.c:979: undefined reference to `__floatsisf'
Sources/susan.c:979: undefined reference to `__divsf3'
Sources/susan.c:1626: undefined reference to `__subdf3'
Sources/susan.c:1628: undefined reference to `__mulsf3'
...
So my obvious guess is to rebuild the gcc toolchain and/or newlib using
"--with-float=soft" and/or "--enable-soft-float" options. But so far I
haven't been able to build a toolchain that solves this issue. In fact
the toolchain compiles, but I still get the unresolved symbols.
Here is the procedure that I followed:
1) Binutils
===========
${TMP_DIR}/${BINUTILS_DIR}/configure \
--prefix=${INSTALL_DIR} \
--target=${TARGET} \
--disable-nls \
--disable-werror \
--enable-multilib \
--with-float=soft \
--enable-soft-float \
&> logs/configure.log || return
make
make install
2) GCC Bootstrap
================
${TMP_DIR}/${GCC_DIR}/configure \
--prefix=${INSTALL_DIR} \
--target=${TARGET} \
--disable-nls \
--enable-multilib \
--with-newlib \
--enable-soft-float \
--enable-interwork \
--enable-languages=c &> logs/configure.log || return
make all-gcc
make install-gcc
3) Newlib
=========
${TMP_DIR}/${NEWLIB_DIR}/configure \
--prefix=${INSTALL_DIR} \
--target=${TARGET} \
--disable-nls \
--enable-multilib \
--enable-interwork \
--enable-newlib-io-long-long \
--enable-newlib-io-long-double \
--enable-newlib-io-c99-formats \
--disable-newlib-may-supply-syscalls \
--enable-newlib-multithread \
--with-float=soft \
--enable-soft-float \
--disable-newlib-supplied-syscalls &> logs/configure.log || return
make
make install
4) GCC Final
============
make all
make install
Any help / pointers in this regard will be greatly appreciated.
Thanks in advance,
Hamayun
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3781 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://gcc.gnu.org/pipermail/gcc-help/attachments/20110802/d0696361/attachment.p7s>
More information about the Gcc-help
mailing list