diff mbox series

[6/7] configure: Override the os default with --disable-pie

Message ID 20191218031920.6414-7-richard.henderson@linaro.org
State Superseded
Headers show
Series configure: Improve PIE and other linkage | expand

Commit Message

Richard Henderson Dec. 18, 2019, 3:19 a.m. UTC
Some distributions, e.g. Ubuntu 19.10, enable PIE by default.
If for some reason one wishes to build a non-pie binary, we
must provide additional options to override.

At the same time, reorg the code to an elif chain.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 configure | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

-- 
2.20.1

Comments

Thomas Huth Dec. 18, 2019, 8:13 a.m. UTC | #1
On 18/12/2019 04.19, Richard Henderson wrote:
> Some distributions, e.g. Ubuntu 19.10, enable PIE by default.

> If for some reason one wishes to build a non-pie binary, we

> must provide additional options to override.

> 

> At the same time, reorg the code to an elif chain.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  configure | 25 ++++++++++++-------------

>  1 file changed, 12 insertions(+), 13 deletions(-)

> 

> diff --git a/configure b/configure

> index f8981eec15..1645a58b3a 100755

> --- a/configure

> +++ b/configure

> @@ -2029,19 +2029,18 @@ if compile_prog "-Werror -fno-pie" "-no-pie"; then

>    LDFLAGS_NOPIE="-no-pie"

>  fi

>  

> -if test "$pie" != "no" ; then

> -  if compile_prog "-fPIE -DPIE" "-pie"; then

> -    QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"

> -    LDFLAGS="-pie $LDFLAGS"

> -    pie="yes"

> -  else

> -    if test "$pie" = "yes"; then

> -      error_exit "PIE not available due to missing toolchain support"

> -    else

> -      echo "Disabling PIE due to missing toolchain support"

> -      pie="no"

> -    fi

> -  fi

> +if test "$pie" = "no"; then

> +  QEMU_CFLAGS="$CFLAGS_NOPIE $QEMU_CFLAGS"

> +  LDFLAGS="$LDFLAGS_NOPIE $LDFLAGS"

> +elif compile_prog "-fPIE -DPIE" "-pie"; then

> +  QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"

> +  LDFLAGS="-pie $LDFLAGS"

> +  pie="yes"

> +elif test "$pie" = "yes"; then

> +  error_exit "PIE not available due to missing toolchain support"

> +else

> +  echo "Disabling PIE due to missing toolchain support"

> +  pie="no"

>  fi

>  

>  # Detect support for DT_BIND_NOW.

> 


Reviewed-by: Thomas Huth <thuth@redhat.com>
Philippe Mathieu-Daudé Dec. 18, 2019, 5:57 p.m. UTC | #2
On 12/18/19 4:19 AM, Richard Henderson wrote:
> Some distributions, e.g. Ubuntu 19.10, enable PIE by default.

> If for some reason one wishes to build a non-pie binary, we

> must provide additional options to override.

> 

> At the same time, reorg the code to an elif chain.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>   configure | 25 ++++++++++++-------------

>   1 file changed, 12 insertions(+), 13 deletions(-)

> 

> diff --git a/configure b/configure

> index f8981eec15..1645a58b3a 100755

> --- a/configure

> +++ b/configure

> @@ -2029,19 +2029,18 @@ if compile_prog "-Werror -fno-pie" "-no-pie"; then

>     LDFLAGS_NOPIE="-no-pie"

>   fi

>   

> -if test "$pie" != "no" ; then

> -  if compile_prog "-fPIE -DPIE" "-pie"; then

> -    QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"

> -    LDFLAGS="-pie $LDFLAGS"

> -    pie="yes"

> -  else

> -    if test "$pie" = "yes"; then

> -      error_exit "PIE not available due to missing toolchain support"

> -    else

> -      echo "Disabling PIE due to missing toolchain support"

> -      pie="no"

> -    fi

> -  fi

> +if test "$pie" = "no"; then

> +  QEMU_CFLAGS="$CFLAGS_NOPIE $QEMU_CFLAGS"

> +  LDFLAGS="$LDFLAGS_NOPIE $LDFLAGS"

> +elif compile_prog "-fPIE -DPIE" "-pie"; then

> +  QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"

> +  LDFLAGS="-pie $LDFLAGS"

> +  pie="yes"

> +elif test "$pie" = "yes"; then

> +  error_exit "PIE not available due to missing toolchain support"

> +else

> +  echo "Disabling PIE due to missing toolchain support"

> +  pie="no"

>   fi

>   

>   # Detect support for DT_BIND_NOW.

> 


Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff mbox series

Patch

diff --git a/configure b/configure
index f8981eec15..1645a58b3a 100755
--- a/configure
+++ b/configure
@@ -2029,19 +2029,18 @@  if compile_prog "-Werror -fno-pie" "-no-pie"; then
   LDFLAGS_NOPIE="-no-pie"
 fi
 
-if test "$pie" != "no" ; then
-  if compile_prog "-fPIE -DPIE" "-pie"; then
-    QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"
-    LDFLAGS="-pie $LDFLAGS"
-    pie="yes"
-  else
-    if test "$pie" = "yes"; then
-      error_exit "PIE not available due to missing toolchain support"
-    else
-      echo "Disabling PIE due to missing toolchain support"
-      pie="no"
-    fi
-  fi
+if test "$pie" = "no"; then
+  QEMU_CFLAGS="$CFLAGS_NOPIE $QEMU_CFLAGS"
+  LDFLAGS="$LDFLAGS_NOPIE $LDFLAGS"
+elif compile_prog "-fPIE -DPIE" "-pie"; then
+  QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"
+  LDFLAGS="-pie $LDFLAGS"
+  pie="yes"
+elif test "$pie" = "yes"; then
+  error_exit "PIE not available due to missing toolchain support"
+else
+  echo "Disabling PIE due to missing toolchain support"
+  pie="no"
 fi
 
 # Detect support for DT_BIND_NOW.