Commit 9abbdbfe59318779902ab08e5070f3819cb83b58
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 | 1691 | ;; |
1692 | 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 | 1717 | tools= |
1695 | 1718 | if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then |
1696 | 1719 | tools="qemu-img\$(EXESUF) $tools" | ... | ... |
rules.mak
... | ... | @@ -8,10 +8,7 @@ |
8 | 8 | %.o: %.m |
9 | 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 | 13 | %$(EXESUF): %.o |
17 | 14 | $(call LINK,$^) | ... | ... |