http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52497
Bug #: 52497 Summary: libffi doesn't build on powerpc64-linux after latest upstream merge Classification: Unclassified Product: gcc Version: 4.7.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libffi AssignedTo: unassig...@gcc.gnu.org ReportedBy: berg...@gcc.gnu.org Host: powerpc*-linux Target: powerpc*-linux Build: powerpc*-linux libffi/powerpc/ffi.c fails to build on powerpc64-linux with the following errors: libtool: compile: /home/bergner/gcc/build/gcc-mainline-libffi/./gcc/xgcc -B/home/bergner/gcc/build/gcc-mainline-libffi/./gcc/ -B/home/bergner/gcc/install/gcc-mainline-libffi/powerpc64-linux/bin/ -B/home/bergner/gcc/install/gcc-mainline-libffi/powerpc64-linux/lib/ -isystem /home/bergner/gcc/install/gcc-mainline-libffi/powerpc64-linux/include -isystem /home/bergner/gcc/install/gcc-mainline-libffi/powerpc64-linux/sys-include -DHAVE_CONFIG_H -I. -I/home/bergner/gcc/gcc-mainline-testsuite-base/libffi -I. -I/home/bergner/gcc/gcc-mainline-testsuite-base/libffi/include -Iinclude -I/home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src -Wall -g -fexceptions -g -O2 -m32 -fPIC -mstrict-align -MT src/powerpc/ffi.lo -MD -MP -MF src/powerpc/.deps/ffi.Tpo -c /home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src/powerpc/ffi.c -fPIC -DPIC -o src/powerpc/.libs/ffi.o /home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src/powerpc/ffi.c: In function ‘ffi_prep_args_SYSV’: /home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src/powerpc/ffi.c:199:4: error: ‘double_tmp’ undeclared (first use in this function) /home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src/powerpc/ffi.c:199:4: note: each undeclared identifier is reported only once for each function it appears in /home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src/powerpc/ffi.c:215:6: error: label ‘soft_double_prep’ used but not defined /home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src/powerpc/ffi.c: In function ‘ffi_closure_helper_SYSV’: /home/bergner/gcc/gcc-mainline-testsuite-base/libffi/src/powerpc/ffi.c:1135:8: error: ‘temp’ undeclared (first use in this function) make[7]: *** [src/powerpc/ffi.lo] Error 1 The double_tmp and temp bugs are easy to fix with the following patch, but without knowing more about the missing label, I don't feel confident on where to place it. I checked the upstream libffi source and it fails the exact same way, so another merge won't help yet. Index: libffi/src/powerpc/ffi.c =================================================================== --- libffi/src/powerpc/ffi.c (revision 184944) +++ libffi/src/powerpc/ffi.c (working copy) @@ -146,6 +146,7 @@ ffi_prep_args_SYSV (extended_cif *ecif, gpr_base.u = stacktop.u - ASM_NEEDS_REGISTERS - NUM_GPR_ARG_REGISTERS; intarg_count = 0; #ifndef __NO_FPRS__ + double double_tmp; fpr_base.d = gpr_base.d - NUM_FPR_ARG_REGISTERS; fparg_count = 0; copy_space.c = ((flags & FLAG_FP_ARGUMENTS) ? fpr_base.c : gpr_base.c); @@ -1132,7 +1133,7 @@ ffi_closure_helper_SYSV (ffi_closure *cl if (nf < 8) { - temp = pfr->d; + double temp = pfr->d; pfr->f = (float) temp; avalue[i] = pfr; nf++;