Il 16/06/2014 15:58, Sean Bruno ha scritto:
On Mon, 2014-06-16 at 06:55 -0700, Sean Bruno wrote:
Sean, could you show the configure command line?

Also please attach the "make V=1" output and config-host.mak file.

Paolo



I'm using:

 ./configure --static --target-list="i386-bsd-user sparc-bsd-user
sparc64-bsd-user x86_64-bsd-user"

Log:
http://people.freebsd.org/~sbruno/qemu_build_fail.txt

sean



Also, configure output

http://people.freebsd.org/~sbruno/qemu_user_configure.txt

So this is happening because the $(sort) removes the ordering between libraries and breaks static linking. Your patch likely does nothing except adding more copies of the libraries, which lets the linker work.

The executable that breaks is qemu-nbd, which I suspect you couldn't care less about.

The bug remains, and ought to be fixed, probably like this:

diff --git a/rules.mak b/rules.mak
index dde8e00..50b305e 100644
--- a/rules.mak
+++ b/rules.mak
@@ -22,7 +22,7 @@ QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d
 # Same as -I$(SRC_PATH) -I., but for the nested source/object directories
 QEMU_INCLUDES += -I$(<D) -I$(@D)

-extract-libs = $(strip $(sort $(foreach o,$1,$($o-libs))))
+extract-libs = $(foreach o,$1,$($o-libs))
 expand-objs = $(strip $(sort $(filter %.o,$1)) \
                   $(foreach o,$(filter %.mo,$1),$($o-objs)) \
                   $(filter-out %.o %.mo,$1))

but the other question is: do we care about static linking of anything except the user-mode emulators? Should --static automatically imply --disable-tools --disable-system?

Paolo

Reply via email to