diff -uNrp glibc.old/dlfcn/Makefile glibc-2.3.2/dlfcn/Makefile
--- glibc.old/dlfcn/Makefile	2003-02-25 19:46:32.000000000 -0500
+++ glibc-2.3.2/dlfcn/Makefile	2004-02-03 14:22:50.000000000 -0500
@@ -63,6 +63,8 @@ LDFLAGS-dl.so = -Wl,-dynamic-linker,$(sl
 test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
 $(test-modules): $(objpfx)%.so: $(objpfx)%.os
 	$(build-module)
+# without following rule, test-modules don't get built when cross-compiling
+tests: $(test-modules)
 
 $(objpfx)glrefmain: $(libdl)
 $(objpfx)glrefmain.out: $(objpfx)glrefmain \
diff -uNrp glibc.old/elf/dl-conflict.c glibc-2.3.2/elf/dl-conflict.c
--- glibc.old/elf/dl-conflict.c	2002-10-17 13:05:51.000000000 -0400
+++ glibc-2.3.2/elf/dl-conflict.c	2004-02-03 14:22:50.000000000 -0500
@@ -33,6 +33,7 @@ void
 _dl_resolve_conflicts (struct link_map *l, ElfW(Rela) *conflict,
 		       ElfW(Rela) *conflictend)
 {
+#ifndef _DL_HAVE_NO_ELF_MACHINE_RELA
   if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_RELOC, 0))
     _dl_printf ("\nconflict processing: %s\n",
 		l->l_name[0] ? l->l_name : rtld_progname);
@@ -64,4 +65,5 @@ _dl_resolve_conflicts (struct link_map *
     for (; conflict < conflictend; ++conflict)
       elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset);
   }
+#endif
 }
diff -uNrp glibc.old/elf/Makefile glibc-2.3.2/elf/Makefile
--- glibc.old/elf/Makefile	2003-02-21 01:28:09.000000000 -0500
+++ glibc-2.3.2/elf/Makefile	2004-02-03 14:22:50.000000000 -0500
@@ -332,6 +332,9 @@ CPPFLAGS-.os += $(if $(filter $(@F),$(pa
 test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
 generated += $(addsuffix .so,$(strip $(modules-names)))
 
+# without following rule, test-modules don't get built when cross-compiling
+tests: $(test-modules)
+
 ifeq (yes,$(build-shared))
 ifeq ($(cross-compiling),no)
 tests: $(objpfx)tst-pathopt.out
diff -uNrp glibc.old/elf/soinit.c glibc-2.3.2/elf/soinit.c
--- glibc.old/elf/soinit.c	2001-11-15 18:09:20.000000000 -0500
+++ glibc-2.3.2/elf/soinit.c	2004-02-03 14:22:49.000000000 -0500
@@ -25,7 +25,7 @@ run_hooks (void (*const list[]) (void))
 }
 
 #ifdef HAVE_DWARF2_UNWIND_INFO
-static char __EH_FRAME_BEGIN__[]
+const static char __EH_FRAME_BEGIN__[]
      __attribute__ ((section (".eh_frame")))
      = { };
 # ifdef HAVE_DWARF2_UNWIND_INFO_STATIC
diff -uNrp glibc.old/include/libc-symbols.h glibc-2.3.2/include/libc-symbols.h
--- glibc.old/include/libc-symbols.h	2003-01-03 18:21:03.000000000 -0500
+++ glibc-2.3.2/include/libc-symbols.h	2004-02-03 14:22:50.000000000 -0500
@@ -247,7 +247,7 @@
     __attribute__ ((unused, section (".gnu.warning." #symbol __sec_comment))) \
     = msg;
 #  define libc_freeres_ptr(decl) \
-  __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", @nobits") \
+  __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \
   decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
 #  define __libc_freeres_fn_section \
   __attribute__ ((section ("__libc_freeres_fn")))
diff -uNrp glibc.old/libio/swprintf.c glibc-2.3.2/libio/swprintf.c
--- glibc.old/libio/swprintf.c	2001-07-07 15:21:03.000000000 -0400
+++ glibc-2.3.2/libio/swprintf.c	2004-02-03 14:22:51.000000000 -0500
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
+	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
@@ -22,10 +23,7 @@
 /* Write formatted output into S, according to the format string FORMAT.  */
 /* VARARGS3 */
 int
-swprintf (s, n, format)
-     wchar_t *s;
-     size_t n;
-     const wchar_t *format;
+swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
 {
   va_list arg;
   int done;
diff -uNrp glibc.old/libio/swscanf.c glibc-2.3.2/libio/swscanf.c
--- glibc.old/libio/swscanf.c	2001-07-07 15:21:03.000000000 -0400
+++ glibc-2.3.2/libio/swscanf.c	2004-02-03 14:22:51.000000000 -0500
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1998,1999,2003 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
@@ -22,9 +22,7 @@
 /* Read formatted input from S, according to the format string FORMAT.  */
 /* VARARGS2 */
 int
-swscanf (s, format)
-     const wchar_t *s;
-     const wchar_t *format;
+swscanf (const wchar_t *s, const wchar_t *format, ...)
 {
   va_list arg;
   int done;
diff -uNrp glibc.old/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
--- glibc.old/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h	2003-01-12 04:13:57.000000000 -0500
+++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h	2004-02-03 14:24:19.000000000 -0500
@@ -24,6 +24,17 @@
 
 #if !defined NOT_IN_libc || defined IS_IN_libpthread
 
+/* We push lr onto the stack, so we have to use ldmib instead of ldmia
+   to find the saved arguments.  */
+# ifdef PIC
+#  undef DOARGS_5
+#  undef DOARGS_6
+#  undef DOARGS_7
+#  define DOARGS_5 str r4, [sp, $-4]!; ldr r4, [sp, $8];
+#  define DOARGS_6 mov ip, sp; stmfd sp!, {r4, r5}; ldmib ip, {r4, r5};
+#  define DOARGS_7 mov ip, sp; stmfd sp!, {r4, r5, r6}; ldmib ip, {r4, r5, r6};
+# endif
+
 # undef PSEUDO_RET
 # define PSEUDO_RET						        \
     ldrcc pc, [sp], $4;						        \
@@ -34,7 +45,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);					\
@@ -110,7 +121,7 @@ extern int __local_multiple_threads attr
   ldr reg, 2b;								\
 3:									\
   add ip, pc, ip;							\
-  ldr ip, [ip, lr];							\
+  ldr ip, [ip, reg];							\
   teq ip, #0;
 #   define SINGLE_THREAD_P_INT						\
   str lr, [sp, $-4]!;							\
diff -uNrp glibc.old/malloc/tst-calloc.c glibc-2.3.2/malloc/tst-calloc.c
--- glibc.old/malloc/tst-calloc.c	2002-08-07 19:03:19.000000000 -0400
+++ glibc-2.3.2/malloc/tst-calloc.c	2004-02-03 14:22:50.000000000 -0500
@@ -25,9 +25,8 @@
 #include <stdio.h>
 
 
-/* Number of samples per size.  */
-#define N 50000
-
+/* Number of samples per size.  This is also the maximum memory consumption in kilobytes. */
+#define N 8000
 
 static void
 fixed_test (int size)
diff -uNrp glibc.old/resolv/Makefile glibc-2.3.2/resolv/Makefile
--- glibc.old/resolv/Makefile	2003-02-25 18:40:08.000000000 -0500
+++ glibc-2.3.2/resolv/Makefile	2004-02-03 14:22:50.000000000 -0500
@@ -93,6 +93,8 @@ $(objpfx)tst-leaks: $(objpfx)libresolv.s
 tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace
 $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
 	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@
+ifeq (no,$(cross-compiling))
 ifneq (no,$(PERL))
 tests: $(objpfx)mtrace-tst-leaks
 endif
+endif
diff -uNrp glibc.old/stdio-common/sscanf.c glibc-2.3.2/stdio-common/sscanf.c
--- glibc.old/stdio-common/sscanf.c	2002-08-10 14:09:08.000000000 -0400
+++ glibc-2.3.2/stdio-common/sscanf.c	2004-02-03 14:22:51.000000000 -0500
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,95,96,98,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1998,2002,2003 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
@@ -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 -uNrp glibc.old/string/bits/string2.h glibc-2.3.2/string/bits/string2.h
--- glibc.old/string/bits/string2.h	2002-05-25 02:09:18.000000000 -0400
+++ glibc-2.3.2/string/bits/string2.h	2004-02-03 14:22:51.000000000 -0500
@@ -1,5 +1,5 @@
 /* Machine-independant string function optimizations.
-   Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+   Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -76,7 +76,7 @@
    use unaligned memory accesses.  */
 # define __STRING2_COPY_TYPE(N) \
   typedef struct { unsigned char __arr[N]; }				      \
-    __STRING2_COPY_ARR##N __attribute__ ((packed))
+    __attribute__ ((__packed__)) __STRING2_COPY_ARR##N
 __STRING2_COPY_TYPE (2);
 __STRING2_COPY_TYPE (3);
 __STRING2_COPY_TYPE (4);
diff -uNrp glibc.old/sysdeps/arm/machine-gmon.h glibc-2.3.2/sysdeps/arm/machine-gmon.h
--- glibc.old/sysdeps/arm/machine-gmon.h	2001-07-07 15:21:19.000000000 -0400
+++ glibc-2.3.2/sysdeps/arm/machine-gmon.h	2004-02-03 14:22:49.000000000 -0500
@@ -32,10 +32,8 @@ void _mcount (void);
 weak_alias (_mcount, mcount)
 #endif
 
-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 -uNrp glibc.old/sysdeps/gnu/errlist.awk glibc-2.3.2/sysdeps/gnu/errlist.awk
--- glibc.old/sysdeps/gnu/errlist.awk	2002-08-28 19:39:22.000000000 -0400
+++ glibc-2.3.2/sysdeps/gnu/errlist.awk	2004-02-03 14:22:49.000000000 -0500
@@ -39,7 +39,7 @@ BEGIN {
 
     print "/* This file is generated from errno.texi by errlist.awk.  */"
     print "";
-    print "#include <errno.h>";
+    print "#include <stdlib/errno.h>";
     print "#include <libintl.h>";
     print "";
     print "#ifndef ERR_REMAP";
diff -uNrp glibc.old/sysdeps/gnu/errlist.c glibc-2.3.2/sysdeps/gnu/errlist.c
--- glibc.old/sysdeps/gnu/errlist.c	2002-08-28 19:39:22.000000000 -0400
+++ glibc-2.3.2/sysdeps/gnu/errlist.c	2004-02-03 14:27:21.000000000 -0500
@@ -1,6 +1,6 @@
 /* This file is generated from errno.texi by errlist.awk.  */
 
-#include <errno.h>
+#include <stdlib/errno.h>
 #include <libintl.h>
 
 #ifndef ERR_REMAP
diff -uNrp glibc.old/sysdeps/mips/dl-machine.h glibc-2.3.2/sysdeps/mips/dl-machine.h
--- glibc.old/sysdeps/mips/dl-machine.h	2003-02-12 04:42:22.000000000 -0500
+++ glibc-2.3.2/sysdeps/mips/dl-machine.h	2004-02-03 14:22:50.000000000 -0500
@@ -56,6 +56,10 @@
 #define ELF_MACHINE_JMP_SLOT			R_MIPS_REL32
 #define elf_machine_type_class(type)		ELF_RTYPE_CLASS_PLT
 
+/* MIPS doesn't support RELA; see:
+   http://lists.debian.org/debian-mips/2002/debian-mips-200209/msg00020.html */
+#define _DL_HAVE_NO_ELF_MACHINE_RELA
+
 /* Translate a processor specific dynamic tag to the index
    in l_info array.  */
 #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM)
diff -uNrp glibc.old/sysdeps/mips/Makefile glibc-2.3.2/sysdeps/mips/Makefile
--- glibc.old/sysdeps/mips/Makefile	2000-09-06 16:26:50.000000000 -0400
+++ glibc-2.3.2/sysdeps/mips/Makefile	2004-02-03 14:22:50.000000000 -0500
@@ -6,3 +6,11 @@ endif
 ifeq ($(subdir),setjmp)
 sysdep_routines += setjmp_aux
 endif
+
+ifeq ($(subdir),csu)
+ifeq (yes,$(build-shared))
+# Compatibility
+sysdep_routines += divdi3
+shared-only-routines += divdi3
+endif
+endif
diff -uNrp glibc.old/sysdeps/powerpc/nofpu/sim-full.c glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c
--- glibc.old/sysdeps/powerpc/nofpu/sim-full.c	2002-10-19 16:06:29.000000000 -0400
+++ glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c	2004-02-03 14:22:50.000000000 -0500
@@ -23,12 +23,15 @@
 #include "soft-supp.h"
 
 /* Global to store sticky exceptions.  */
-int __sim_exceptions;
+int __sim_exceptions __attribute__ ((nocommon));
+libc_hidden_data_def (__sim_exceptions);
 
 /* By default, no exceptions should trap.  */
 int __sim_disabled_exceptions = 0xffffffff;
+libc_hidden_data_def (__sim_disabled_exceptions);
 
-int __sim_round_mode;
+int __sim_round_mode __attribute__ ((nocommon));
+libc_hidden_data_def (__sim_round_mode);
 
 void
 __simulate_exceptions (int x)
diff -uNrp glibc.old/sysdeps/powerpc/nofpu/soft-supp.h glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h
--- glibc.old/sysdeps/powerpc/nofpu/soft-supp.h	2002-10-19 16:06:29.000000000 -0400
+++ glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h	2004-02-03 14:22:50.000000000 -0500
@@ -27,7 +27,11 @@ typedef union
 } fenv_union_t;
 
 
-extern int __sim_exceptions attribute_hidden;
-extern int __sim_disabled_exceptions attribute_hidden;
-extern int __sim_round_mode attribute_hidden;
+extern int __sim_exceptions;
+libc_hidden_proto (__sim_exceptions);
+extern int __sim_disabled_exceptions;
+libc_hidden_proto (__sim_disabled_exceptions);
+extern int __sim_round_mode;
+libc_hidden_proto (__sim_round_mode);
+
 extern void __simulate_exceptions (int x) attribute_hidden;
diff -uNrp glibc.old/sysdeps/powerpc/soft-fp/sfp-machine.h glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h
--- glibc.old/sysdeps/powerpc/soft-fp/sfp-machine.h	2002-10-17 18:36:14.000000000 -0400
+++ glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h	2004-02-03 14:22:50.000000000 -0500
@@ -52,7 +52,11 @@
 #define FP_HANDLE_EXCEPTIONS  __simulate_exceptions (_fex)
 #define FP_ROUNDMODE          __sim_round_mode
 
-extern int __sim_exceptions attribute_hidden;
-extern int __sim_disabled_exceptions attribute_hidden;
-extern int __sim_round_mode attribute_hidden;
+extern int __sim_exceptions;
+libc_hidden_proto (__sim_exceptions);
+extern int __sim_disabled_exceptions;
+libc_hidden_proto (__sim_disabled_exceptions);
+extern int __sim_round_mode;
+libc_hidden_proto (__sim_round_mode);
+
 extern void __simulate_exceptions (int x) attribute_hidden;
diff -uNrp glibc.old/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c
--- glibc.old/sysdeps/unix/sysv/linux/arm/ioperm.c	2003-02-20 17:22:24.000000000 -0500
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-02-03 14:22:49.000000000 -0500
@@ -47,6 +47,12 @@
 #include <asm/page.h>
 #include <sys/sysctl.h>
 
+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
+#endif
+
 #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
 #define PATH_CPUINFO		"/proc/cpuinfo"
 
@@ -80,7 +86,7 @@ static struct platform {
  * Initialize I/O system.  There are several ways to get the information
  * we need.  Each is tried in turn until one succeeds.
  *
- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  *    but not all kernels support it.
  *
  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
@@ -100,8 +106,8 @@ init_iosys (void)
 {
   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 -uNrp glibc.old/sysdeps/unix/sysv/linux/arm/sysdep.h glibc-2.3.2/sysdeps/unix/sysv/linux/arm/sysdep.h
--- glibc.old/sysdeps/unix/sysv/linux/arm/sysdep.h	2003-02-20 15:22:10.000000000 -0500
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/sysdep.h	2004-02-03 14:22:49.000000000 -0500
@@ -158,7 +158,7 @@ __local_syscall_error:						\
        asm volatile ("swi	%1	@ syscall " #name	\
 		     : "=r" (_a1)				\
 		     : "i" (SYS_ify(name)) ASM_ARGS_##nr	\
-		     : "a1", "memory");				\
+		     : "memory");				\
        _sys_result = _a1;					\
      }								\
      (int) _sys_result; })
diff -uNrp glibc.old/sysdeps/unix/sysv/linux/kernel-features.h glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h
--- glibc.old/sysdeps/unix/sysv/linux/kernel-features.h	2003-02-20 17:11:52.000000000 -0500
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h	2004-02-03 14:22:50.000000000 -0500
@@ -151,11 +151,20 @@
 
 /* The changed st_ino field appeared in 2.4.0-test6.  But we cannot
    distinguish this version from other 2.4.0 releases.  Therefore play
-   save and assume it available is for 2.4.1 and up.  */
-#if __LINUX_KERNEL_VERSION >= 132097
+   save and assume it available is for 2.4.1 and up.  However, SH is lame,
+   and still does not have a 64-bit inode field.  */
+#if __LINUX_KERNEL_VERSION >= 132097 \
+    && !defined __sh__
 # define __ASSUME_ST_INO_64_BIT		1
 #endif
 
+/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test.  */
+#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__
+# define __ASSUME_TRUNCATE64_SYSCALL	1
+# define __ASSUME_MMAP2_SYSCALL		1
+# define __ASSUME_STAT64_SYSCALL	1
+#endif
+
 /* To support locking of large files a new fcntl() syscall was introduced
    in 2.4.0-test7.  We test for 2.4.1 for the earliest version we know
    the syscall is available.  */
diff -uNrp glibc.old/sysdeps/unix/sysv/linux/mips/clone.S glibc-2.3.2/sysdeps/unix/sysv/linux/mips/clone.S
--- glibc.old/sysdeps/unix/sysv/linux/mips/clone.S	2001-07-07 15:21:35.000000000 -0400
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/clone.S	2004-02-03 14:22:50.000000000 -0500
@@ -63,7 +63,7 @@ NESTED(__clone,4*SZREG,sp)
 	syscall
 
 	bnez		a3,error
-	beqz		v0,__thread_start
+	beqz		v0,.Lthread_start
 
 	/* Successful return from the parent */
 	addiu		sp,32
@@ -85,6 +85,7 @@ error:
    debug info.  */
 
 ENTRY(__thread_start)
+.Lthread_start:
 	/* cp is already loaded.  */
 	.cprestore	16
 	/* The stackframe has been created on entry of clone().  */
diff -uNrp glibc.old/sysdeps/unix/sysv/linux/mips/syscalls.list glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list
--- glibc.old/sysdeps/unix/sysv/linux/mips/syscalls.list	2003-01-30 22:39:32.000000000 -0500
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list	2004-02-03 14:22:50.000000000 -0500
@@ -41,6 +41,7 @@ s_ustat		ustat	ustat		i:ip	__syscall_ust
 sys_mknod	xmknod	mknod		i:sii	__syscall_mknod
 
 # System calls with wrappers.
+s_readahead     EXTRA   readahead       i:iipi  __syscall_readahead
 rt_sigaction	-	rt_sigaction	i:ippi	__syscall_rt_sigaction
 rt_sigpending	-	rt_sigpending	i:pi	__syscall_rt_sigpending
 rt_sigprocmask	-	rt_sigprocmask	i:ippi	__syscall_rt_sigprocmask
diff -uNrp glibc.old/sysdeps/unix/sysv/linux/sys/epoll.h glibc-2.3.2/sysdeps/unix/sysv/linux/sys/epoll.h
--- glibc.old/sysdeps/unix/sysv/linux/sys/epoll.h	2002-12-16 18:24:21.000000000 -0500
+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sys/epoll.h	2004-02-03 14:22:49.000000000 -0500
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 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
@@ -19,6 +19,7 @@
 #ifndef	_SYS_EPOLL_H
 #define	_SYS_EPOLL_H	1
 
+#include <stdint.h>
 #include <sys/types.h>
 
 
@@ -42,8 +43,10 @@ enum EPOLL_EVENTS
 #define EPOLLMSG EPOLLMSG
     EPOLLERR = 0x008,
 #define EPOLLERR EPOLLERR
-    EPOLLHUP = 0x010
+    EPOLLHUP = 0x010,
 #define EPOLLHUP EPOLLHUP
+    EPOLLET = (1 << 31)
+#define EPOLLET EPOLLET
   };
 
 
