Bug#708741: eglibc: Build error with invalid asm on powerpcspe (new nearbyint*)
Source: eglibc
Version: 2.17-3
Severity: wishlist
Tags: patch upstream
User: debian-powerpcspe@breakpoint.cc
Usertags: powerpcspe
Hi,
eglibc 2.17-3 FTBFS on powerpcspe with:
...
powerpc-linux-gnuspe-gcc-4.7 ../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S -c -isystem /«PKGBUILDDIR»/debian/include -D__NO_MATH_INLINES -D__LIBC_INTERNAL_MATH_INLINES -I../include -I/«PKGBUILDDIR»/build-tree/powerpcspe-libc/math -I/«PKGBUILDDIR»/build-tree/powerpcspe-libc -I../ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/fpu -I../ports/sysdeps/powerpc/powerpc32/e500/fpu -I../ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl -I../ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500 -I../sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl -I../sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu -I../sysdeps/powerpc/powerpc32/fpu -I../ports/sysdeps/unix/sysv/linux/powerpc/powerpc32 -I../nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32 -I../sysdeps/unix/sysv/linux/powerpc/powerpc32 -I../ports/sysdeps/unix/sysv/linux/powerpc -I../nptl/sysdeps/unix/sysv/linux/powerpc -I../sysdeps/unix/sysv/linux/powerpc -I../sysdeps/ieee754/ldbl-128ibm -I../sysdeps/ieee754/ldbl-opt
-I../por
ts/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/powerpc -I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../ports/sysdeps/powerpc/powerpc32/e500 -I../ports/sysdeps/powerpc/powerpc32 -I../sysdeps/powerpc/powerpc32 -I../sysdeps/wordsize-32 -I../sysdeps/powerpc/fpu -I../ports/sysdeps/powerpc -I../nptl/sysdeps/powerpc -I../sysdeps/powerpc -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic -I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnuspe/4.7/include -isystem /usr/lib/gcc/powerpc-linux-gnuspe/4.7/include-fixed -isystem /«PKGBUILDDIR»/debian/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DNOT_IN_libc=1 -DIS_IN_l
ibm=1 -D
IN_LIB=libm -DASSEMBLER -pipe -O2 -fstrict-aliasing -g -Wa,--noexecstack -mhard-float -o /«PKGBUILDDIR»/build-tree/powerpcspe-libc/math/s_nearbyint.o -MD -MP -MF /«PKGBUILDDIR»/build-tree/powerpcspe-libc/math/s_nearbyint.o.dt -MT /«PKGBUILDDIR»/build-tree/powerpcspe-libc/math/s_nearbyint.o
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S: Assembler messages:
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:47: Error: Unrecognized opcode: `lfs'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:49: Error: Unrecognized opcode: `fabs'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:50: Error: Unrecognized opcode: `fsub'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:51: Error: Unrecognized opcode: `fcmpu'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:53: Error: Unrecognized opcode: `fcmpu'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:56: Error: Unrecognized opcode: `fadd'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:57: Error: Unrecognized opcode: `fsub'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:58: Error: Unrecognized opcode: `fabs'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:64: Error: Unrecognized opcode: `fsub'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:65: Error: Unrecognized opcode: `fsub'
../sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S:66: Error: Unrecognized opcode: `fneg'
make[3]: *** [/«PKGBUILDDIR»/build-tree/powerpcspe-libc/math/s_nearbyint.o] Error 1
make[3]: Leaving directory `/«PKGBUILDDIR»/math'
...
This is because of the new nearbyint and nearbyintf symbols which are
implemented on powerpc32 with floating point asm which is unavailable on
powerpcspe.
The attached patch fixes this by providing e500 (i.e. powerpcspe) specific
implementation analogous to most of the other math symbols: Referencing ieee
implementations.
Thanks in advance,
Roland
-- System Information:
Debian Release: 7.0
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: powerpcspe (ppc)
Kernel: Linux 3.8.0 (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
--- /dev/null
+++ eglibc-2.17/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyintf.c
@@ -0,0 +1 @@
+#include <sysdeps/ieee754/flt-32/s_nearbyintf.c>
--- /dev/null
+++ eglibc-2.17/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_nearbyint.c
@@ -0,0 +1 @@
+#include <sysdeps/ieee754/dbl-64/s_nearbyint.c>
Reply to: