[Bug libffi/52497] New: libffi doesn't build on powerpc64-linux after latest upstream merge
bergner at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 5 22:42:00 GMT 2012
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: unassigned@gcc.gnu.org
ReportedBy: bergner@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++;
More information about the Gcc-bugs
mailing list