#
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
#

--- glibc-2.2.5/sysdeps/powerpc/Dist~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/Dist	2004-09-03 19:00:38.000000000 -0500
@@ -1,9 +1,6 @@
 dl-machine.c
 dl-start.S
 ppc-mcount.S
-fe_nomask.c
-fprrest.S
-fprsave.S
 gprsave1.S
 gprsave0.S
 gprrest1.S
--- glibc-2.2.5/sysdeps/powerpc/Makefile~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/Makefile	2004-09-03 19:00:38.000000000 -0500
@@ -3,16 +3,12 @@
 +cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
 asm-CPPFLAGS += -Wa,-mppc
 
-ifeq ($(subdir),math)
-libm-support += fenv_const fe_nomask
-endif
-
 ifeq ($(subdir),gmon)
 sysdep_routines += ppc-mcount
 endif
 
 ifeq ($(subdir),misc)
-sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 fprsave fprrest
+sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
 endif
 
 # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
--- glibc-2.2.5/sysdeps/powerpc/Versions~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/Versions	2004-09-03 19:00:38.000000000 -0500
@@ -1,8 +1,4 @@
 libm {
-  GLIBC_2.1 {
-    # symbols used in macros from sysdeps/powerpc/bits/fenv.h
-    __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
-  }
   GLIBC_2.2 {
     # Special functions to save and restore registers used by the
     # runtime libraries.
--- glibc-2.2.5/sysdeps/powerpc/__longjmp.S~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S	2004-09-03 19:00:38.000000000 -0500
@@ -24,6 +24,8 @@
 #include <bp-sym.h>
 #include <bp-asm.h>
 
+/* The FPU loads have been removed from this file - see fpu/__longjmp.S */
+
 ENTRY (BP_SYM (__longjmp))
 	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
 
@@ -31,44 +33,26 @@
 	lwz r2,(JB_GPR2*4)(r3)
 	lwz r0,(JB_LR*4)(r3)
 	lwz r14,((JB_GPRS+0)*4)(r3)
-	lfd fp14,((JB_FPRS+0*2)*4)(r3)
 	lwz r15,((JB_GPRS+1)*4)(r3)
-	lfd fp15,((JB_FPRS+1*2)*4)(r3)
 	lwz r16,((JB_GPRS+2)*4)(r3)
-	lfd fp16,((JB_FPRS+2*2)*4)(r3)
 	lwz r17,((JB_GPRS+3)*4)(r3)
-	lfd fp17,((JB_FPRS+3*2)*4)(r3)
 	lwz r18,((JB_GPRS+4)*4)(r3)
-	lfd fp18,((JB_FPRS+4*2)*4)(r3)
 	lwz r19,((JB_GPRS+5)*4)(r3)
-	lfd fp19,((JB_FPRS+5*2)*4)(r3)
 	lwz r20,((JB_GPRS+6)*4)(r3)
-	lfd fp20,((JB_FPRS+6*2)*4)(r3)
 	mtlr r0
 	lwz r21,((JB_GPRS+7)*4)(r3)
-	lfd fp21,((JB_FPRS+7*2)*4)(r3)
 	lwz r22,((JB_GPRS+8)*4)(r3)
-	lfd fp22,((JB_FPRS+8*2)*4)(r3)
 	lwz r0,(JB_CR*4)(r3)
 	lwz r23,((JB_GPRS+9)*4)(r3)
-	lfd fp23,((JB_FPRS+9*2)*4)(r3)
 	lwz r24,((JB_GPRS+10)*4)(r3)
-	lfd fp24,((JB_FPRS+10*2)*4)(r3)
 	lwz r25,((JB_GPRS+11)*4)(r3)
-	lfd fp25,((JB_FPRS+11*2)*4)(r3)
 	mtcrf 0xFF,r0
 	lwz r26,((JB_GPRS+12)*4)(r3)
-	lfd fp26,((JB_FPRS+12*2)*4)(r3)
 	lwz r27,((JB_GPRS+13)*4)(r3)
-	lfd fp27,((JB_FPRS+13*2)*4)(r3)
 	lwz r28,((JB_GPRS+14)*4)(r3)
-	lfd fp28,((JB_FPRS+14*2)*4)(r3)
 	lwz r29,((JB_GPRS+15)*4)(r3)
-	lfd fp29,((JB_FPRS+15*2)*4)(r3)
 	lwz r30,((JB_GPRS+16)*4)(r3)
-	lfd fp30,((JB_FPRS+16*2)*4)(r3)
 	lwz r31,((JB_GPRS+17)*4)(r3)
-	lfd fp31,((JB_FPRS+17*2)*4)(r3)
 	mr r3,r4
 	blr
 END (BP_SYM (__longjmp))
--- glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h	2004-09-03 19:00:38.000000000 -0500
@@ -17,6 +17,7 @@
    02111-1307 USA.  */
 
 /* Define the machine-dependent type `jmp_buf'.  PowerPC version.  */
+/* For processors without floating point. */
 
 #ifndef _SETJMP_H
 # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
@@ -33,12 +34,11 @@
 # define JB_LR     2  /* The address we will return to */
 # define JB_GPRS   3  /* GPRs 14 through 31 are saved, 18 in total */
 # define JB_CR     21 /* Condition code registers. */
-# define JB_FPRS   22 /* FPRs 14 through 31 are saved, 18*2 words total */
-# define JB_SIZE   (58*4)
+# define JB_SIZE   (22*4)
 #endif
 
 #ifndef	_ASM
-typedef long int __jmp_buf[58];
+typedef long int __jmp_buf[22];
 #endif
 
 /* Test if longjmp to JMPBUF would unwind the frame
--- glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c~glibc-2.2.5-hhl-powerpc-fpu.patch
+++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c
-/* Clear given exceptions in current floating-point environment.
-   Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <fenv_libc.h>
-
-#undef feclearexcept
-int
-__feclearexcept (int excepts)
-{
-  fenv_union_t u;
-
-  /* Get the current state.  */
-  u.fenv = fegetenv_register ();
-
-  /* Clear the relevant bits.  */
-  u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
-		      | (excepts & FPSCR_STICKY_BITS));
-
-  /* Put the new state in effect.  */
-  fesetenv_register (u.fenv);
-
-  /* Success.  */
-  return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feclearexcept, __old_feclearexcept)
-compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
-#endif
-
-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
--- glibc-2.2.5/sysdeps/powerpc/fe_nomask.c~glibc-2.2.5-hhl-powerpc-fpu.patch
+++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c
-/* Procedure definition for FE_NOMASK_ENV.
-   Copyright (C) 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <fenv.h>
-#include <errno.h>
-
-/* This is presently a stub, until it's decided how the kernels should
-   support this.  */
-
-const fenv_t *
-__fe_nomask_env(void)
-{
-  __set_errno (ENOSYS);
-  return FE_ENABLED_ENV;
-}
-stub_warning (__fe_nomask_env)
--- glibc-2.2.5/sysdeps/powerpc/fprrest.S~glibc-2.2.5-hhl-powerpc-fpu.patch
+++ glibc-2.2.5/sysdeps/powerpc/fprrest.S
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/*
-    Floating Point Registers (FPRs) restore routine
-*/
-
-#include <sysdep.h>
-
-ENTRY(_restfpr_all)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
-C_TEXT(_restf14):
-C_TEXT(_restfpr_14):	lfd	fp14,-144(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
-C_TEXT(_restf15):
-C_TEXT(_restfpr_15):	lfd	fp15,-136(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
-C_TEXT(_restf16):
-C_TEXT(_restfpr_16):	lfd	fp16,-128(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
-C_TEXT(_restf17):
-C_TEXT(_restfpr_17):	lfd	fp17,-120(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
-C_TEXT(_restf18):
-C_TEXT(_restfpr_18):	lfd	fp18,-112(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
-C_TEXT(_restf19):
-C_TEXT(_restfpr_19):	lfd	fp19,-104(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
-C_TEXT(_restf20):
-C_TEXT(_restfpr_20):	lfd	fp20,-96(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
-C_TEXT(_restf21):
-C_TEXT(_restfpr_21):	lfd	fp21,-88(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
-C_TEXT(_restf22):
-C_TEXT(_restfpr_22):	lfd	fp22,-80(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
-C_TEXT(_restf23):
-C_TEXT(_restfpr_23):	lfd	fp23,-72(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
-C_TEXT(_restf24):
-C_TEXT(_restfpr_24):	lfd	fp24,-64(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
-C_TEXT(_restf25):
-C_TEXT(_restfpr_25):	lfd	fp25,-56(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
-C_TEXT(_restf26):
-C_TEXT(_restfpr_26):	lfd	fp26,-48(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
-C_TEXT(_restf27):
-C_TEXT(_restfpr_27):	lfd	fp27,-40(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
-C_TEXT(_restf28):
-C_TEXT(_restfpr_28):	lfd	fp28,-32(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
-C_TEXT(_restf29):
-C_TEXT(_restfpr_29):	lwz	r0,8(r1)	#get return address from frame
-			lfd	fp29,-24(r1)    #restore f29
-			mtlr	r0		#move return address to LR
-			lfd	fp30,-16(r1)	#restore f30
-			lfd	fp31,-8(r1)	#restore f31
-			blr			#return
--- glibc-2.2.5/sysdeps/powerpc/fprsave.S~glibc-2.2.5-hhl-powerpc-fpu.patch
+++ glibc-2.2.5/sysdeps/powerpc/fprsave.S
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/*
-    Floating Point Registers (FPRs) save routine
-*/
-
-#include <sysdep.h>
-
-ENTRY(_savefpr_all)
-                ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
-C_TEXT(_savef14):
-C_TEXT(_savefpr_14):	stfd	fp14,-144(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
-C_TEXT(_savef15):
-C_TEXT(_savefpr_15):	stfd	fp15,-136(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
-C_TEXT(_savef16):
-C_TEXT(_savefpr_16):	stfd	fp16,-128(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
-C_TEXT(_savef17):
-C_TEXT(_savefpr_17):	stfd	fp17,-120(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
-C_TEXT(_savef18):
-C_TEXT(_savefpr_18):	stfd	fp18,-112(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
-C_TEXT(_savef19):
-C_TEXT(_savefpr_19):	stfd	fp19,-104(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
-C_TEXT(_savef20):
-C_TEXT(_savefpr_20):	stfd	fp20,-96(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
-C_TEXT(_savef21):
-C_TEXT(_savefpr_21):	stfd	fp21,-88(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
-C_TEXT(_savef22):
-C_TEXT(_savefpr_22):	stfd	fp22,-80(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
-C_TEXT(_savef23):
-C_TEXT(_savefpr_23):	stfd	fp23,-72(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
-C_TEXT(_savef24):
-C_TEXT(_savefpr_24):	stfd	fp24,-64(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
-C_TEXT(_savef25):
-C_TEXT(_savefpr_25):	stfd	fp25,-56(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
-C_TEXT(_savef26):
-C_TEXT(_savefpr_26):	stfd	fp26,-48(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
-C_TEXT(_savef27):
-C_TEXT(_savefpr_27):	stfd	fp27,-40(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
-C_TEXT(_savef28):
-C_TEXT(_savefpr_28):	stfd	fp28,-32(r1)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
-		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
-C_TEXT(_savef29):
-C_TEXT(_savefpr_29):	stfd	fp29,-24(r1)	#save f29
-			stfd	fp30,-16(r1)	#save f30
-			stfd	fp31,-8(r1)	#save f31
-			stw	r0,8(r1)	#save LR in callers frame
-			blr			#return
--- glibc-2.2.5/sysdeps/powerpc/fpu/Dist~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist	2004-09-03 19:00:38.000000000 -0500
@@ -1,3 +1,6 @@
+fe_nomask.c
+fprrest.S
+fprsave.S
 fenv_const.c
 fenv_libc.h
 t_sqrt.c
--- glibc-2.2.5/sysdeps/powerpc/fpu/Makefile~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile	2004-09-03 19:00:38.000000000 -0500
@@ -1,3 +1,7 @@
 ifeq ($(subdir),math)
 libm-support += fenv_const fe_nomask t_sqrt
 endif
+
+ifeq ($(subdir),misc)
+sysdep_routines += fprsave fprrest
+endif
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,6 @@
+libm {
+  GLIBC_2.1 {
+    # symbols used in macros from sysdeps/powerpc/bits/fenv.h
+    __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
+  }
+}
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,74 @@
+/* longjmp for PowerPC.
+   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <sysdep.h>
+#define _ASM
+#define _SETJMP_H
+#include <bits/setjmp.h>
+#include <bp-sym.h>
+#include <bp-asm.h>
+
+ENTRY (BP_SYM (__longjmp))
+	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
+
+	lwz r1,(JB_GPR1*4)(r3)
+	lwz r2,(JB_GPR2*4)(r3)
+	lwz r0,(JB_LR*4)(r3)
+	lwz r14,((JB_GPRS+0)*4)(r3)
+	lfd fp14,((JB_FPRS+0*2)*4)(r3)
+	lwz r15,((JB_GPRS+1)*4)(r3)
+	lfd fp15,((JB_FPRS+1*2)*4)(r3)
+	lwz r16,((JB_GPRS+2)*4)(r3)
+	lfd fp16,((JB_FPRS+2*2)*4)(r3)
+	lwz r17,((JB_GPRS+3)*4)(r3)
+	lfd fp17,((JB_FPRS+3*2)*4)(r3)
+	lwz r18,((JB_GPRS+4)*4)(r3)
+	lfd fp18,((JB_FPRS+4*2)*4)(r3)
+	lwz r19,((JB_GPRS+5)*4)(r3)
+	lfd fp19,((JB_FPRS+5*2)*4)(r3)
+	lwz r20,((JB_GPRS+6)*4)(r3)
+	lfd fp20,((JB_FPRS+6*2)*4)(r3)
+	mtlr r0
+	lwz r21,((JB_GPRS+7)*4)(r3)
+	lfd fp21,((JB_FPRS+7*2)*4)(r3)
+	lwz r22,((JB_GPRS+8)*4)(r3)
+	lfd fp22,((JB_FPRS+8*2)*4)(r3)
+	lwz r0,(JB_CR*4)(r3)
+	lwz r23,((JB_GPRS+9)*4)(r3)
+	lfd fp23,((JB_FPRS+9*2)*4)(r3)
+	lwz r24,((JB_GPRS+10)*4)(r3)
+	lfd fp24,((JB_FPRS+10*2)*4)(r3)
+	lwz r25,((JB_GPRS+11)*4)(r3)
+	lfd fp25,((JB_FPRS+11*2)*4)(r3)
+	mtcrf 0xFF,r0
+	lwz r26,((JB_GPRS+12)*4)(r3)
+	lfd fp26,((JB_FPRS+12*2)*4)(r3)
+	lwz r27,((JB_GPRS+13)*4)(r3)
+	lfd fp27,((JB_FPRS+13*2)*4)(r3)
+	lwz r28,((JB_GPRS+14)*4)(r3)
+	lfd fp28,((JB_FPRS+14*2)*4)(r3)
+	lwz r29,((JB_GPRS+15)*4)(r3)
+	lfd fp29,((JB_FPRS+15*2)*4)(r3)
+	lwz r30,((JB_GPRS+16)*4)(r3)
+	lfd fp30,((JB_FPRS+16*2)*4)(r3)
+	lwz r31,((JB_GPRS+17)*4)(r3)
+	lfd fp31,((JB_FPRS+17*2)*4)(r3)
+	mr r3,r4
+	blr
+END (BP_SYM (__longjmp))
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,47 @@
+/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Define the machine-dependent type `jmp_buf'.  PowerPC version.  */
+
+#ifndef _SETJMP_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+/* The previous bits/setjmp.h had __jmp_buf defined as a structure.
+   We use an array of 'long int' instead, to make writing the
+   assembler easier. Naturally, user code should not depend on
+   either representation. */
+
+#if defined __USE_MISC || defined _ASM
+# define JB_GPR1   0  /* Also known as the stack pointer */
+# define JB_GPR2   1
+# define JB_LR     2  /* The address we will return to */
+# define JB_GPRS   3  /* GPRs 14 through 31 are saved, 18 in total */
+# define JB_CR     21 /* Condition code registers. */
+# define JB_FPRS   22 /* FPRs 14 through 31 are saved, 18*2 words total */
+# define JB_SIZE   (58*4)
+#endif
+
+#ifndef	_ASM
+typedef long int __jmp_buf[58];
+#endif
+
+/* Test if longjmp to JMPBUF would unwind the frame
+   containing a local variable at ADDRESS.  */
+#define _JMPBUF_UNWINDS(jmpbuf, address) \
+  ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,48 @@
+/* Clear given exceptions in current floating-point environment.
+   Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <fenv_libc.h>
+
+#undef feclearexcept
+int
+__feclearexcept (int excepts)
+{
+  fenv_union_t u;
+
+  /* Get the current state.  */
+  u.fenv = fegetenv_register ();
+
+  /* Clear the relevant bits.  */
+  u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
+		      | (excepts & FPSCR_STICKY_BITS));
+
+  /* Put the new state in effect.  */
+  fesetenv_register (u.fenv);
+
+  /* Success.  */
+  return 0;
+}
+
+#include <shlib-compat.h>
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__feclearexcept, __old_feclearexcept)
+compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
+#endif
+
+versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,32 @@
+/* Procedure definition for FE_NOMASK_ENV.
+   Copyright (C) 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <fenv.h>
+#include <errno.h>
+
+/* This is presently a stub, until it's decided how the kernels should
+   support this.  */
+
+const fenv_t *
+__fe_nomask_env(void)
+{
+  __set_errno (ENOSYS);
+  return FE_ENABLED_ENV;
+}
+stub_warning (__fe_nomask_env)
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,94 @@
+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/*
+    Floating Point Registers (FPRs) restore routine
+*/
+
+#include <sysdep.h>
+
+ENTRY(_restfpr_all)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
+C_TEXT(_restf14):
+C_TEXT(_restfpr_14):	lfd	fp14,-144(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
+C_TEXT(_restf15):
+C_TEXT(_restfpr_15):	lfd	fp15,-136(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
+C_TEXT(_restf16):
+C_TEXT(_restfpr_16):	lfd	fp16,-128(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
+C_TEXT(_restf17):
+C_TEXT(_restfpr_17):	lfd	fp17,-120(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
+C_TEXT(_restf18):
+C_TEXT(_restfpr_18):	lfd	fp18,-112(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
+C_TEXT(_restf19):
+C_TEXT(_restfpr_19):	lfd	fp19,-104(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
+C_TEXT(_restf20):
+C_TEXT(_restfpr_20):	lfd	fp20,-96(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
+C_TEXT(_restf21):
+C_TEXT(_restfpr_21):	lfd	fp21,-88(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
+C_TEXT(_restf22):
+C_TEXT(_restfpr_22):	lfd	fp22,-80(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
+C_TEXT(_restf23):
+C_TEXT(_restfpr_23):	lfd	fp23,-72(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
+C_TEXT(_restf24):
+C_TEXT(_restfpr_24):	lfd	fp24,-64(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
+C_TEXT(_restf25):
+C_TEXT(_restfpr_25):	lfd	fp25,-56(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
+C_TEXT(_restf26):
+C_TEXT(_restfpr_26):	lfd	fp26,-48(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
+C_TEXT(_restf27):
+C_TEXT(_restfpr_27):	lfd	fp27,-40(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
+C_TEXT(_restf28):
+C_TEXT(_restfpr_28):	lfd	fp28,-32(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
+C_TEXT(_restf29):
+C_TEXT(_restfpr_29):	lwz	r0,8(r1)	#get return address from frame
+			lfd	fp29,-24(r1)    #restore f29
+			mtlr	r0		#move return address to LR
+			lfd	fp30,-16(r1)	#restore f30
+			lfd	fp31,-8(r1)	#restore f31
+			blr			#return
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,93 @@
+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/*
+    Floating Point Registers (FPRs) save routine
+*/
+
+#include <sysdep.h>
+
+ENTRY(_savefpr_all)
+                ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
+C_TEXT(_savef14):
+C_TEXT(_savefpr_14):	stfd	fp14,-144(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
+C_TEXT(_savef15):
+C_TEXT(_savefpr_15):	stfd	fp15,-136(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
+C_TEXT(_savef16):
+C_TEXT(_savefpr_16):	stfd	fp16,-128(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
+C_TEXT(_savef17):
+C_TEXT(_savefpr_17):	stfd	fp17,-120(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
+C_TEXT(_savef18):
+C_TEXT(_savefpr_18):	stfd	fp18,-112(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
+C_TEXT(_savef19):
+C_TEXT(_savefpr_19):	stfd	fp19,-104(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
+C_TEXT(_savef20):
+C_TEXT(_savefpr_20):	stfd	fp20,-96(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
+C_TEXT(_savef21):
+C_TEXT(_savefpr_21):	stfd	fp21,-88(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
+C_TEXT(_savef22):
+C_TEXT(_savefpr_22):	stfd	fp22,-80(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
+C_TEXT(_savef23):
+C_TEXT(_savefpr_23):	stfd	fp23,-72(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
+C_TEXT(_savef24):
+C_TEXT(_savefpr_24):	stfd	fp24,-64(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
+C_TEXT(_savef25):
+C_TEXT(_savefpr_25):	stfd	fp25,-56(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
+C_TEXT(_savef26):
+C_TEXT(_savefpr_26):	stfd	fp26,-48(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
+C_TEXT(_savef27):
+C_TEXT(_savefpr_27):	stfd	fp27,-40(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
+C_TEXT(_savef28):
+C_TEXT(_savefpr_28):	stfd	fp28,-32(r1)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
+C_TEXT(_savef29):
+C_TEXT(_savefpr_29):	stfd	fp29,-24(r1)	#save f29
+			stfd	fp30,-16(r1)	#save f30
+			stfd	fp31,-8(r1)	#save f31
+			stw	r0,8(r1)	#save LR in callers frame
+			blr			#return
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,67 @@
+/* FPU control word definitions.  PowerPC version.
+   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _FPU_CONTROL_H
+#define _FPU_CONTROL_H
+
+/* rounding control */
+#define _FPU_RC_NEAREST 0x00   /* RECOMMENDED */
+#define _FPU_RC_DOWN    0x03
+#define _FPU_RC_UP      0x02
+#define _FPU_RC_ZERO    0x01
+
+#define _FPU_MASK_NI  0x04 /* non-ieee mode */
+
+/* masking of interrupts */
+#define _FPU_MASK_ZM  0x10 /* zero divide */
+#define _FPU_MASK_OM  0x40 /* overflow */
+#define _FPU_MASK_UM  0x20 /* underflow */
+#define _FPU_MASK_XM  0x08 /* inexact */
+#define _FPU_MASK_IM  0x80 /* invalid operation */
+
+#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
+
+/* The fdlibm code requires no interrupts for exceptions.  */
+#define _FPU_DEFAULT  0x00000000 /* Default value.  */
+
+/* IEEE:  same as above, but (some) exceptions;
+   we leave the 'inexact' exception off.
+ */
+#define _FPU_IEEE     0x000000f0
+
+/* Type of the control word.  */
+typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
+
+/* Macros for accessing the hardware control word.  */
+#define _FPU_GETCW(cw) ( { \
+  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
+  __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
+  (cw)=tmp.cw[1]; \
+  tmp.cw[1]; } )
+#define _FPU_SETCW(cw) { \
+  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
+  tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
+  tmp.cw[1] = cw; \
+  __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
+}
+
+/* Default control word set at startup.  */
+extern fpu_control_t __fpu_control;
+
+#endif /* _FPU_CONTROL_H */
--- /dev/null	2004-06-02 16:28:12.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S	2004-09-03 19:00:38.000000000 -0500
@@ -0,0 +1,73 @@
+/* setjmp for PowerPC.
+   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <sysdep.h>
+#define _ASM
+#define _SETJMP_H
+#include <bits/setjmp.h>
+#include <bp-sym.h>
+#include <bp-asm.h>
+
+ENTRY (BP_SYM (__sigsetjmp))
+	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
+
+	stw  r1,(JB_GPR1*4)(3)
+	mflr r0
+	stw  r2,(JB_GPR2*4)(3)
+	stw  r14,((JB_GPRS+0)*4)(3)
+	stfd fp14,((JB_FPRS+0*2)*4)(3)
+	stw  r0,(JB_LR*4)(3)
+	stw  r15,((JB_GPRS+1)*4)(3)
+	stfd fp15,((JB_FPRS+1*2)*4)(3)
+	mfcr r0
+	stw  r16,((JB_GPRS+2)*4)(3)
+	stfd fp16,((JB_FPRS+2*2)*4)(3)
+	stw  r0,(JB_CR*4)(3)
+	stw  r17,((JB_GPRS+3)*4)(3)
+	stfd fp17,((JB_FPRS+3*2)*4)(3)
+	stw  r18,((JB_GPRS+4)*4)(3)
+	stfd fp18,((JB_FPRS+4*2)*4)(3)
+	stw  r19,((JB_GPRS+5)*4)(3)
+	stfd fp19,((JB_FPRS+5*2)*4)(3)
+	stw  r20,((JB_GPRS+6)*4)(3)
+	stfd fp20,((JB_FPRS+6*2)*4)(3)
+	stw  r21,((JB_GPRS+7)*4)(3)
+	stfd fp21,((JB_FPRS+7*2)*4)(3)
+	stw  r22,((JB_GPRS+8)*4)(3)
+	stfd fp22,((JB_FPRS+8*2)*4)(3)
+	stw  r23,((JB_GPRS+9)*4)(3)
+	stfd fp23,((JB_FPRS+9*2)*4)(3)
+	stw  r24,((JB_GPRS+10)*4)(3)
+	stfd fp24,((JB_FPRS+10*2)*4)(3)
+	stw  r25,((JB_GPRS+11)*4)(3)
+	stfd fp25,((JB_FPRS+11*2)*4)(3)
+	stw  r26,((JB_GPRS+12)*4)(3)
+	stfd fp26,((JB_FPRS+12*2)*4)(3)
+	stw  r27,((JB_GPRS+13)*4)(3)
+	stfd fp27,((JB_FPRS+13*2)*4)(3)
+	stw  r28,((JB_GPRS+14)*4)(3)
+	stfd fp28,((JB_FPRS+14*2)*4)(3)
+	stw  r29,((JB_GPRS+15)*4)(3)
+	stfd fp29,((JB_FPRS+15*2)*4)(3)
+	stw  r30,((JB_GPRS+16)*4)(3)
+	stfd fp30,((JB_FPRS+16*2)*4)(3)
+	stw  r31,((JB_GPRS+17)*4)(3)
+	stfd fp31,((JB_FPRS+17*2)*4)(3)
+	b JUMPTARGET (BP_SYM (__sigjmp_save))
+END (BP_SYM (__sigsetjmp))
--- glibc-2.2.5/sysdeps/powerpc/fpu_control.h~glibc-2.2.5-hhl-powerpc-fpu.patch
+++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h
-/* FPU control word definitions.  PowerPC version.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _FPU_CONTROL_H
-#define _FPU_CONTROL_H
-
-/* rounding control */
-#define _FPU_RC_NEAREST 0x00   /* RECOMMENDED */
-#define _FPU_RC_DOWN    0x03
-#define _FPU_RC_UP      0x02
-#define _FPU_RC_ZERO    0x01
-
-#define _FPU_MASK_NI  0x04 /* non-ieee mode */
-
-/* masking of interrupts */
-#define _FPU_MASK_ZM  0x10 /* zero divide */
-#define _FPU_MASK_OM  0x40 /* overflow */
-#define _FPU_MASK_UM  0x20 /* underflow */
-#define _FPU_MASK_XM  0x08 /* inexact */
-#define _FPU_MASK_IM  0x80 /* invalid operation */
-
-#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
-
-/* The fdlibm code requires no interrupts for exceptions.  */
-#define _FPU_DEFAULT  0x00000000 /* Default value.  */
-
-/* IEEE:  same as above, but (some) exceptions;
-   we leave the 'inexact' exception off.
- */
-#define _FPU_IEEE     0x000000f0
-
-/* Type of the control word.  */
-typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
-
-/* Macros for accessing the hardware control word.  */
-#define _FPU_GETCW(cw) ( { \
-  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
-  __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
-  (cw)=tmp.cw[1]; \
-  tmp.cw[1]; } )
-#define _FPU_SETCW(cw) { \
-  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
-  tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
-  tmp.cw[1] = cw; \
-  __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
-}
-
-/* Default control word set at startup.  */
-extern fpu_control_t __fpu_control;
-
-#endif /* _FPU_CONTROL_H */
--- glibc-2.2.5/sysdeps/powerpc/setjmp.S~glibc-2.2.5-hhl-powerpc-fpu.patch	2004-09-03 19:00:33.000000000 -0500
+++ glibc-2.2.5/sysdeps/powerpc/setjmp.S	2004-09-03 19:00:38.000000000 -0500
@@ -24,6 +24,8 @@
 #include <bp-sym.h>
 #include <bp-asm.h>
 
+/* The FPU stores have been removed from this file - see fpu/setjmp.S */
+
 ENTRY (BP_SYM (__sigsetjmp))
 	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
 
@@ -31,43 +33,25 @@
 	mflr r0
 	stw  r2,(JB_GPR2*4)(3)
 	stw  r14,((JB_GPRS+0)*4)(3)
-	stfd fp14,((JB_FPRS+0*2)*4)(3)
 	stw  r0,(JB_LR*4)(3)
 	stw  r15,((JB_GPRS+1)*4)(3)
-	stfd fp15,((JB_FPRS+1*2)*4)(3)
 	mfcr r0
 	stw  r16,((JB_GPRS+2)*4)(3)
-	stfd fp16,((JB_FPRS+2*2)*4)(3)
 	stw  r0,(JB_CR*4)(3)
 	stw  r17,((JB_GPRS+3)*4)(3)
-	stfd fp17,((JB_FPRS+3*2)*4)(3)
 	stw  r18,((JB_GPRS+4)*4)(3)
-	stfd fp18,((JB_FPRS+4*2)*4)(3)
 	stw  r19,((JB_GPRS+5)*4)(3)
-	stfd fp19,((JB_FPRS+5*2)*4)(3)
 	stw  r20,((JB_GPRS+6)*4)(3)
-	stfd fp20,((JB_FPRS+6*2)*4)(3)
 	stw  r21,((JB_GPRS+7)*4)(3)
-	stfd fp21,((JB_FPRS+7*2)*4)(3)
 	stw  r22,((JB_GPRS+8)*4)(3)
-	stfd fp22,((JB_FPRS+8*2)*4)(3)
 	stw  r23,((JB_GPRS+9)*4)(3)
-	stfd fp23,((JB_FPRS+9*2)*4)(3)
 	stw  r24,((JB_GPRS+10)*4)(3)
-	stfd fp24,((JB_FPRS+10*2)*4)(3)
 	stw  r25,((JB_GPRS+11)*4)(3)
-	stfd fp25,((JB_FPRS+11*2)*4)(3)
 	stw  r26,((JB_GPRS+12)*4)(3)
-	stfd fp26,((JB_FPRS+12*2)*4)(3)
 	stw  r27,((JB_GPRS+13)*4)(3)
-	stfd fp27,((JB_FPRS+13*2)*4)(3)
 	stw  r28,((JB_GPRS+14)*4)(3)
-	stfd fp28,((JB_FPRS+14*2)*4)(3)
 	stw  r29,((JB_GPRS+15)*4)(3)
-	stfd fp29,((JB_FPRS+15*2)*4)(3)
 	stw  r30,((JB_GPRS+16)*4)(3)
-	stfd fp30,((JB_FPRS+16*2)*4)(3)
 	stw  r31,((JB_GPRS+17)*4)(3)
-	stfd fp31,((JB_FPRS+17*2)*4)(3)
 	b JUMPTARGET (BP_SYM (__sigjmp_save))
 END (BP_SYM (__sigsetjmp))