Multiple definition of vfork() when linking statically

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri Aug 29 13:14:30 UTC 2014


Hello,

When doing static linking, vfork() is defined in both libc.a and
libpthread.a, causing a build failure such as:

aserver.c:(.text.startup+0x464): warning: gethostbyname is obsolescent, use getnameinfo() instead.
/home/test/autobuild/instance-1/output/host/usr/sh4-buildroot-linux-uclibc/sysroot/usr/lib/libc.a(vfork.os): In function `vfork':
(.text+0x0): multiple definition of `__vfork'
/home/test/autobuild/instance-1/output/host/usr/sh4-buildroot-linux-uclibc/sysroot/usr/lib/libpthread.a(pt-vfork.os):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status

This happens with uClibc 0.9.33.2 + the set of patches visible at
http://git.buildroot.net/buildroot/tree/package/uclibc/0.9.33.2?id=2014.05-rc1.

It happens on several architectures:

 * SuperH
   http://autobuild.buildroot.org/results/a81/a810c2f27dee1978808461c05cbdcbf51a214e09/build-end.log

 * i386
   http://autobuild.buildroot.org/results/f83/f83b65bfc6ea7c7406a02e92afda43e4c5db6e7c/build-end.log

 * x86-64
   http://autobuild.buildroot.org/results/64f/64f418f54885e8b5093dc8949c2d1d1ff3c938ea/build-end.log

 * powerpc
   http://autobuild.buildroot.org/results/d5b/d5b7ac84dde0e4e26cd7cc46d79e66c39ed5cd53/build-end.log

Any idea?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the uClibc mailing list