[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: