diff mbox series

[for-5.0,v3,4/7] configure: Always detect -no-pie toolchain support

Message ID 20200327220353.27233-5-richard.henderson@linaro.org
State New
Headers show
Series configure: Improve PIE and other linkage | expand

Commit Message

Richard Henderson March 27, 2020, 10:03 p.m. UTC
The CFLAGS_NOPIE and LDFLAGS_NOPIE variables are used
in pc-bios/optionrom/Makefile, which has nothing to do
with the PIE setting of the main qemu executables.

This overrides any operating system default to build
all executables as PIE, which is important for ROMs.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 configure | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

Comments

Alex Bennée March 30, 2020, 9:24 a.m. UTC | #1
Richard Henderson <richard.henderson@linaro.org> writes:

> The CFLAGS_NOPIE and LDFLAGS_NOPIE variables are used
> in pc-bios/optionrom/Makefile, which has nothing to do
> with the PIE setting of the main qemu executables.
>
> This overrides any operating system default to build
> all executables as PIE, which is important for ROMs.
>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

> ---
>  configure | 18 ++++++++----------
>  1 file changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/configure b/configure
> index cbde833f6e..7ba18783cb 100755
> --- a/configure
> +++ b/configure
> @@ -2107,26 +2107,24 @@ if ! compile_prog "-Werror" "" ; then
>  	"Thread-Local Storage (TLS). Please upgrade to a version that does."
>  fi
>  
> -if test "$pie" != "no" ; then
> -  cat > $TMPC << EOF
> +cat > $TMPC << EOF
>  
>  #ifdef __linux__
>  #  define THREAD __thread
>  #else
>  #  define THREAD
>  #endif
> -
>  static THREAD int tls_var;
> -
>  int main(void) { return tls_var; }
> -
>  EOF
> -  # check we support --no-pie first...
> -  if compile_prog "-Werror -fno-pie" "-no-pie"; then
> -    CFLAGS_NOPIE="-fno-pie"
> -    LDFLAGS_NOPIE="-nopie"
> -  fi
>  
> +# Check we support --no-pie first; we will need this for building ROMs.
> +if compile_prog "-Werror -fno-pie" "-no-pie"; then
> +  CFLAGS_NOPIE="-fno-pie"
> +  LDFLAGS_NOPIE="-no-pie"
> +fi
> +
> +if test "$pie" != "no" ; then
>    if compile_prog "-fPIE -DPIE" "-pie"; then
>      QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"
>      QEMU_LDFLAGS="-pie $QEMU_LDFLAGS"
diff mbox series

Patch

diff --git a/configure b/configure
index cbde833f6e..7ba18783cb 100755
--- a/configure
+++ b/configure
@@ -2107,26 +2107,24 @@  if ! compile_prog "-Werror" "" ; then
 	"Thread-Local Storage (TLS). Please upgrade to a version that does."
 fi
 
-if test "$pie" != "no" ; then
-  cat > $TMPC << EOF
+cat > $TMPC << EOF
 
 #ifdef __linux__
 #  define THREAD __thread
 #else
 #  define THREAD
 #endif
-
 static THREAD int tls_var;
-
 int main(void) { return tls_var; }
-
 EOF
-  # check we support --no-pie first...
-  if compile_prog "-Werror -fno-pie" "-no-pie"; then
-    CFLAGS_NOPIE="-fno-pie"
-    LDFLAGS_NOPIE="-nopie"
-  fi
 
+# Check we support --no-pie first; we will need this for building ROMs.
+if compile_prog "-Werror -fno-pie" "-no-pie"; then
+  CFLAGS_NOPIE="-fno-pie"
+  LDFLAGS_NOPIE="-no-pie"
+fi
+
+if test "$pie" != "no" ; then
   if compile_prog "-fPIE -DPIE" "-pie"; then
     QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"
     QEMU_LDFLAGS="-pie $QEMU_LDFLAGS"