Source: ecl Version: 12.12.1-3 Severity: wishlist Tags: patch User: debian-powerpc...@breakpoint.cc Usertags: powerpcspe
Hi, ecl currently FTBFS on powerpcspe like this: [...] libtool: compile: gcc -fPIC -DHAVE_CONFIG_H -I. -I/«PKGBUILDDIR»/src/libffi -I. -I/«PKGBUILDDIR»/src/libffi/include -Iinclude -I/«PKGBUILDDIR»/src/libffi/src -I. -I/«PKGBUILDDIR»/src/libffi/include -Iinclude -I/«PKGBUILDDIR»/src/libffi/src -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -D_THREAD_SAFE -MT src/powerpc/sysv.lo -MD -MP -MF src/powerpc/.deps/sysv.Tpo -c /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S -o src/powerpc/sysv.o /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S: Assembler messages: /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:88: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:89: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:90: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:91: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:93: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:94: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:95: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:96: Error: unrecognized opcode: `lfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:129: Error: unrecognized opcode: `stfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:132: Error: unrecognized opcode: `stfd' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:135: Error: unrecognized opcode: `stfs' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:147: Error: unrecognized opcode: `stswx' /«PKGBUILDDIR»/src/libffi/src/powerpc/sysv.S:150: Error: unrecognized opcode: `stswi' make[4]: *** [src/powerpc/sysv.lo] Error 1 make[4]: Leaving directory `/«PKGBUILDDIR»/build/libffi' make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory `/«PKGBUILDDIR»/build/libffi' make[2]: *** [libeclffi.a] Error 2 make[2]: Leaving directory `/«PKGBUILDDIR»/build' make[1]: *** [all] Error 2 make[1]: Leaving directory `/«PKGBUILDDIR»' make: *** [build-arch-stamp] Error 2 [...] The attached patch fixes this by omitting the floating point register save/restore operations on powerpcspe because those simply don't exist on powerpcspe. Roland -- System Information: Debian Release: 7.0 APT prefers unreleased APT policy: (500, 'unreleased'), (500, 'unstable') Architecture: powerpcspe (ppc) Kernel: Linux 3.9.0-dirty (SMP w/2 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8) Shell: /bin/sh linked to /bin/dash
Index: ecl-13.5.1/src/libffi/src/powerpc/sysv.S =================================================================== --- ecl-13.5.1.orig/src/libffi/src/powerpc/sysv.S 2013-12-12 15:47:34.000000000 +0100 +++ ecl-13.5.1/src/libffi/src/powerpc/sysv.S 2013-12-12 15:52:07.771561924 +0100 @@ -85,6 +85,7 @@ /* Load all the FP registers. */ bf- 6,2f +#ifndef __NO_FPRS__ lfd %f1,-16-(8*4)-(8*8)(%r28) lfd %f2,-16-(8*4)-(7*8)(%r28) lfd %f3,-16-(8*4)-(6*8)(%r28) @@ -94,6 +95,7 @@ lfd %f6,-16-(8*4)-(3*8)(%r28) lfd %f7,-16-(8*4)-(2*8)(%r28) lfd %f8,-16-(8*4)-(1*8)(%r28) +#endif 2: /* Make the call. */ @@ -126,13 +128,19 @@ L(fp_return_value): bf 28,L(float_return_value) +#ifndef __NO_FPRS__ stfd %f1,0(%r30) +#endif mtcrf 0x02,%r31 /* cr6 */ bf 27,L(done_return_value) +#ifndef __NO_FPRS__ stfd %f2,8(%r30) +#endif b L(done_return_value) L(float_return_value): +#ifndef __NO_FPRS__ stfs %f1,0(%r30) +#endif b L(done_return_value) L(small_struct_return_value): @@ -144,10 +152,14 @@ /* smst_one_register: */ slw %r3,%r3,%r5 /* Left-justify value in r3 */ mtxer %r6 /* move byte count to XER ... */ +#ifndef __NO_FPRS__ stswx %r3,0,%r30 /* ... and store that many bytes */ +#endif bf+ 26,L(done_return_value) /* struct in r3:r4 ? */ add %r6,%r6,%r30 /* adjust pointer */ +#ifndef __NO_FPRS__ stswi %r4,%r6,4 /* store last four bytes */ +#endif b L(done_return_value) .LFE1: --- ecl-13.5.1.orig/src/libffi/src/powerpc/ppc_closure.S +++ ecl-13.5.1/src/libffi/src/powerpc/ppc_closure.S @@ -122,20 +122,26 @@ ENTRY(ffi_closure_SYSV) blr # case FFI_TYPE_FLOAT +#ifndef __NO_FPRS__ lfs %f1,112+0(%r1) +#endif mtlr %r0 addi %r1,%r1,144 blr # case FFI_TYPE_DOUBLE +#ifndef __NO_FPRS__ lfd %f1,112+0(%r1) +#endif mtlr %r0 addi %r1,%r1,144 blr # case FFI_TYPE_LONGDOUBLE +#ifndef __NO_FPRS__ lfd %f1,112+0(%r1) lfd %f2,112+8(%r1) +#endif mtlr %r0 b .Lfinish
_______________________________________________ pkg-common-lisp-devel mailing list pkg-common-lisp-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-common-lisp-devel