diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2016-11-29 16:37:20 +0100 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2016-11-29 16:21:05 +0000 |
commit | 7ecf44a57991595b45b9baf47b298fb9fb511969 (patch) | |
tree | cf0c99a92bf13f24707d26498fa86e6618c5807f /rules.mak | |
parent | 51cd8ef8ad014675e93dda2ad55537bbb23c9648 (diff) |
rules.mak: Also try -r to build modules
Building qemu fails in distributions where gcc enables PIE by default
(e.g. Debian unstable) with:
/usr/bin/ld: -r and -pie may not be used together
You have to use -r instead of -Wl,-r to avoid gcc passing -pie to the linker
when PIE is enabled and a relocatable object is passed. However, clang
does not know about -r, so try -Wl,-r first.
[This is a fix for commit c96f0ee6a67ca6277366e78ce5d84d5c20dd596f
("rules.mak: Use -r instead of -Wl, -r to fix building when PIE is
default") which mostly worked but broke the ./configure --enable-modules
build with clang.
--Stefan]
Reported-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20161129153720.29747-1-pbonzini@redhat.com
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'rules.mak')
-rw-r--r-- | rules.mak | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -93,7 +93,7 @@ module-common.o: CFLAGS += $(DSO_OBJ_CFLAGS) $(if $(findstring /,$@),$(call quiet-command,cp $@ $(subst /,-,$@),"CP","$(subst /,-,$@)")) -LD_REL := $(CC) -nostdlib -r $(LD_REL_FLAGS) +LD_REL := $(CC) -nostdlib $(LD_REL_FLAGS) %.mo: $(call quiet-command,$(LD_REL) -o $@ $^,"LD","$(TARGET_DIR)$@") |