[Clfs-support] Linkage error when making uClibc-0.9.31

Andrew Bradford bradfa at gmail.com
Wed Mar 30 12:56:08 PDT 2011


>
> $ wget http://www.uclibc.org/downloads/uClibc-0.9.31.tar.bz2
>>> $ wget
>>> http://patches.cross-lfs.org/embedded-dev/uClibc-0.9.31-configs-2.patch
>>> $ tar xvfj uClibc-0.9.31.tar.bz2
>>> $ cd uClibc-0.9.31
>>> $ patch -Np1 -i ../uClibc-0.9.31-configs-2.patch
>>> $ cp -v clfs/config.${CLFS_ARCH}.${CLFS_ENDIAN} .config
>>> $ if [ "${CLFS_ABI}" == "aapcs" ] || [ "${CLFS_ABI}" == "aapcs-linux" ];
>>> then
>>>       sed -i s/CONFIG_ARM_OABI/CONFIG_ARM_EABI/g .config;
>>> fi
>>> $ make oldconfig
>>> $ make
>>>
>>> [...]
>>> In file included from ./ldso/include/dl-string.h:11:0,
>>>                  from ./ldso/include/ldso.h:40,
>>>                  from libc/misc/elf/dl-iterate-phdr.c:16:
>>> ./ldso/ldso/arm/dl-sysdep.h: In function 'elf_machine_load_address':
>>> ./ldso/ldso/arm/dl-sysdep.h:119:37: warning: taking address of expression
>>> of type 'void'
>>>   CC libc/misc/internals/__uClibc_main.os
>>>   CC libc/inet/rpc/rpc_thread.os
>>>   CC libc/stdlib/atexit.os
>>>   AR cr lib/libc.a
>>>   STRIP -x -R .note -R .comment lib/libc.a
>>>   AR cr lib/uclibc_nonshared.a
>>>   STRIP -x -R .note -R .comment lib/uclibc_nonshared.a
>>>   AR cr libc/libc_so.a
>>>   STRIP -x -R .note -R .comment libc/libc_so.a
>>>   LD libuClibc-0.9.31.so
>>> libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
>>> _fpmaxtostr.c:(.text+0xbc): undefined reference to `__nedf2'
>>> _fpmaxtostr.c:(.text+0xe0): undefined reference to `__eqdf2'
>>> _fpmaxtostr.c:(.text+0xfc): undefined reference to `__divdf3'
>>> _fpmaxtostr.c:(.text+0x108): undefined reference to `__ltdf2'
>>> _fpmaxtostr.c:(.text+0x17c): undefined reference to `__muldf3'
>>> _fpmaxtostr.c:(.text+0x348): undefined reference to `__gedf2'
>>> _fpmaxtostr.c:(.text+0x40c): undefined reference to `__fixunsdfsi'
>>> libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
>>> __psfs_do_numeric.c:(.text+0x53c): undefined reference to `__truncdfsf2'
>>> collect2: ld returned 1 exit status
>>> make: *** [lib/libc.so] Error 1
>>>
>>
Ivan,

The functions that aren't being found are the soft float functions in
libgcc.
See: http://gcc.gnu.org/onlinedocs/gccint/Soft-float-library-routines.html

Somehow, either your libgcc got built without the soft float libraries or
the linker can't find libgcc (not finding libgcc seems unlikely if you can
build uClibc when disabling floating point stuff, I assume there's other
parts of libgcc that are needed).  Fix soft floatyness in libgcc, and I
think the problem gets solved.

I'll have a closer look soon and let you know what I find.

-Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clfs.org/pipermail/clfs-support-clfs.org/attachments/20110330/4afed47b/attachment-0001.htm>


More information about the Clfs-support mailing list