diff -ur glibc-2.3.2.orig/configure glibc-2.3.2/configure
--- glibc-2.3.2.orig/configure	2003-02-26 18:20:48.000000000 +0900
+++ glibc-2.3.2/configure	2004-12-25 10:34:44.000000000 +0900
@@ -2347,15 +2347,6 @@
 
 
 
-if test -n "$critic_missing"; then
-{ { echo "$as_me:$LINENO: error:
-*** These critical programs are missing or too old:$critic_missing
-*** Check the INSTALL file for required versions." >&5
-echo "$as_me: error:
-*** These critical programs are missing or too old:$critic_missing
-*** Check the INSTALL file for required versions." >&2;}
-   { (exit 1); exit 1; }; }
-fi
 
 
 for ac_prog in gnumsgfmt gmsgfmt msgfmt
diff -ur glibc-2.3.2.orig/csu/Makefile glibc-2.3.2/csu/Makefile
--- glibc-2.3.2.orig/csu/Makefile	2003-01-01 07:24:37.000000000 +0900
+++ glibc-2.3.2/csu/Makefile	2004-12-25 10:35:22.000000000 +0900
@@ -99,7 +99,7 @@
 $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h
 	$(compile.S) -g0 $(ASFLAGS-.os) -o $@
 
-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions
+CFLAGS-initfini.s = -O1 -g0 -fPIC -fno-inline-functions
 
 vpath initfini.c $(full_config_sysdirs)
 
diff -ur glibc-2.3.2.orig/linuxthreads/Makefile glibc-2.3.2/linuxthreads/Makefile
--- glibc-2.3.2.orig/linuxthreads/Makefile	2003-02-22 10:01:16.000000000 +0900
+++ glibc-2.3.2/linuxthreads/Makefile	2004-12-25 10:36:19.000000000 +0900
@@ -81,7 +81,7 @@
 extra-objs += crti.o crtn.o
 omit-deps += crti crtn
 
-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions
+CFLAGS-pt-initfini.s =-O1  -g0 -fPIC -fno-inline-functions
 endif
 
 librt-tests = ex10 ex11
diff -ur glibc-2.3.2.orig/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
--- glibc-2.3.2.orig/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h	2003-01-12 18:13:57.000000000 +0900
+++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h	2004-12-25 10:36:20.000000000 +0900
@@ -34,7 +34,7 @@
 # define PSEUDO(name, syscall_name, args)				\
   .section ".text";							\
     PSEUDO_PROLOGUE;							\
-  ENTRY (name)								\
+  ENTRY (name);								\
     SINGLE_THREAD_P_INT;						\
     bne .Lpseudo_cancel;						\
     DO_CALL (syscall_name, args);					\
diff -ur glibc-2.3.2.orig/stdio-common/Makefile glibc-2.3.2/stdio-common/Makefile
--- glibc-2.3.2.orig/stdio-common/Makefile	2003-01-31 04:26:54.000000000 +0900
+++ glibc-2.3.2/stdio-common/Makefile	2004-12-25 10:36:15.000000000 +0900
@@ -21,7 +21,7 @@
 #
 subdir	:= stdio-common
 
-headers	:= printf.h stdio_ext.h
+headers	:= printf.h stdio_ext.h bits/stdio_lim.h
 
 routines	:=							      \
 	ctermid cuserid							      \
@@ -36,7 +36,7 @@
 	remove rename							      \
 	flockfile ftrylockfile funlockfile
 
-install-others = $(inst_includedir)/bits/stdio_lim.h
+#install-others = $(inst_includedir)/bits/stdio_lim.h
 
 generated = errlist-compat.c
 
@@ -60,8 +60,8 @@
 
 include ../Rules
 
-$(inst_includedir)/bits/stdio_lim.h: $(common-objpfx)bits/stdio_lim.h $(+force)
-	$(do-install)
+#$(inst_includedir)/bits/stdio_lim.h: $(common-objpfx)bits/stdio_lim.h $(+force)
+#	$(do-install)
 
 ifeq ($(cross-compiling),no)
 .PHONY: do-tst-unbputc do-tst-printf
diff -ur glibc-2.3.2.orig/stdio-common/sscanf.c glibc-2.3.2/stdio-common/sscanf.c
--- glibc-2.3.2.orig/stdio-common/sscanf.c	2002-08-11 03:09:08.000000000 +0900
+++ glibc-2.3.2/stdio-common/sscanf.c	2004-12-25 10:36:15.000000000 +0900
@@ -27,9 +27,7 @@
 /* Read formatted input from S, according to the format string FORMAT.  */
 /* VARARGS2 */
 int
-sscanf (s, format)
-     const char *s;
-     const char *format;
+sscanf (const char *s, const char *format, ...)
 {
   va_list arg;
   int done;
diff -ur glibc-2.3.2.orig/sysdeps/arm/machine-gmon.h glibc-2.3.2/sysdeps/arm/machine-gmon.h
--- glibc-2.3.2.orig/sysdeps/arm/machine-gmon.h	2001-07-08 04:21:19.000000000 +0900
+++ glibc-2.3.2/sysdeps/arm/machine-gmon.h	2004-12-25 10:34:45.000000000 +0900
@@ -32,10 +32,10 @@
 weak_alias (_mcount, mcount)
 #endif
 
-static void mcount_internal (u_long frompc, u_long selfpc);
+     //static void mcount_internal (u_long frompc, u_long selfpc);
 
 #define _MCOUNT_DECL(frompc, selfpc) \
-static void mcount_internal (u_long frompc, u_long selfpc)
+void mcount_internal (u_long frompc, u_long selfpc)
 
 /* This macro/func MUST save r0, r1 because the compiler inserts
 	blind calls to _mount(), ignoring the fact that _mcount may
diff -ur glibc-2.3.2.orig/sysdeps/generic/framestate.c glibc-2.3.2/sysdeps/generic/framestate.c
--- glibc-2.3.2.orig/sysdeps/generic/framestate.c	2003-01-08 14:04:29.000000000 +0900
+++ glibc-2.3.2/sysdeps/generic/framestate.c	2004-12-25 10:34:46.000000000 +0900
@@ -41,7 +41,12 @@
       if (handle == NULL
 	  || (frame_state_for
 	      = (framesf) __libc_dlsym (handle, "__frame_state_for")) == NULL)
-	frame_state_for = fallback_frame_state_for;
+#ifndef __USING_SJLJ_EXCEPTIONS__
+         frame_state_for = fallback_frame_state_for;
+#else
+        frame_state_for = abort;
+#endif
+
     }
 
   return frame_state_for (pc, frame_state);
diff -ur glibc-2.3.2.orig/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c
--- glibc-2.3.2.orig/sysdeps/unix/sysv/linux/arm/ioperm.c	2003-02-21 07:22:24.000000000 +0900
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-12-25 10:35:06.000000000 +0900
@@ -47,6 +47,12 @@
 #include <asm/page.h>
 #include <sys/sysctl.h>
 
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
+#define CTL_BUS_ISA BUS_ISA
+#endif
+
+
 #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
 #define PATH_CPUINFO		"/proc/cpuinfo"
 
@@ -100,8 +106,8 @@
 {
   char systype[256];
   int i, n;
-  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
-  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
   size_t len = sizeof(io.base);
 
   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
diff -ur glibc-2.3.2.orig/sysdeps/unix/sysv/linux/arm/sysdep.h glibc-2.3.2/sysdeps/unix/sysv/linux/arm/sysdep.h
--- glibc-2.3.2.orig/sysdeps/unix/sysv/linux/arm/sysdep.h	2003-02-21 05:22:10.000000000 +0900
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/sysdep.h	2004-12-25 10:35:06.000000000 +0900
@@ -158,7 +158,7 @@
        asm volatile ("swi	%1	@ syscall " #name	\
 		     : "=r" (_a1)				\
 		     : "i" (SYS_ify(name)) ASM_ARGS_##nr	\
-		     : "a1", "memory");				\
+		     : "memory");				\
        _sys_result = _a1;					\
      }								\
      (int) _sys_result; })
