On Mon, Aug 20, 2012 at 3:27 PM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 16 August 2012 14:22, Natanael Copa <natanael.c...@gmail.com> wrote: >> Fixes build against uClibc. >> >> uClibc provides 2 versions of clock_gettime(), one with realtime >> support and one without (this is so you can avoid linking in -lrt >> unless actually needed). This means that the clock_gettime() don't >> need -lrt. We still need it for timer_create() so we check for this >> function in addition. >> >> We also need check if -lm is needed for isnan(). >> >> Both -lm and -lrt are needed for libs_qga. > > This patch breaks building the linux-user targets with --static: > > cam-vm-266:precise:qemu$ ./configure --target-list=arm-linux-user --static > > Error: librt check failed > > > The test program is failing to link with this > /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/librt.a(timer_create.o): > In function `timer_create': > (.text+0x121): undefined reference to `pthread_once' > > and a lot of similar errors.
smells missing -lpthread. > (This seems to me like a glibc bug but since it's out there we rather > have to deal with it I think.) Agree. Will configure pass if you: --- a/configure +++ b/configure @@ -2661,6 +2661,10 @@ if compile_prog "" "" ; then elif compile_prog "" "-lrt" ; then LIBS="-lrt $LIBS" libs_qga="-lrt $libs_qga" +# we might need -lpthread in case static linking on glibc +elif compile_prog "" "-lrt -lpthread" ; then + LIBS="-lrt -lpthread $LIBS" + libs_qga="-lrt -lpthread $libs_qga" else echo echo "Error: librt check failed" Thanks for feedback! -- Natanael Copa