diff -Nuar glibc-2.2.5.orig/Makeconfig glibc-2.2.5/Makeconfig
--- glibc-2.2.5.orig/Makeconfig	Thu Sep 13 21:34:47 2001
+++ glibc-2.2.5/Makeconfig	Tue Jul  2 11:21:59 2002
@@ -428,7 +428,7 @@
 endif
 ifndef config-LDFLAGS
 ifeq (yesyes,$(build-shared)$(elf))
-config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name)
+config-LDFLAGS = 
 endif
 endif
 ifndef link-libc
diff -Nuar glibc-2.2.5.orig/Makerules glibc-2.2.5/Makerules
--- glibc-2.2.5.orig/Makerules	Fri Nov 16 14:50:39 2001
+++ glibc-2.2.5/Makerules	Tue Jul  2 11:23:28 2002
@@ -848,8 +848,8 @@
 	(echo '/* GNU ld script';\
 	 echo '   Use the shared library, but some functions are only in';\
 	 echo '   the static library, so try that secondarily.  */';\
-	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
-	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
+	 echo 'GROUP ( libc.so$(libc.so-version)' \
+	      '$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
 	      ')' \
 	) > $@.new
 	mv -f $@.new $@
diff -Nuar glibc-2.2.5.orig/dlfcn/Makefile glibc-2.2.5/dlfcn/Makefile
--- glibc-2.2.5.orig/dlfcn/Makefile	Tue Aug 14 23:04:22 2001
+++ glibc-2.2.5/dlfcn/Makefile	Tue Jul  2 12:18:52 2002
@@ -55,7 +55,7 @@
 
 include ../Rules
 
-LDFLAGS-dl.so = -Wl,-dynamic-linker,$(slibdir)/$(rtld-installed-name)
+LDFLAGS-dl.so =
 
 test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
 $(test-modules): $(objpfx)%.so: $(objpfx)%.os
diff -Nuar glibc-2.2.5.orig/iconvdata/Makefile glibc-2.2.5/iconvdata/Makefile
--- glibc-2.2.5.orig/iconvdata/Makefile	Wed Nov  7 03:07:51 2001
+++ glibc-2.2.5/iconvdata/Makefile	Tue Jul  2 12:22:36 2002
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+# Copyrigh (C) 1997, 1998, 1999, 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
@@ -151,8 +151,8 @@
 # Rule to generate the shared objects.
 charmaps = ../localedata/charmaps
 -include $(objpfx)iconv-rules
-extra-modules-left := $(modules)
-include extra-module.mk
+extra-objs	= 
+-include $(objpfx)iconv-rules1
 
 
 extra-objs	+= $(modules.so)
@@ -191,7 +191,7 @@
 		     $(gen-special-modules)
 
 generated = $(generated-modules:=.h) $(generated-modules:=.stmp) \
-	    iconv-test.out iconv-rules tst-loading.mtrace	 \
+	    iconv-test.out iconv-rules iconv-rules1 tst-loading.mtrace   \
 	    mtrace-tst-loading tst-tables.out iconv-test.xxx
 ifdef objpfx
 generated += gconv-modules
@@ -239,6 +239,18 @@
 		  } \
 		}' > $@.new
 	mv -f $@.new $@
+
+$(objpfx)iconv-rules1: Makefile
+	{ echo $(modules); } | \
+	$(AWK) 'NR == 1 { \
+		  for (i = 1; i <= NF; i++) { \
+		    printf "$$(objpfx)%s.so: $$(addprefix $$(objpfx),$$(addsuffix .os,$$(%s-routines)))\n", $$i, $$i; \
+		    printf "\t$$(build-module)\n"; \
+		    printf "extra-objs += $$(addsuffix .os,$$(%s-routines))\n", $$i; \
+		    printf "$$(objpfx)%s.so: $$(common-objpfx)libc.so\n", $$i; \
+		  } \
+		}' > $@.new
+	mv -f $@.new $@
 endif
 
 $(generated-modules:%=$(objpfx)%.h): $(objpfx)%.h: $(objpfx)%.stmp
diff -Nuar glibc-2.2.5.orig/localedata/Makefile glibc-2.2.5/localedata/Makefile
--- glibc-2.2.5.orig/localedata/Makefile	Sat Aug 18 22:42:30 2001
+++ glibc-2.2.5/localedata/Makefile	Tue Jul  2 11:42:48 2002
@@ -140,7 +140,7 @@
 # Dependency for the locale files.  We actually make it depend only on
 # one of the files.
 $(addprefix $(objpfx),$(CTYPE_FILES)): %: \
-  gen-locale.sh $(common-objpfx)locale/localedef Makefile \
+  gen-locale.sh `which localedef` Makefile \
   $(addprefix charmaps/,$(CHARMAPS)) $(addprefix locales/,$(LOCALE_SRCS))
 	@$(SHELL) -e gen-locale.sh $(common-objpfx) '$(built-program-cmd)' $@
 
@@ -161,7 +161,7 @@
 		       $(addprefix $(objpfx),$(CTYPE_FILES))
 	$(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' tst-fmon.data \
 	  > $@
-$(objpfx)tst-locale.out: tst-locale.sh $(common-objpfx)locale/localedef \
+$(objpfx)tst-locale.out: tst-locale.sh `which localedef` \
 			 $(ld-test-srcs) $(addprefix $(objpfx),$(CTYPE_FILES))
 	$(SHELL) -e $< $(common-objpfx) '$(built-program-cmd)' > $@
 $(objpfx)tst-rpmatch.out: tst-rpmatch.sh $(objpfx)tst-rpmatch \
@@ -197,8 +197,8 @@
 INSTALL-SUPPORTED-LOCALES=$(addprefix install-, $(SUPPORTED-LOCALES))
 
 # Sometimes the whole collection of locale files should be installed.
-LOCALEDEF=I18NPATH=. GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
-$(common-objpfx)elf/ld.so --library-path $(rpath-link) $(common-objpfx)locale/localedef
+
+LOCALEDEF=I18NPATH=. `which localedef`
 install-locales: $(INSTALL-SUPPORTED-LOCALES)
 
 install-locales-dir:
diff -Nuar glibc-2.2.5.orig/sunrpc/Makefile glibc-2.2.5/sunrpc/Makefile
--- glibc-2.2.5.orig/sunrpc/Makefile	Wed Nov  7 03:08:08 2001
+++ glibc-2.2.5/sunrpc/Makefile	Tue Jul  2 11:45:05 2002
@@ -89,7 +89,6 @@
 	     $(resolvobjdir)/libresolv.a
 endif
 
-ifeq (no,$(cross-compiling))
 # We can only build this library if we can run the rpcgen we build.
 headers += $(rpcsvc:%.x=rpcsvc/%.h)
 extra-libs := librpcsvc
@@ -97,7 +96,6 @@
 librpcsvc-routines = $(rpcsvc:%.x=x%)
 librpcsvc-inhibit-o = .os # Build no shared rpcsvc library.
 omit-deps = $(librpcsvc-routines)
-endif
 
 CFLAGS-xbootparam_prot.c = -Wno-unused
 CFLAGS-xnlm_prot.c = -Wno-unused
@@ -126,7 +124,7 @@
 	$(+link)
 
 # Tell rpcgen where to find the C preprocessor.
-rpcgen-cmd = $(built-program-cmd) -Y ../scripts
+rpcgen-cmd = `which rpcgen`
 
 # Install the rpc data base file.
 $(inst_sysconfdir)/rpc: etc.rpc $(+force)
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/Dist glibc-2.2.5/sysdeps/powerpc/Dist
--- glibc-2.2.5.orig/sysdeps/powerpc/Dist	Tue Sep 19 20:55:35 2000
+++ glibc-2.2.5/sysdeps/powerpc/Dist	Tue Jul  2 11:45:25 2002
@@ -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
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/Makefile glibc-2.2.5/sysdeps/powerpc/Makefile
--- glibc-2.2.5.orig/sysdeps/powerpc/Makefile	Wed Jan  3 23:37:07 2001
+++ glibc-2.2.5/sysdeps/powerpc/Makefile	Tue Jul  2 11:46:42 2002
@@ -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
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/Versions glibc-2.2.5/sysdeps/powerpc/Versions
--- glibc-2.2.5.orig/sysdeps/powerpc/Versions	Tue Sep 19 20:55:35 2000
+++ glibc-2.2.5/sysdeps/powerpc/Versions	Tue Jul  2 11:47:05 2002
@@ -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.
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/__longjmp.S glibc-2.2.5/sysdeps/powerpc/__longjmp.S
--- glibc-2.2.5.orig/sysdeps/powerpc/__longjmp.S	Sun Jul  8 14:37:15 2001
+++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S	Tue Jul  2 11:49:33 2002
@@ -31,44 +31,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))
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h
--- glibc-2.2.5.orig/sysdeps/powerpc/bits/setjmp.h	Sun Jul  8 14:37:18 2001
+++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h	Tue Jul  2 11:51:12 2002
@@ -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
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c
--- glibc-2.2.5.orig/sysdeps/powerpc/fclrexcpt.c	Sun Jul  8 14:37:18 2001
+++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c	Thu Jan  1 03:00:00 1970
@@ -1,48 +0,0 @@
-/* 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);
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fe_nomask.c
--- glibc-2.2.5.orig/sysdeps/powerpc/fe_nomask.c	Sun Jul  8 14:37:18 2001
+++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c	Thu Jan  1 03:00:00 1970
@@ -1,32 +0,0 @@
-/* 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)
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fprrest.S glibc-2.2.5/sysdeps/powerpc/fprrest.S
--- glibc-2.2.5.orig/sysdeps/powerpc/fprrest.S	Sun Jul  8 14:37:18 2001
+++ glibc-2.2.5/sysdeps/powerpc/fprrest.S	Thu Jan  1 03:00:00 1970
@@ -1,94 +0,0 @@
-/* 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
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fprsave.S glibc-2.2.5/sysdeps/powerpc/fprsave.S
--- glibc-2.2.5.orig/sysdeps/powerpc/fprsave.S	Sun Jul  8 14:37:18 2001
+++ glibc-2.2.5/sysdeps/powerpc/fprsave.S	Thu Jan  1 03:00:00 1970
@@ -1,93 +0,0 @@
-/* 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
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/Dist glibc-2.2.5/sysdeps/powerpc/fpu/Dist
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/Dist	Tue Sep 19 20:55:35 2000
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist	Tue Jul  2 11:54:33 2002
@@ -1,3 +1,6 @@
+fe_nomask.c
+fprrest.S
+fprsave.S
 fenv_const.c
 fenv_libc.h
 t_sqrt.c
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/Makefile glibc-2.2.5/sysdeps/powerpc/fpu/Makefile
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/Makefile	Tue Sep 19 20:55:35 2000
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile	Tue Jul  2 11:55:12 2002
@@ -1,3 +1,7 @@
 ifeq ($(subdir),math)
 libm-support += fenv_const fe_nomask t_sqrt
 endif
+
+ifeq ($(subdir),misc)
+sysdep_routines += fprsave fprrest
+endif
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/Versions glibc-2.2.5/sysdeps/powerpc/fpu/Versions
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/Versions	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions	Tue Jul  2 11:55:53 2002
@@ -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;
+  }
+}
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/__longjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/__longjmp.S	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S	Tue Jul  2 11:57:12 2002
@@ -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))
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/bits/setjmp.h	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h	Tue Jul  2 11:57:51 2002
@@ -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])
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/fclrexcpt.c	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c	Tue Jul  2 11:58:28 2002
@@ -0,0 +1,43 @@
+/* Clear given exceptions in current floating-point environment.
+   Copyright (C) 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 <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;
+}
+strong_alias (__feclearexcept, __old_feclearexcept)
+symbol_version (__old_feclearexcept, feclearexcept, GLIBC_2.1);
+default_symbol_version (__feclearexcept, feclearexcept, GLIBC_2.2);
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/fe_nomask.c	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c	Tue Jul  2 11:59:09 2002
@@ -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 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 <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)
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/fprrest.S glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/fprrest.S	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S	Tue Jul  2 11:59:46 2002
@@ -0,0 +1,57 @@
+/* Copyright (C) 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>
+
+		ASM_GLOBAL_DIRECTIVE _restfpr_14
+_restfpr_14:	lfd	fp14,-144(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_15
+_restfpr_15:	lfd	fp15,-136(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_16
+_restfpr_16:	lfd	fp16,-128(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_17
+_restfpr_17:	lfd	fp17,-120(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_18
+_restfpr_18:	lfd	fp18,-112(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_19
+_restfpr_19:	lfd	fp19,-104(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_20
+_restfpr_20:	lfd	fp20,-96(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_21
+_restfpr_21:	lfd	fp21,-88(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_22
+_restfpr_22:	lfd	fp22,-80(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_23
+_restfpr_23:	lfd	fp23,-72(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_24
+_restfpr_24:	lfd	fp24,-64(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_25
+_restfpr_25:	lfd	fp25,-56(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_26
+_restfpr_26:	lfd	fp26,-48(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_27
+_restfpr_27:	lfd	fp27,-40(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_28
+_restfpr_28:	lfd	fp28,-32(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_29
+_restfpr_29:	lfd	fp29,-24(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_30
+_restfpr_30:	lfd	fp30,-16(r11)
+		ASM_GLOBAL_DIRECTIVE _restfpr_31
+_restfpr_31:	lfd	fp31,-8(r11)
+		blr
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/fprsave.S glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/fprsave.S	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S	Tue Jul  2 12:00:29 2002
@@ -0,0 +1,57 @@
+/* Copyright (C) 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>
+
+		ASM_GLOBAL_DIRECTIVE _savefpr_14
+_savefpr_14:	stfd	fp14,-144(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_15
+_savefpr_15:	stfd	fp15,-136(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_16
+_savefpr_16:	stfd	fp16,-128(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_17
+_savefpr_17:	stfd	fp17,-120(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_18
+_savefpr_18:	stfd	fp18,-112(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_19
+_savefpr_19:	stfd	fp19,-104(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_20
+_savefpr_20:	stfd	fp20,-96(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_21
+_savefpr_21:	stfd	fp21,-88(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_22
+_savefpr_22:	stfd	fp22,-80(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_23
+_savefpr_23:	stfd	fp23,-72(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_24
+_savefpr_24:	stfd	fp24,-64(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_25
+_savefpr_25:	stfd	fp25,-56(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_26
+_savefpr_26:	stfd	fp26,-48(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_27
+_savefpr_27:	stfd	fp27,-40(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_28
+_savefpr_28:	stfd	fp28,-32(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_29
+_savefpr_29:	stfd	fp29,-24(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_30
+_savefpr_30:	stfd	fp30,-16(r11)
+		ASM_GLOBAL_DIRECTIVE _savefpr_31
+_savefpr_31:	stfd	fp31,-8(r11)
+		blr
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/fpu_control.h	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h	Tue Jul  2 12:01:02 2002
@@ -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 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.  */
+
+#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 */
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu/setjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu/setjmp.S	Thu Jan  1 03:00:00 1970
+++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S	Tue Jul  2 12:01:39 2002
@@ -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))
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu_control.h
--- glibc-2.2.5.orig/sysdeps/powerpc/fpu_control.h	Sun Jul  8 14:37:18 2001
+++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h	Thu Jan  1 03:00:00 1970
@@ -1,67 +0,0 @@
-/* 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 */
diff -Nuar glibc-2.2.5.orig/sysdeps/powerpc/setjmp.S glibc-2.2.5/sysdeps/powerpc/setjmp.S
--- glibc-2.2.5.orig/sysdeps/powerpc/setjmp.S	Sun Jul  8 14:37:18 2001
+++ glibc-2.2.5/sysdeps/powerpc/setjmp.S	Tue Jul  2 12:03:05 2002
@@ -31,43 +31,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))
diff -Nuar glibc-2.2.5.orig/timezone/Makefile glibc-2.2.5/timezone/Makefile
--- glibc-2.2.5.orig/timezone/Makefile	Sat Sep  1 22:56:08 2001
+++ glibc-2.2.5/timezone/Makefile	Tue Jul  2 12:07:27 2002
@@ -67,13 +67,10 @@
 					 $(addprefix $(inst_zonedir)/, \
 						     $(posixrules-file)))
 
-ifeq ($(cross-compiling),no)
-# Don't try to install the zoneinfo files since we can't run zic.
 install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \
 					      $(zonenames:%=posix/%) \
 					      $(zonenames:%=right/%)) \
 		 $(installed-localtime-file) $(installed-posixrules-file)
-endif
 
 ifeq ($(have-ksh),yes)
 install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
@@ -105,13 +102,13 @@
 	   echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\
 	 fi								    ;\
 	 echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/right/,$$($*-zones)): \' ;\
-	 echo '$< $$(objpfx)zic leapseconds yearistype'			    ;\
+	 echo '$< /usr/sbin/zic leapseconds yearistype'			    ;\
 	 echo '	$$(tzcompile)'						    ;\
 	 echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/posix/,$$($*-zones)): \' ;\
-	 echo '$< $$(objpfx)zic /dev/null yearistype'			    ;\
+	 echo '$< /usr/sbin/zic /dev/null yearistype'			    ;\
 	 echo '	$$(tzcompile)'						    ;\
 	 echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/,$$($*-zones)): \' ;\
-	 echo '$< $$(objpfx)zic $$(leapseconds) yearistype'		    ;\
+	 echo '$< /usr/sbin/zic $$(leapseconds) yearistype'		    ;\
 	 echo '	$$(tzcompile)'						    ;\
 	 echo 'endif'							    ;\
 	 echo 'zonenames := $$(zonenames) $$($*-zones)'			    ;\
@@ -126,7 +123,7 @@
 # We have to use `-d $(inst_zonedir)' to explictly tell zic where to
 # place the output files although $(zonedir) is compiled in.  But the
 # user might have set $(install_root) on the command line of `make install'.
-zic-cmd = $(built-program-cmd) -d $(inst_zonedir)
+zic-cmd = /usr/sbin/zic -d $(inst_zonedir)
 tzcompile = $(zic-cmd)$(target-zone-flavor) -L $(word 3,$^) \
 	    -y $(dir $(word 4,$^))$(notdir $(word 4,$^)) $<
 
@@ -188,28 +185,28 @@
 test-tz-ENV = TZDIR=$(testdata)
 tst-timezone-ENV = TZDIR=$(testdata)
 
-$(testdata)/America/New_York: northamerica $(objpfx)zic $(leapseconds) \
+$(testdata)/America/New_York: northamerica $(leapseconds) \
 			      yearistype
 	$(build-testdata)
-$(testdata)/Etc/UTC: etcetera $(objpfx)zic $(leapseconds) yearistype
+$(testdata)/Etc/UTC: etcetera $(leapseconds) yearistype
 	$(build-testdata)
-$(testdata)/UTC: simplebackw $(objpfx)zic $(testdata)/Etc/UTC \
+$(testdata)/UTC: simplebackw $(testdata)/Etc/UTC \
 		 $(leapseconds) yearistype
 	$(build-testdata)
-$(testdata)/Europe/Berlin: europe $(objpfx)zic $(leapseconds) yearistype
+$(testdata)/Europe/Berlin: europe $(leapseconds) yearistype
 	$(build-testdata)
-$(testdata)/Universal: simplebackw $(objpfx)zic $(testdata)/Etc/UTC \
+$(testdata)/Universal: simplebackw $(testdata)/Etc/UTC \
 		       $(leapseconds) yearistype
 	$(build-testdata)
-$(testdata)/Australia/Melbourne: australasia $(objpfx)zic $(leapseconds) \
+$(testdata)/Australia/Melbourne: australasia $(leapseconds) \
 				 yearistype
 	$(build-testdata)
-$(testdata)/America/Sao_Paulo: southamerica $(objpfx)zic $(leapseconds) \
+$(testdata)/America/Sao_Paulo: southamerica $(leapseconds) \
 			       yearistype
 	$(build-testdata)
-$(testdata)/Asia/Tokyo: asia $(objpfx)zic $(leapseconds) yearistype
+$(testdata)/Asia/Tokyo: asia $(leapseconds) yearistype
 	$(build-testdata)
-$(testdata)/Europe/London: europe $(objpfx)zic $(leapseconds) yearistype
+$(testdata)/Europe/London: europe $(leapseconds) yearistype
 	$(build-testdata)
 
 
