On 11/15/2011 11:10 AM, Peter Maydell wrote: > On 15 November 2011 08:00, Avi Kivity <a...@redhat.com> wrote: > > > @@ -1099,6 +1099,37 @@ for flag in $gcc_flags; do > > fi > > done > > > > +if test "$pie" = "yes" -a "$static" = "yes" ; then > > + echo "static and pie are mutually incompatible" > > + exit 1 > > +fi > > The -a operator to test has been marked obsolescent in > POSIX -- please don't use it in new code. (Use > if test "$pie" = yes && test "$static" = yes; then )
Okay. For 1.1, I'll convert this script to python. > > +if test "$pie" = "yes" ; then > > + cat > $TMPC << EOF > > +int main(void) { return 0; } > > +EOF > > + if compile_prog "-fPIE -DPIE" "-Wl,-pie"; then > > + QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS" > > + LDFLAGS="-Wl,-pie $LDFLAGS" > > + if compile_prog "-fPIE -DPIE" "-Wl,-pie -Wl,-z,relro -Wl,-z,now"; then > > + LDFLAGS="-Wl,-z,relro -Wl,-z,now $LDFLAGS" > > Why does this second compile test put -fPIE -DPIE into > its local cflags and -Wl,-pie into its local ldflags > when we just put them into the global cflags/ldflags? Ah, I didn't realize compile_prog considered those. Will make parallelizing it harder. Will fix. > > + fi > > + else > > + echo "Disabling PIE due to missing toolchain support" > > + pie="no" > > This means that if the user explicitly asked for PIE (with > --enable-pie") we will carry on even if we couldn't do it. > Usually for configure if the user asked for something then > not providing it is a fatal error. Yeah. -- error compiling committee.c: too many arguments to function