[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-trivial] [PULL 14/52] Fix linking relocatable objects on Sparc
From: |
Michael Tokarev |
Subject: |
[Qemu-trivial] [PULL 14/52] Fix linking relocatable objects on Sparc |
Date: |
Sun, 5 Jun 2016 10:42:51 +0300 |
From: James Clarke <address@hidden>
On Sparc, gcc implicitly passes --relax to the linker, but -r is
incompatible with this. Therefore, if --no-relax is supported, it should
be passed to the linker.
Signed-off-by: James Clarke <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
configure | 13 +++++++++++++
rules.mak | 2 +-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index b5aab72..360b7a5 100755
--- a/configure
+++ b/configure
@@ -4526,6 +4526,18 @@ if compile_prog "" "" ; then
have_fsxattr=yes
fi
+#################################################
+# Sparc implicitly links with --relax, which is
+# incompatible with -r. It does no harm to give
+# it on other platforms too.
+
+cat > $TMPC << EOF
+int foo(void) { return 0; }
+EOF
+if compile_prog "" "-nostdlib -Wl,-r -Wl,--no-relax"; then
+ LD_REL_FLAGS="-Wl,--no-relax"
+fi
+
##########################################
# End of CC checks
# After here, no more $cc or $ld runs
@@ -5529,6 +5541,7 @@ else
fi
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
+echo "LD_REL_FLAGS=$LD_REL_FLAGS" >> $config_host_mak
echo "LIBS+=$LIBS" >> $config_host_mak
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
echo "EXESUF=$EXESUF" >> $config_host_mak
diff --git a/rules.mak b/rules.mak
index 4a8f464..dca5718 100644
--- a/rules.mak
+++ b/rules.mak
@@ -95,7 +95,7 @@ module-common.o: CFLAGS += $(DSO_OBJ_CFLAGS)
$(if $(findstring /,$@),$(call quiet-command,cp $@ $(subst /,-,$@), "
CP $(subst /,-,$@)"))
-LD_REL := $(CC) -nostdlib -Wl,-r
+LD_REL := $(CC) -nostdlib -Wl,-r $(LD_REL_FLAGS)
%.mo:
$(call quiet-command,$(LD_REL) -o $@ $^," LD -r $(TARGET_DIR)$@")
--
2.1.4
- [Qemu-trivial] [PULL 00/52] Trivial patches for 2016-06-05, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 11/52] remove useless muldiv64(), Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 10/52] The only 64bit parameter of muldiv64() is the first one., Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 06/52] target-moxie: Remove unused struct elements, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 08/52] gdbstub: set listen backlog to 1, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 09/52] scripts: add muldiv64() checking coccinelle scripts, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 19/52] monitor: Typo fix, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 20/52] qdev: Clean up around properties, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 31/52] all: Remove unnecessary glib.h includes, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 14/52] Fix linking relocatable objects on Sparc,
Michael Tokarev <=
- [Qemu-trivial] [PULL 25/52] Fix configure test for PBKDF2 in nettle, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 07/52] po/Makefile: call rm -f directly, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 24/52] docs: Fix a couple of typos in throttle.txt, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 36/52] thunk: Rename args and fields in host-target bitmask conversion code, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 42/52] crypto: Use DIV_ROUND_UP, Michael Tokarev, 2016/06/05
- [Qemu-trivial] [PULL 50/52] pc-bios/s390-ccw: Use DIV_ROUND_UP, Michael Tokarev, 2016/06/05