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

Bug#632863: eglibc: add support for arch powerpcspe



>>>>> "Sebastian" == Sebastian Andrzej Siewior <bigeasy@linutronix.de> writes:

> severity 632863 wishlist thanks

> David Kuehling wrote:
>> Severity: minor
> I've been this is always wishlist because we are not in main archive.

> Please use

>  User: debian-powerpcspe@breakpoint.cc Usertags: powerpcspe

> So all ppcspe related bugs are together somehow.

Just sent a mail to control@bugs.debian.org that should fix it.

>> The attached patch makes eglibc 2.13 work on architecture powerpcspe
>> (an unofficial port hosted on www.debian-ports.org, [1]).

> Thanks for that. If you have sometime then you could add two
> files. One of them says which tests-cases are known to fail so if we
> get another failure it aborts. The second file contains the symbol
> list for libc. Both were available for ppc the last time I was looking
> into it.

Attached below is an updated version of the patch.  

 - patches in debian/patches/powerpcspe are renamed to branch-* since
 they were just committed to eglibc svn (branch 2.13, 2.14 and trunk).

 - added file
 testsuite-checking/expected-results-powerpc-linux-gnuspe-libc, tested
 to pass here

 - added debian/libc6.symbols.powerpcspe, which is currently just copied
 from debian/libc6.symbols.powerpc
 
 running 'dpkg-gensymbols -Pdebian/tmp-libc -plibc6 -v2.13' (output
 attached below), I get a huge load of deltas involving 'symver' lines
 like

    #MISSING: 2.13# (symver|optional)GCC_3.0 2.3.6
    (symver|optional)GLIBC_2.1.2 2.1.2

  which looks non-critical, but I'm not sure why these aren't suppressed
  by symbols.wildcards.  Filtering that noise, it shows something that
  looks like permutations in symbol or library order, or just an
  artefact of the "noise" lines that makes diff think that stuff lines
  moved around, although joust noise lines were added in between.

  No symbols are missing, though, and no symbols have been added.  I
  wonder whether it's the same on normal 'powerpc' builds.

cheers,  

David
-- 
GnuPG public key: http://dvdkhlng.users.sourceforge.net/dk.gpg
Fingerprint: B17A DC95 D293 657B 4205  D016 7DEF 5323 C174 7D40

diff -Nru --exclude 'locale*' --exclude control.in eglibc-2.13/debian/changelog eglibc-2.13/debian/changelog
--- eglibc-2.13/debian/changelog	2011-07-08 14:20:58.000000000 +0200
+++ eglibc-2.13/debian/changelog	2011-07-08 14:21:12.000000000 +0200
@@ -1,3 +1,12 @@
+eglibc (2.13-10+powerpcspe1) unstable; urgency=low
+
+  * forward-port powerpcspe-specific changes form 2.11.1-2+powerpcspe1
+  * dropped 0002-replace-eieio-with-mbar-on-__SPE__.patch since that
+    should nowadays be handled by GNU 'as'
+  * added local-no-fma.patch to fix new compile problem on powerpcspe
+
+ -- David Kuehling <dvdkhlng@gmx.de>  Wed, 06 Jul 2011 16:36:54 +0200
+
 eglibc (2.13-10) unstable; urgency=low
 
   * control.in/main: tag libc-bin Essential: yes.
diff -Nru --exclude 'locale*' --exclude control.in eglibc-2.13/debian/libc6.symbols.powerpcspe eglibc-2.13/debian/libc6.symbols.powerpcspe
--- eglibc-2.13/debian/libc6.symbols.powerpcspe	1970-01-01 01:00:00.000000000 +0100
+++ eglibc-2.13/debian/libc6.symbols.powerpcspe	2011-07-08 14:21:12.000000000 +0200
@@ -0,0 +1,12 @@
+#include "libc6.symbols.common"
+ld.so.1 #PACKAGE# #MINVER#
+#include "symbols.wildcards"
+### TLS support enabled in Debian upload 2.3.5
+ __tls_get_addr@GLIBC_2.3 2.3.5
+libc.so.6 #PACKAGE# #MINVER#
+#include "symbols.wildcards"
+###
+### Override headers already defined in libc6.symbols.common
+###
+libpthread.so.0 #PACKAGE# (>= 2.3.5), #PACKAGE# #MINVER#
+#include "symbols.wildcards"
diff -Nru --exclude 'locale*' --exclude control.in eglibc-2.13/debian/patches/powerpcspe/branch-no-fma.patch eglibc-2.13/debian/patches/powerpcspe/branch-no-fma.patch
--- eglibc-2.13/debian/patches/powerpcspe/branch-no-fma.patch	1970-01-01 01:00:00.000000000 +0100
+++ eglibc-2.13/debian/patches/powerpcspe/branch-no-fma.patch	2011-07-08 14:21:12.000000000 +0200
@@ -0,0 +1,16 @@
+Override s_fma[f] assembly routines with C-code when compiling for powerpcspe.
+
+Signed-off-by: David Kuehling <dvdkhlng AT gmx DOT de>
+
+Index: eglibc-2.13/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fma.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ eglibc-2.13/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fma.c	2011-07-06 16:47:39.000000000 +0200
+@@ -0,0 +1 @@
++#include <math/s_fma.c>
+Index: eglibc-2.13/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaf.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ eglibc-2.13/ports/sysdeps/powerpc/powerpc32/e500/fpu/s_fmaf.c	2011-07-06 16:47:39.000000000 +0200
+@@ -0,0 +1 @@
++#include <math/s_fmaf.c>
diff -Nru --exclude 'locale*' --exclude control.in eglibc-2.13/debian/patches/powerpcspe/branch-Powerpc-trampline-consider-__NO_FPRS__.patch eglibc-2.13/debian/patches/powerpcspe/branch-Powerpc-trampline-consider-__NO_FPRS__.patch
--- eglibc-2.13/debian/patches/powerpcspe/branch-Powerpc-trampline-consider-__NO_FPRS__.patch	1970-01-01 01:00:00.000000000 +0100
+++ eglibc-2.13/debian/patches/powerpcspe/branch-Powerpc-trampline-consider-__NO_FPRS__.patch	2011-07-08 14:21:12.000000000 +0200
@@ -0,0 +1,48 @@
+From 5f2110f9ce203c42aadc3968ddc487a8c9cc6c83 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Sat, 15 May 2010 21:51:49 +0200
+Subject: [PATCH] Powerpc/trampline: consider __NO_FPRS__
+
+don't save/restore FPRs on FPR less systems
+
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ sysdeps/powerpc/powerpc32/dl-trampoline.S |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+Index: eglibc-2.13/sysdeps/powerpc/powerpc32/dl-trampoline.S
+===================================================================
+--- eglibc-2.13.orig/sysdeps/powerpc/powerpc32/dl-trampoline.S	2006-08-17 03:18:26.000000000 +0200
++++ eglibc-2.13/sysdeps/powerpc/powerpc32/dl-trampoline.S	2011-07-06 16:46:14.000000000 +0200
+@@ -137,6 +137,7 @@
+ 	stw r9,40(r1)
+ 	stw r10,44(r1)
+ 	stw r0,8(r1)
++#ifndef __NO_FPRS__
+  # Save the floating point registers
+ 	stfd fp1,48(r1)
+ 	stfd fp2,56(r1)
+@@ -146,6 +147,7 @@
+ 	stfd fp6,88(r1)
+ 	stfd fp7,96(r1)
+ 	stfd fp8,104(r1)
++#endif
+  # XXX TODO: store vmx registers
+  # Load the extra parameters.
+ 	addi r6,r1,16
+@@ -169,6 +171,7 @@
+ 	lwz r4,20(r1)
+ 	lwz r3,16(r1)
+         lwz r0,12(r1)
++#ifndef __NO_FPRS__
+  # Load the floating point registers.
+ 	lfd fp1,48(r1)
+ 	lfd fp2,56(r1)
+@@ -178,6 +181,7 @@
+ 	lfd fp6,88(r1)
+ 	lfd fp7,96(r1)
+ 	lfd fp8,104(r1)
++#endif
+  # ...unwind the stack frame, and jump to the PLT entry we updated.
+ 	addi r1,r1,320
+ 	bctr
diff -Nru --exclude 'locale*' --exclude control.in eglibc-2.13/debian/patches/series eglibc-2.13/debian/patches/series
--- eglibc-2.13/debian/patches/series	2011-07-08 14:20:58.000000000 +0200
+++ eglibc-2.13/debian/patches/series	2011-07-08 14:21:12.000000000 +0200
@@ -171,6 +171,9 @@
 
 powerpc/local-libgcc_eh-ld.so.diff
 
+powerpcspe/branch-Powerpc-trampline-consider-__NO_FPRS__.patch
+powerpcspe/branch-no-fma.patch
+
 s390/submitted-nexttowardf.diff
 s390/cvs-iconv-z9-109.diff
 
diff -Nru --exclude 'locale*' --exclude control.in eglibc-2.13/debian/testsuite-checking/expected-results-powerpc-linux-gnuspe-libc eglibc-2.13/debian/testsuite-checking/expected-results-powerpc-linux-gnuspe-libc
--- eglibc-2.13/debian/testsuite-checking/expected-results-powerpc-linux-gnuspe-libc	1970-01-01 01:00:00.000000000 +0100
+++ eglibc-2.13/debian/testsuite-checking/expected-results-powerpc-linux-gnuspe-libc	2011-07-08 14:21:12.000000000 +0200
@@ -0,0 +1,17 @@
+#
+# Allowed failures for powerpc-linux-gnuspe-libc and the returned make
+# failure number, indicating the signal the process died with.
+# Format: <Failed test>, Error <Make error code> [(ignored)]
+#
+annexc.out, Error 1 (ignored)
+bug-nextafter.out, Error 18
+bug-nexttoward.out, Error 18
+check-localplt.out, Error 1
+test-double.out, Error 1
+test-fenv.out, Error 1
+test-float.out, Error 1
+test-idouble.out, Error 1
+test-ifloat.out, Error 1
+test-misc.out, Error 1
+tst-cputimer1.out, Error 1
+tst-setcontext-fpscr.o, Error 1

Attachment: symbols.diff.gz
Description: Binary data

Attachment: pgpCKLg3pmkXw.pgp
Description: PGP signature


Reply to: