Message ID | 20200327220353.27233-5-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | configure: Improve PIE and other linkage | expand |
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 --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"