Browse Source

configure: clean up PIE option handling

Keep together all the conditions that lead to disabling PIE.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
pull/254/head
Paolo Bonzini 3 years ago
parent
commit
2e938a9a61
  1. 33
      configure

33
configure

@ -373,17 +373,6 @@ else
targetos=bogus
fi
# OS specific
case $targetos in
windows)
pie="no"
;;
haiku)
pie="no"
;;
esac
if test ! -z "$cpu" ; then
# command line argument
:
@ -1088,19 +1077,23 @@ static THREAD int tls_var;
int main(void) { return tls_var; }
EOF
if test "$static" = "yes"; then
if test "$pie" != "no" && compile_prog "-Werror -fPIE -DPIE" "-static-pie"; then
pie="yes"
elif test "$pie" = "yes"; then
error_exit "-static-pie not available due to missing toolchain support"
if test "$targetos" = windows || test "$targetos" = haiku; then
if test "$pie" = "yes"; then
error_exit "PIE not available due to missing OS support"
fi
pie=no
fi
if test "$pie" != "no"; then
if test "$static" = "yes"; then
pie_ldflags=-static-pie
else
pie="no"
pie_ldflags=-pie
fi
elif test "$pie" != "no"; then
if compile_prog "-Werror -fPIE -DPIE" "-pie"; then
if compile_prog "-Werror -fPIE -DPIE" "$pie_ldflags"; then
pie="yes"
elif test "$pie" = "yes"; then
error_exit "PIE not available due to missing toolchain support"
error_exit "-static-pie not available due to missing toolchain support"
else
echo "Disabling PIE due to missing toolchain support"
pie="no"

Loading…
Cancel
Save