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,$^) | ... | ... |