diff options
author | Paolo Bonzini | 2016-11-29 16:37:20 +0100 |
---|---|---|
committer | Stefan Hajnoczi | 2016-11-29 17:21:05 +0100 |
commit | 7ecf44a57991595b45b9baf47b298fb9fb511969 (patch) | |
tree | cf0c99a92bf13f24707d26498fa86e6618c5807f /configure | |
parent | Merge remote-tracking branch 'fam/tags/for-upstream' into staging (diff) | |
download | qemu-7ecf44a57991595b45b9baf47b298fb9fb511969.tar.gz qemu-7ecf44a57991595b45b9baf47b298fb9fb511969.tar.xz qemu-7ecf44a57991595b45b9baf47b298fb9fb511969.zip |
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 'configure')
-rwxr-xr-x | configure | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -4723,8 +4723,14 @@ EOF if ! compile_object ""; then error_exit "Failed to compile object file for LD_REL_FLAGS test" fi -if do_cc -nostdlib -Wl,-r -Wl,--no-relax -o $TMPMO $TMPO; then - LD_REL_FLAGS="-Wl,--no-relax" +for i in '-Wl,-r -Wl,--no-relax' -Wl,-r -r; do + if do_cc -nostdlib $i -o $TMPMO $TMPO; then + LD_REL_FLAGS=$i + break + fi +done +if test "$modules" = "yes" && test "$LD_REL_FLAGS" = ""; then + feature_not_found "modules" "Cannot find how to build relocatable objects" fi ########################################## |