[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Qemu-devel] [Bug 1257099] [NEW] QEMU fails to build on CentOS 5.10 with relocation R_X86_64_PC32 error
On 12/05/13 16:24, Richard Henderson wrote: On 12/06/2013 04:18 AM, Paolo Bonzini wrote:$ gcc -shared -o f.so f.c -fPIE -fPIC /usr/bin/ld: /tmp/ccQc9els.o: relocation R_X86_64_PC32 against `f' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status The bug is simply that "-fPIE -fPIC" counts as -fPIE rather than -fPIC: $ gcc -S -o - f.c -fPIE |grep call call f # PC32 relocation $ gcc -S -o - f.c -fPIC |grep call call f@PLT # PLT32 relocationThe easy workaround is to drop -fPIE when we're adding -fPIC. r~ Here is a possible patch based on this statement: From 6e57382c58fa1b9be0fe9db8f35f53a7a7858ccd Mon Sep 17 00:00:00 2001 From: Don Slutz <dslutz@xxxxxxxxxxx> Date: Fri, 6 Dec 2013 03:12:12 +0000Subject: [PATCH] configure: Auto disabling of libtool due to broken toolchain support (bug #1257099) See https://bugs.launchpad.net/bugs/1257099On RHEL5 GCC with libtool and PIE, you get 'relocation R_X86_64_PC32' errors from ld. So disable libtool which disables smartcard-nss (aka nss) if this is true. Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx> --- configure | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/configure b/configure index 0666228..5e34095 100755 --- a/configure +++ b/configure @@ -1310,6 +1310,33 @@ if compile_prog "-Werror -fno-gcse" "" ; then TRANSLATE_OPT_CFLAGS=-fno-gcse fi +# check for broken GCC in RHEL5 with PIE +if test -n "$libtool" -a "$pie" = "" ; then + cat > $TMPC << EOF + +void *f(unsigned char *buf, int len); +void *g(unsigned char *buf, int len); + +void * +f(unsigned char *buf, int len) +{ + return (void*)0L; +} + +void * +g(unsigned char *buf, int len) +{ + return f(buf, len); +} + +EOF + if ! compile_prog "-shared -fPIE -fPIC" ""; then + echo "Disabling libtool due to broken toolchain support" + echo "Defaulting to --disable-smartcard-nss" + libtool= + fi +fi + if test "$static" = "yes" ; then if test "$pie" = "yes" ; then error_exit "static and pie are mutually incompatible" -- 1.8.2.1 -Don Slutz _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |