From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56202) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVHDU-0003LB-R1 for qemu-devel@nongnu.org; Tue, 10 Mar 2015 06:16:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVHDR-0002nV-M4 for qemu-devel@nongnu.org; Tue, 10 Mar 2015 06:16:48 -0400 Received: from mail-we0-x233.google.com ([2a00:1450:400c:c03::233]:39781) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVHDR-0002nQ-Fa for qemu-devel@nongnu.org; Tue, 10 Mar 2015 06:16:45 -0400 Received: by wevl61 with SMTP id l61so628461wev.6 for ; Tue, 10 Mar 2015 03:16:45 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <54FEC488.20007@redhat.com> Date: Tue, 10 Mar 2015 11:16:40 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1425912873-21215-1-git-send-email-wei.liu2@citrix.com> In-Reply-To: <1425912873-21215-1-git-send-email-wei.liu2@citrix.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH RFC] Makefile.target: prepend $libs_softmmu to $LIBS List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wei Liu , qemu-devel@nongnu.org Cc: stefano.stabellini@eu.citrix.com On 09/03/2015 15:54, Wei Liu wrote: > 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 > --- > Makefile.target | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Makefile.target b/Makefile.target > index 2262d89..1083377 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -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) A side effect of the patch is that changes to libs_softmmu do not propagate into LIBS. So you also need this: diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs index 7ed76a9..4eb9e98 100644 --- a/hw/display/Makefile.objs +++ b/hw/display/Makefile.objs @@ -20,7 +20,7 @@ common-obj-$(CONFIG_ZAURUS) += tc6393xb.o ifeq ($(CONFIG_MILKYMIST_TMU2),y) common-obj-y += milkymist-tmu2.o -libs_softmmu += $(GLX_LIBS) +milkymist-tmu2.o-libs += $(GLX_LIBS) endif obj-$(CONFIG_OMAP) += omap_dss.o Because there are pending changes to OpenGL detection, I'll keep this patch queued in my tree and will probably submit it only for 2.4. Paolo