yann@1: From Bill Gatliff, who said: yann@1: "Attached is a glibc-2.3.2 patchfile I use for MIPS. Versions prior to and including glibc-2.3.2 won't build without it." yann@1: yann@1: diff -bBurN glibc-2.3.2.orig/elf/dl-conflict.c glibc-2.3.2/elf/dl-conflict.c yann@1: --- glibc-2.3.2.orig/elf/dl-conflict.c 2003-06-12 21:07:54.000000000 -0500 yann@1: +++ glibc-2.3.2/elf/dl-conflict.c 2003-06-12 21:09:12.000000000 -0500 yann@1: @@ -33,6 +33,7 @@ yann@1: _dl_resolve_conflicts (struct link_map *l, ElfW(Rela) *conflict, yann@1: ElfW(Rela) *conflictend) yann@1: { yann@1: +#ifndef _DL_HAVE_NO_ELF_MACHINE_RELA yann@1: if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_RELOC, 0)) yann@1: _dl_printf ("\nconflict processing: %s\n", yann@1: l->l_name[0] ? l->l_name : rtld_progname); yann@1: @@ -64,4 +65,5 @@ yann@1: for (; conflict < conflictend; ++conflict) yann@1: elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset); yann@1: } yann@1: +#endif yann@1: } yann@1: diff -bBurN glibc-2.3.2.orig/sysdeps/mips/dl-machine.h glibc-2.3.2/sysdeps/mips/dl-machine.h yann@1: --- glibc-2.3.2.orig/sysdeps/mips/dl-machine.h 2003-06-12 21:07:49.000000000 -0500 yann@1: +++ glibc-2.3.2/sysdeps/mips/dl-machine.h 2003-06-12 21:11:10.000000000 -0500 yann@1: @@ -56,6 +56,10 @@ yann@1: #define ELF_MACHINE_JMP_SLOT R_MIPS_REL32 yann@1: #define elf_machine_type_class(type) ELF_RTYPE_CLASS_PLT yann@1: yann@1: +/* MIPS doesn't support RELA; see: yann@1: + http://lists.debian.org/debian-mips/2002/debian-mips-200209/msg00020.html */ yann@1: +#define _DL_HAVE_NO_ELF_MACHINE_RELA yann@1: + yann@1: /* Translate a processor specific dynamic tag to the index yann@1: in l_info array. */ yann@1: #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM) yann@1: diff -bBurN glibc-2.3.2.orig/sysdeps/mips/Makefile glibc-2.3.2/sysdeps/mips/Makefile yann@1: --- glibc-2.3.2.orig/sysdeps/mips/Makefile 2003-06-12 21:07:48.000000000 -0500 yann@1: +++ glibc-2.3.2/sysdeps/mips/Makefile 2003-06-12 21:10:14.000000000 -0500 yann@1: @@ -6,3 +6,11 @@ yann@1: ifeq ($(subdir),setjmp) yann@1: sysdep_routines += setjmp_aux yann@1: endif yann@1: + yann@1: +ifeq ($(subdir),csu) yann@1: +ifeq (yes,$(build-shared)) yann@1: +# Compatibility yann@1: +sysdep_routines += divdi3 yann@1: +shared-only-routines += divdi3 yann@1: +endif yann@1: +endif yann@1: diff -bBurN glibc-2.3.2.orig/sysdeps/unix/sysv/linux/mips/syscalls.list glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list yann@1: --- glibc-2.3.2.orig/sysdeps/unix/sysv/linux/mips/syscalls.list 2003-06-12 21:07:53.000000000 -0500 yann@1: +++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list 2003-06-12 21:12:30.000000000 -0500 yann@1: @@ -41,6 +41,7 @@ yann@1: sys_mknod xmknod mknod i:sii __syscall_mknod yann@1: yann@1: # System calls with wrappers. yann@1: +s_readahead EXTRA readahead i:iipi __syscall_readahead yann@1: rt_sigaction - rt_sigaction i:ippi __syscall_rt_sigaction yann@1: rt_sigpending - rt_sigpending i:pi __syscall_rt_sigpending yann@1: rt_sigprocmask - rt_sigprocmask i:ippi __syscall_rt_sigprocmask