Commit 9abbdbfe59318779902ab08e5070f3819cb83b58

Authored by Anthony Liguori
1 parent a984a69e

Fix build on Solaris and WIN32

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing 2 changed files with 24 additions and 4 deletions
configure
@@ -1691,6 +1691,29 @@ bsd) @@ -1691,6 +1691,29 @@ bsd)
1691 ;; 1691 ;;
1692 esac 1692 esac
1693 1693
  1694 +# Determine what linker flags to use to force archive inclusion
  1695 +check_linker_flags()
  1696 +{
  1697 + $cc $ARCH_CFLAGS -o $TMPE $OS_CFLAGS $TMPC -Wl,$1 -Wl,$2 >/dev/null 2>/dev/null
  1698 +}
  1699 +
  1700 +cat > $TMPC << EOF
  1701 +int main(void) { }
  1702 +EOF
  1703 +if check_linker_flags --whole-archive --no-whole-archive ; then
  1704 + # GNU ld
  1705 + echo "ARLIBS_BEGIN=-Wl,--whole-archive" >> $config_mak
  1706 + echo "ARLIBS_END=-Wl,--no-whole-archive" >> $config_mak
  1707 +elif check_linker_flags -z,allextract -z,defaultextract ; then
  1708 + # Solaris ld
  1709 + echo "ARLIBS_BEGIN=-Wl,-z,allextract" >> $config_mak
  1710 + echo "ARLIBS_END=-Wl,-z,defaultextract" >> $config_mak
  1711 +else
  1712 + echo "Error: your linker does not support --whole-archive or -z."
  1713 + echo "Please report to qemu-devel@nongnu.org"
  1714 + exit 1
  1715 +fi
  1716 +
1694 tools= 1717 tools=
1695 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then 1718 if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1696 tools="qemu-img\$(EXESUF) $tools" 1719 tools="qemu-img\$(EXESUF) $tools"
rules.mak
@@ -8,10 +8,7 @@ @@ -8,10 +8,7 @@
8 %.o: %.m 8 %.o: %.m
9 $(call quiet-command,$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<," OBJC $(TARGET_DIR)$@") 9 $(call quiet-command,$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<," OBJC $(TARGET_DIR)$@")
10 10
11 -WAS=-Wl,--whole-archive  
12 -WAE=-Wl,--no-whole-archive  
13 -  
14 -LINK = $(call quiet-command,$(CC) $(LDFLAGS) -o $@ $(1) $(LIBS) $(WAS) $(ARLIBS) $(WAE)," LINK $(TARGET_DIR)$@") 11 +LINK = $(call quiet-command,$(CC) $(LDFLAGS) -o $@ $(1) $(ARLIBS_BEGIN) $(ARLIBS) $(ARLIBS_END) $(LIBS)," LINK $(TARGET_DIR)$@")
15 12
16 %$(EXESUF): %.o 13 %$(EXESUF): %.o
17 $(call LINK,$^) 14 $(call LINK,$^)