Need to do a full rebuild if you are on Linux x86 host
Due to this commit:
commit 40d6444e91c6ab17e5e8ab01d4eece90cbc4afed
Author: Avi Kivity <[email protected]> Date: Tue Nov 15 20:12:17 2011 +0200
configure: build position independent executables on x86-Linux hosts
PIE binaries cannot be linked with non-PIE binaries and make is not smart enough to rebuild when the CFLAGS have changed.
Regards,
Anthony Liguori
Quoted 10 lines · Anthony Liguori
Due to this commit:
commit
40d6444e91c6ab17e5e8ab01d4eece90cbc4afedAuthor: Avi Kivity <[email protected]> Date: Tue Nov 15 20:12:17 2011 +0200configure: build position independent executables on x86-Linux hosts
PIE binaries cannot be linked with non-PIE binaries and make is not smart enough to rebuild when the CFLAGS have changed.
Breaks build on RHEL-5 and probably also other not-so-recent linux distros.
[ ... ]
CC i386-softmmu/exec.o
[ ... ]
LINK i386-softmmu/qemu-system-i386/usr/bin/ld: exec.o: relocation R_X86_64_TPOFF32 against `tls__cpu_single_env' can not be used when making a shared object; recompile with -fPIC
exec.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [qemu-system-i386] Error 1
make: *** [subdir-i386-softmmu] Error 2
cheers,
Gerd
PS: for those with ipv6 connectivity the full log is available at
http://spunk.home.kraxel.org/bb/builders/rhel5-default/builds/98/steps/compile/logs/stdio
Paolo Bonzini
maintainerQuoted 14 lines · Gerd Hoffmann
Quoted 10 lines · Anthony Liguori
Due to this commit:
commit
40d6444e91c6ab17e5e8ab01d4eece90cbc4afedAuthor: Avi Kivity<[email protected]> Date: Tue Nov 15 20:12:17 2011 +0200configure: build position independent executables on x86-Linux hosts
PIE binaries cannot be linked with non-PIE binaries and make is not smart enough to rebuild when the CFLAGS have changed.
Breaks build on RHEL-5 and probably also other not-so-recent linux distros.
Quoted 11 lines
[ ... ]
CCi386-softmmu/exec.o
[ ... ]
LINK i386-softmmu/qemu-system-i386/usr/bin/ld: exec.o: relocationR_X86_64_TPOFF32against `tls__cpu_single_env' can not be used when making a shared object; recompile with -fPIC
exec.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [qemu-system-i386] Error 1
make: *** [subdir-i386-softmmu] Error 2
It can be worked around by replacing "-fpie" with "-fpic" or (to avoid a rather bad performance degradation) "-fpic -ftls-model=initial-exec" but it's a bug in the linker and it should be fixed in RHEL:
http://sourceware.org/bugzilla/show_bug.cgi?id=10434 (upstream BZ)
https://bugzilla.redhat.com/show_bug.cgi?id=755872 (RHEL BZ)
Paolo
Quoted 29 lines · Paolo Bonzini
Quoted 16 lines · Gerd Hoffmann
Quoted 11 lines · Anthony Liguori
Due to this commit:
commit
40d6444e91c6ab17e5e8ab01d4eece90cbc4afedAuthor: Avi Kivity<[email protected]> Date: Tue Nov 15 20:12:17 2011 +0200configure: build position independent executables on x86-Linux
hostsPIE binaries cannot be linked with non-PIE binaries and make is not smart enough to rebuild when the CFLAGS have changed.
Breaks build on RHEL-5 and probably also other not-so-recent linux distros.
Quoted 11 lines
[ ... ]
CCi386-softmmu/exec.o
[ ... ]
LINK i386-softmmu/qemu-system-i386/usr/bin/ld: exec.o: relocationR_X86_64_TPOFF32against `tls__cpu_single_env' can not be used when making a shared object; recompile with -fPIC
exec.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [qemu-system-i386] Error 1
make: *** [subdir-i386-softmmu] Error 2
Quoted 6 lines
It can be worked around by replacing "-fpie" with "-fpic" or (to avoid a rather bad performance degradation) "-fpic -ftls-model=initial-exec" but it's a bug in the linker and it should be fixed in RHEL:
http://sourceware.org/bugzilla/show_bug.cgi?id=10434 (upstream BZ)
https://bugzilla.redhat.com/show_bug.cgi?id=755872 (RHEL BZ)
I'll extend the configure build test to include a tls variable. If anyone's interested in tweaking it for older distros, that's for 1.1.
Signature · 1 line
error compiling committee.c: too many arguments to function