Skip to content

Commit

Permalink
configure: clean up PIE option handling
Browse files Browse the repository at this point in the history
Keep together all the conditions that lead to disabling PIE.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
bonzini committed Oct 18, 2023
1 parent 39fb3cf commit 2e938a9
Showing 1 changed file with 13 additions and 20 deletions.
33 changes: 13 additions & 20 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -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
:
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit 2e938a9

Please sign in to comment.