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