Makefile.target: prepend $libs_softmmu to $LIBS
authorWei Liu <wei.liu2@citrix.com>
Mon, 9 Mar 2015 14:54:33 +0000 (14:54 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 28 Apr 2015 20:14:14 +0000 (22:14 +0200)
I discovered a problem when trying to build QEMU statically with gcc.
libm is an element of LIBS while libpixman-1 is an element in
libs_softmmu. Libpixman references functions in libm, so the original
ordering makes linking fail.

This fix is to reorder $libs_softmmu and $LIBS to make -lm appear after
-lpixman-1. However I'm not quite sure if this is the right fix, hence
the RFC tag.

Normally QEMU is built with c++ compiler which happens to link in libm
(at least this is the case with g++), so building QEMU statically
normally just works and nobody notices this issue.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Message-Id: <1425912873-21215-1-git-send-email-wei.liu2@citrix.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Makefile.target

index 2262d89354dfab40e7244b9ffd327cf2d22a98be..1083377403bb42918bf78259c5c3c65e08f33d4d 100644 (file)
@@ -134,7 +134,7 @@ obj-$(CONFIG_KVM) += kvm-all.o
 obj-y += memory.o savevm.o cputlb.o
 obj-y += memory_mapping.o
 obj-y += dump.o
-LIBS+=$(libs_softmmu)
+LIBS := $(libs_softmmu) $(LIBS)
 
 # xen support
 obj-$(CONFIG_XEN) += xen-common.o