This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] MIPS/Linux: Clean up cpp ABI dependencies


Hello,

 As of GCC 3.4 the preprocessor does not use any of _MIPS_SIM_* macros 
anymore.  Glibc still depends on them and depending on your setup building 
may succeed or not (it does not build here with GCC 3.4.2 as 
sysdeps/mips/memcpy.S picks up wrong register names).  Here is my attempt 
to clean the whole mess up while retaining functionality for older 
compilers.

 The assumptions are as follows:

1. Glibc can only be built with GCC 3.2 or higher.  That version already 
knew of _ABIN32 and _ABI64, but not about _ABIO32 (probably due to an 
omission).  Therefore we need to be prepared for a compiler that may not 
know all these three macros for all files, not only for installed headers.  
That restriction may be leveraged in the future once at least GCC 3.4 is 
required for build.

2. Installed headers may be used with an old (pre 3.2) compiler and user 
software may refer to _MIPS_SIM_* macros.  These are defined using _ABI* 
macros to reflect compiler's settings for the current build.  Fortunately 
values of the formers never conflict with ones of the latters.

3. _ABIN32, _ABI64 and _ABIO32 macros are preferable to _MIPS_SIM_* ones 
as they are defined by the compiler internally, thus there is no need to 
rely on the <sgidefs.h> header.  Once at least GCC 3.4 is required 
references to that header can be removed from all files, but installed 
headers.

 The changes have been tested successfully with GCC 3.4.2 for mips-linux 
and mipsel-linux hosts, by doing a build and running `make check'.

2004-11-05  Maciej W. Rozycki  <macro@mips.com>

	* linuxthreads/sysdeps/mips/pspinlock.c: Include <sgidefs.h>.  Use 
	_ABIO32, _ABIN32 and _ABI64 for ABI selection throughout.
	* sysdeps/mips/dl-machine.h: Likewise.
	* sysdeps/mips/elf/start.S: Likewise.
	* sysdeps/mips/mips64/__longjmp.c: Likewise.
	* sysdeps/mips/mips64/bsd-_setjmp.S: Likewise.
	* sysdeps/mips/mips64/bsd-setjmp.S: Likewise.
	* sysdeps/mips/mips64/setjmp.S: Likewise.
	* sysdeps/mips/mips64/setjmp_aux.c: Likewise.
	* sysdeps/mips/sys/regdef.h: Likewise.
	* sysdeps/mips/sys/ucontext.h: Likewise.
	* sysdeps/unix/mips/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/kernel-features.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/ptrace.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise.
	* linuxthreads/sysdeps/mips/pt-machine.h: Use _ABIO32, _ABIN32 and 
	_ABI64 for ABI selection throughout.
	* sysdeps/mips/atomicity.h: Likewise.
	* sysdeps/mips/bits/setjmp.h: Likewise.
	* sysdeps/mips/fpu/bits/mathdef.h: Likewise.
	* sysdeps/mips/machine-gmon.h: Likewise.
	* sysdeps/mips/sys/asm.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/sigcontext.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/ptrace.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/tas.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/user.h: Likewise.
	* sysdeps/mips/sgidefs.h: Prevent <asm/sgidefs.h> from being 
	included by kernel headers and undo its settings if already 
	included.  Define _ABIO32, _ABIN32 and _ABI64 if missing and use 
	them to define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32 and 
	_MIPS_SIM_ABI64 for compatibility.
	* sysdeps/unix/sysv/linux/mips/Makefile: Use _ABIO32, _ABIN32 and
	_ABI64 for ABI selection in generated syscall-list.h
	* sysdeps/unix/sysv/linux/mips/configure.in: Use _ABIO32, _ABIN32
	and _ABI64 for ABI selection in generated asm-unistd.h.
	* sysdeps/unix/sysv/linux/mips/configure: Regenerate.

	* sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Correct
	an inverted _MIPS_SIM conditional.

 Please apply.

  Maciej

glibc-2.3.3-20041018-mips-abi-2.patch
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/linuxthreads/sysdeps/mips/pspinlock.c glibc-2.3.3-20041018/linuxthreads/sysdeps/mips/pspinlock.c
--- glibc-2.3.3-20041018.macro/linuxthreads/sysdeps/mips/pspinlock.c	Wed Jul 21 01:26:15 2004
+++ glibc-2.3.3-20041018/linuxthreads/sysdeps/mips/pspinlock.c	Fri Nov  5 13:59:55 2004
@@ -19,6 +19,7 @@
 
 #include <errno.h>
 #include <pthread.h>
+#include <sgidefs.h>
 #include <sys/tas.h>
 #include "internals.h"
 
@@ -34,7 +35,7 @@ __pthread_spin_lock (pthread_spinlock_t 
     ("\t\t\t# spin_lock\n"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
      "ll	%1,%3\n\t"
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/linuxthreads/sysdeps/mips/pt-machine.h glibc-2.3.3-20041018/linuxthreads/sysdeps/mips/pt-machine.h
--- glibc-2.3.3-20041018.macro/linuxthreads/sysdeps/mips/pt-machine.h	Wed Jul 21 01:26:15 2004
+++ glibc-2.3.3-20041018/linuxthreads/sysdeps/mips/pt-machine.h	Fri Nov  5 14:18:22 2004
@@ -24,9 +24,8 @@
 #ifndef _PT_MACHINE_H
 #define _PT_MACHINE_H   1
 
-#include <sys/tas.h>
-
 #include <sgidefs.h>
+#include <sys/tas.h>
 
 #ifndef PT_EI
 # define PT_EI extern inline __attribute__ ((always_inline))
@@ -63,10 +62,10 @@ __compare_and_swap (long int *p, long in
     ("/* Inline compare & swap */\n"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
      "lld	%1,%5\n\t"
 #else
      "ll	%1,%5\n\t"
@@ -74,7 +73,7 @@ __compare_and_swap (long int *p, long in
      "move	%0,$0\n\t"
      "bne	%1,%3,2f\n\t"
      "move	%0,%4\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
      "scd	%0,%2\n\t"
 #else
      "sc	%0,%2\n\t"
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/atomicity.h glibc-2.3.3-20041018/sysdeps/mips/atomicity.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/atomicity.h	Wed Jul 21 01:26:34 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/atomicity.h	Fri Nov  5 14:00:01 2004
@@ -33,7 +33,7 @@ exchange_and_add (volatile uint32_t *mem
     ("/* Inline exchange & add */\n"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
      "ll	%0,%3\n\t"
@@ -59,7 +59,7 @@ atomic_add (volatile uint32_t *mem, int 
     ("/* Inline atomic add */\n"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
      "ll	%0,%2\n\t"
@@ -83,10 +83,10 @@ compare_and_swap (volatile long int *p, 
     ("/* Inline compare & swap */\n"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
      "lld	%1,%5\n\t"
 #else
      "ll	%1,%5\n\t"
@@ -94,7 +94,7 @@ compare_and_swap (volatile long int *p, 
      "move	%0,$0\n\t"
      "bne	%1,%3,2f\n\t"
      "move	%0,%4\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
      "scd	%0,%2\n\t"
 #else
      "sc	%0,%2\n\t"
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/bits/setjmp.h glibc-2.3.3-20041018/sysdeps/mips/bits/setjmp.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/bits/setjmp.h	Wed Jul 21 01:26:34 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/bits/setjmp.h	Fri Nov  5 14:00:03 2004
@@ -26,7 +26,7 @@
 
 typedef struct
   {
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
     /* Program counter.  */
     __ptr_t __pc;
 
@@ -62,7 +62,7 @@ typedef struct
     int __fpc_csr;
 
     /* Callee-saved floating point registers.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
     double __fpregs[8];
 #else
     double __fpregs[6];
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/dl-machine.h glibc-2.3.3-20041018/sysdeps/mips/dl-machine.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/dl-machine.h	Sat Oct 16 02:25:31 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/dl-machine.h	Fri Nov  5 14:00:04 2004
@@ -32,6 +32,7 @@
 #error ENTRY_POINT needs to be defined for MIPS.
 #endif
 
+#include <sgidefs.h>
 #include <sys/asm.h>
 
 /* The offset of gp from GOT might be system-dependent.  It's set by
@@ -74,10 +75,9 @@ do { if ((l)->l_info[DT_MIPS (RLD_MAP)])
 static inline int __attribute_used__
 elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
 {
-#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
   /* Don't link o32 and n32 together.  */
-  if (((ehdr->e_flags & EF_MIPS_ABI2) != 0)
-      != (_MIPS_SIM != _MIPS_SIM_ABI32))
+  if (((ehdr->e_flags & EF_MIPS_ABI2) != 0) != (_MIPS_SIM == _ABIN32))
     return 0;
 #endif
 
@@ -130,7 +130,7 @@ elf_machine_load_address (void)
 }
 
 /* The MSB of got[1] of a gnu object is set to identify gnu objects.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
 # define ELF_MIPS_GNU_GOT1_MASK	0x8000000000000000L
 #else
 # define ELF_MIPS_GNU_GOT1_MASK	0x80000000L
@@ -257,7 +257,7 @@ elf_machine_runtime_link_map (ElfW(Addr)
   return NULL;
 }
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 #define ELF_DL_FRAME_SIZE 40
 
 #define ELF_DL_SAVE_ARG_REGS "\
@@ -278,7 +278,7 @@ elf_machine_runtime_link_map (ElfW(Addr)
 
 #define IFABIO32(X) X
 
-#else /* _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64 */
+#else /* _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64 */
 
 #define ELF_DL_FRAME_SIZE 80
 
@@ -550,7 +550,7 @@ elf_machine_rel (struct link_map *map, c
 
   switch (r_type)
     {
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
     case (R_MIPS_64 << 8) | R_MIPS_REL32:
 #else
     case R_MIPS_REL32:
@@ -615,7 +615,7 @@ elf_machine_rel (struct link_map *map, c
       break;
     case R_MIPS_NONE:		/* Alright, Wilbur.  */
       break;
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
     case R_MIPS_64:
       /* For full compliance with the ELF64 ABI, one must precede the
 	 _REL32/_64 pair of relocations with a _64 relocation, such
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/elf/start.S glibc-2.3.3-20041018/sysdeps/mips/elf/start.S
--- glibc-2.3.3-20041018.macro/sysdeps/mips/elf/start.S	Tue Aug 17 01:26:44 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/elf/start.S	Fri Nov  5 17:52:28 2004
@@ -1,5 +1,5 @@
 /* Startup code compliant to the ELF Mips ABI.
-   Copyright (C) 1995, 1997, 2000, 2001, 2002, 2003
+   Copyright (C) 1995, 1997, 2000, 2001, 2002, 2003, 2004
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -37,6 +37,7 @@
 
 #define __ASSEMBLY__ 1
 #include <entry.h>
+#include <sgidefs.h>
 #include <sys/asm.h>
 
 #ifndef ENTRY_POINT
@@ -93,12 +94,12 @@ ENTRY_POINT:
 	   on o32 and quad words (16 bytes) on n32 and n64.  */
 	
 	and $29, -2 * SZREG
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 	PTR_SUBIU $29, 32
 #endif
 	PTR_LA $7, __libc_csu_init		/* init */
 	PTR_LA $8, __libc_csu_fini
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 	PTR_S $8, 16($29)		/* fini */
 	PTR_S $2, 20($29)		/* rtld_fini */
 	PTR_S $29, 24($29)		/* stack_end */
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/fpu/bits/mathdef.h glibc-2.3.3-20041018/sysdeps/mips/fpu/bits/mathdef.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/fpu/bits/mathdef.h	Wed Jul 21 01:26:34 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/fpu/bits/mathdef.h	Fri Nov  5 14:20:55 2004
@@ -39,7 +39,7 @@ typedef double double_t;	/* `double' exp
 
 #endif	/* ISO C99 */
 
-#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _MIPS_SIM_ABI32
+#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
 /* Signal that we do not really have a `long double'.  This disables the
    declaration of all the `long double' function variants.  */
 # define __NO_LONG_DOUBLE_MATH	1
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/machine-gmon.h glibc-2.3.3-20041018/sysdeps/mips/machine-gmon.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/machine-gmon.h	Wed Jul 21 01:26:34 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/machine-gmon.h	Fri Nov  5 14:00:08 2004
@@ -26,7 +26,7 @@ static void __attribute_used__ __mcount 
 /* Call __mcount with the return PC for our caller,
    and the return PC our caller will return to.  */
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 
 #ifdef __PIC__
 # define CPLOAD ".cpload $25;"
@@ -83,10 +83,10 @@ static void __attribute_used__ __mcount 
 # define CPRETURN
 #endif
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
 # define PTR_ADDU_STRING "add" /* no u */
 # define PTR_SUBU_STRING "sub" /* no u */
-#elif _MIPS_SIM == _MIPS_SIM_ABI64
+#elif _MIPS_SIM == _ABI64
 # define PTR_ADDU_STRING "daddu"
 # define PTR_SUBU_STRING "dsubu"
 #else
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/__longjmp.c glibc-2.3.3-20041018/sysdeps/mips/mips64/__longjmp.c
--- glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/__longjmp.c	Wed Jul 21 01:26:34 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/mips64/__longjmp.c	Fri Nov  5 14:00:09 2004
@@ -19,6 +19,7 @@
    02111-1307 USA.  */
 
 #include <setjmp.h>
+#include <sgidefs.h>
 #include <stdlib.h>
 
 #undef __longjmp
@@ -39,7 +40,7 @@ __longjmp (env, val_arg)
   register int val asm ("a1");
 
   /* Pull back the floating point callee-saved registers.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
   asm volatile ("l.d $f24, %0" : : "m" (env[0].__fpregs[0]));
   asm volatile ("l.d $f25, %0" : : "m" (env[0].__fpregs[1]));
   asm volatile ("l.d $f26, %0" : : "m" (env[0].__fpregs[2]));
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/bsd-_setjmp.S glibc-2.3.3-20041018/sysdeps/mips/mips64/bsd-_setjmp.S
--- glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/bsd-_setjmp.S	Sat May 31 02:26:03 2003
+++ glibc-2.3.3-20041018/sysdeps/mips/mips64/bsd-_setjmp.S	Fri Nov  5 17:53:03 2004
@@ -1,5 +1,6 @@
 /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  MIPS64 version.
-   Copyright (C) 1996, 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004
+	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
@@ -21,6 +22,7 @@
    We cannot do it in C because it must be a tail-call, so frame-unwinding
    in setjmp doesn't clobber the state restored by longjmp.  */
 
+#include <sgidefs.h>
 #include <sysdep.h>
 #include <sys/asm.h>
 
@@ -33,7 +35,7 @@ ENTRY (_setjmp)
 #endif
 	SETUP_GP64 (v0, C_SYMBOL_NAME (_setjmp))
 	PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 	nop
 #endif	
 	RESTORE_GP64
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/bsd-setjmp.S glibc-2.3.3-20041018/sysdeps/mips/mips64/bsd-setjmp.S
--- glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/bsd-setjmp.S	Tue Mar 18 03:25:56 2003
+++ glibc-2.3.3-20041018/sysdeps/mips/mips64/bsd-setjmp.S	Fri Nov  5 17:53:18 2004
@@ -1,5 +1,5 @@
 /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  MIPS64 version.
-   Copyright (C) 1996, 1997, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2002, 2003, 2004 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
@@ -21,6 +21,7 @@
    We cannot do it in C because it must be a tail-call, so frame-unwinding
    in setjmp doesn't clobber the state restored by longjmp.  */
 
+#include <sgidefs.h>
 #include <sysdep.h>
 #include <sys/asm.h>
 
@@ -33,7 +34,7 @@ ENTRY (setjmp)
 #endif
 	SETUP_GP64 (v0, C_SYMBOL_NAME (setjmp))
 	PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 	nop
 #endif	
 	RESTORE_GP64
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/setjmp.S glibc-2.3.3-20041018/sysdeps/mips/mips64/setjmp.S
--- glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/setjmp.S	Fri Mar 21 03:26:01 2003
+++ glibc-2.3.3-20041018/sysdeps/mips/mips64/setjmp.S	Fri Nov  5 17:53:38 2004
@@ -1,4 +1,5 @@
-/* Copyright (C) 1996, 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004
+	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
@@ -16,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <sgidefs.h>
 #include <sysdep.h>
 #include <sys/asm.h>
 
@@ -33,11 +35,11 @@ ENTRY (__sigsetjmp)
 	move a2, sp
 	move a3, fp
 	PTR_LA t9, __sigsetjmp_aux
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 	nop
 #endif	
 	RESTORE_GP64
-#if _MIPS_SIM != _MIPS_SIM_ABI32
+#if _MIPS_SIM != _ABIO32
 	move a4, gp
 #endif
 	jr t9
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/setjmp_aux.c glibc-2.3.3-20041018/sysdeps/mips/mips64/setjmp_aux.c
--- glibc-2.3.3-20041018.macro/sysdeps/mips/mips64/setjmp_aux.c	Wed Jul 21 01:26:35 2004
+++ glibc-2.3.3-20041018/sysdeps/mips/mips64/setjmp_aux.c	Fri Nov  5 14:22:12 2004
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <setjmp.h>
+#include <sgidefs.h>
 
 /* This function is only called via the assembly language routine
    __sigsetjmp, which arranges to pass in the stack pointer and the frame
@@ -29,7 +30,7 @@ __sigsetjmp_aux (jmp_buf env, int savema
 		 long long gp)
 {
   /* Store the floating point callee-saved registers...  */
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABI64
   asm volatile ("s.d $f24, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[0]));
   asm volatile ("s.d $f25, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[1]));
   asm volatile ("s.d $f26, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[2]));
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/sgidefs.h glibc-2.3.3-20041018/sysdeps/mips/sgidefs.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/sgidefs.h	Wed Mar 26 03:25:59 2003
+++ glibc-2.3.3-20041018/sysdeps/mips/sgidefs.h	Fri Nov  5 17:51:32 2004
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ralf Baechle <ralf@gnu.org>.
 
@@ -21,6 +21,27 @@
 #define _SGIDEFS_H	1
 
 /*
+ * A crude hack to stop <asm/sgidefs.h>
+ */
+#undef __ASM_SGIDEFS_H
+#define __ASM_SGIDEFS_H
+
+/*
+ * And remove any damage it might have already done
+ */
+#undef _MIPS_ISA_MIPS1
+#undef _MIPS_ISA_MIPS2
+#undef _MIPS_ISA_MIPS3
+#undef _MIPS_ISA_MIPS4
+#undef _MIPS_ISA_MIPS5
+#undef _MIPS_ISA_MIPS32
+#undef _MIPS_ISA_MIPS64
+
+#undef _MIPS_SIM_ABI32
+#undef _MIPS_SIM_NABI32
+#undef _MIPS_SIM_ABI64
+
+/*
  * Definitions for the ISA level
  */
 #define _MIPS_ISA_MIPS1 1
@@ -33,14 +54,20 @@
 
 /*
  * Subprogram calling convention
- *
- * At the moment only _MIPS_SIM_ABI32 is in use.  This will change rsn.
- * Until GCC 2.8.0 is released don't rely on this definitions because the
- * 64bit code is essentially using the 32bit interface model just with
- * 64bit registers.
  */
-#define _MIPS_SIM_ABI32		1
-#define _MIPS_SIM_NABI32	2
-#define _MIPS_SIM_ABI64		3
+#ifndef _ABIO32
+# define _ABIO32		1
+#endif
+#define _MIPS_SIM_ABI32		_ABIO32
+
+#ifndef _ABIN32
+# define _ABIN32		2
+#endif
+#define _MIPS_SIM_NABI32	_ABIN32
+
+#ifndef _ABI64
+# define _ABI64			3
+#endif
+#define _MIPS_SIM_ABI64		_ABI64
 
 #endif /* sgidefs.h */
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/sys/asm.h glibc-2.3.3-20041018/sysdeps/mips/sys/asm.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/sys/asm.h	Wed Mar 26 03:26:04 2003
+++ glibc-2.3.3-20041018/sysdeps/mips/sys/asm.h	Fri Nov  5 17:53:56 2004
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ralf Baechle <ralf@gnu.org>.
 
@@ -37,11 +37,11 @@
  * 64 bit address space isn't used yet, so we may use the R3000 32 bit
  * defines for now.
  */
-#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
 # define PTR .word
 # define PTRSIZE 4
 # define PTRLOG 2
-#elif (_MIPS_SIM == _MIPS_SIM_ABI64)
+#elif _MIPS_SIM == _ABI64
 # define PTR .dword
 # define PTRSIZE 8
 # define PTRLOG 3
@@ -50,7 +50,7 @@
 /*
  * PIC specific declarations
  */
-#if (_MIPS_SIM == _MIPS_SIM_ABI32)
+#if _MIPS_SIM == _ABIO32
 # ifdef __PIC__
 #  define CPRESTORE(register) \
 		.cprestore register
@@ -97,7 +97,7 @@ l:							\
 # define SETUP_GPX64_L(cp_reg, ra_save, l)
 # define RESTORE_GP64
 # define USE_ALT_CP(a)
-#else /* (_MIPS_SIM == _MIPS_SIM_ABI64) || (_MIPS_SIM == _MIPS_SIM_NABI32) */
+#else /* _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32 */
 /*
  * For callee-saved gp calling convention:
  */
@@ -131,15 +131,15 @@ l:							\
 /* Use alternate register for context pointer.  */
 # define USE_ALT_CP(reg)	\
 		.cplocal reg
-#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
+#endif /* _MIPS_SIM != _ABIO32 */
 
 /*
  * Stack Frame Definitions
  */
-#if (_MIPS_SIM == _MIPS_SIM_ABI32)
+#if _MIPS_SIM == _ABIO32
 # define NARGSAVE 4 /* Space for 4 argument registers must be allocated.  */
 #endif
-#if (_MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32)
+#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
 # define NARGSAVE 0 /* No caller responsibilities.  */
 #endif
 
@@ -287,7 +287,7 @@ symbol		=	value
 /*
  * Stack alignment
  */
-#if (_MIPS_SIM == _MIPS_SIM_ABI64) || (_MIPS_SIM == _MIPS_SIM_NABI32)
+#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
 # define ALSZ	15
 # define ALMASK	~15
 #else
@@ -298,7 +298,7 @@ symbol		=	value
 /*
  * Size of a register
  */
-#if (_MIPS_SIM == _MIPS_SIM_ABI64) || (_MIPS_SIM == _MIPS_SIM_NABI32)
+#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
 # define SZREG	8
 #else
 # define SZREG	4
@@ -389,7 +389,7 @@ symbol		=	value
 /*
  * How to add/sub/load/store/shift pointers.
  */
-#if (_MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32)
+#if (_MIPS_SIM == _ABIO32 && _MIPS_SZPTR == 32)
 # define PTR_ADD	add
 # define PTR_ADDI	addi
 # define PTR_ADDU	addu
@@ -411,7 +411,7 @@ symbol		=	value
 # define PTR_SCALESHIFT	2
 #endif
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
 # define PTR_ADD	add
 # define PTR_ADDI	addi
 # define PTR_ADDU	add /* no u */
@@ -433,8 +433,8 @@ symbol		=	value
 # define PTR_SCALESHIFT	2
 #endif
 
-#if (_MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 64 /* o64??? */) \
-    || _MIPS_SIM == _MIPS_SIM_ABI64
+#if (_MIPS_SIM == _ABIO32 && _MIPS_SZPTR == 64 /* o64??? */) \
+    || _MIPS_SIM == _ABI64
 # define PTR_ADD	dadd
 # define PTR_ADDI	daddi
 # define PTR_ADDU	daddu
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/sys/regdef.h glibc-2.3.3-20041018/sysdeps/mips/sys/regdef.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/sys/regdef.h	Thu Apr 10 02:26:07 2003
+++ glibc-2.3.3-20041018/sysdeps/mips/sys/regdef.h	Fri Nov  5 17:54:06 2004
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ralf Baechle <ralf@gnu.org>.
 
@@ -20,6 +20,8 @@
 #ifndef _SYS_REGDEF_H
 #define _SYS_REGDEF_H
 
+#include <sgidefs.h>
+
 /*
  * Symbolic register names for 32 bit ABI
  */
@@ -31,7 +33,7 @@
 #define a1      $5
 #define a2      $6
 #define a3      $7
-#if _MIPS_SIM != _MIPS_SIM_ABI32
+#if _MIPS_SIM != _ABIO32
 #define a4      $8
 #define a5      $9
 #define a6      $10
@@ -44,7 +46,7 @@
 #define ta1     a5
 #define ta2     a6
 #define ta3     a7
-#else /* if _MIPS_SIM == _MIPS_SIM_ABI32 */
+#else /* if _MIPS_SIM == _ABIO32 */
 #define t0      $8      /* caller saved */
 #define t1      $9
 #define t2      $10
@@ -57,7 +59,7 @@
 #define ta1     t5
 #define ta2     t6
 #define ta3     t7
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
+#endif /* _MIPS_SIM == _ABIO32 */
 #define s0      $16     /* callee saved */
 #define s1      $17
 #define s2      $18
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/mips/sys/ucontext.h glibc-2.3.3-20041018/sysdeps/mips/sys/ucontext.h
--- glibc-2.3.3-20041018.macro/sysdeps/mips/sys/ucontext.h	Tue Mar 18 03:25:56 2003
+++ glibc-2.3.3-20041018/sysdeps/mips/sys/ucontext.h	Fri Nov  5 17:54:16 2004
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2002, 2003, 2004 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 +22,11 @@
 #define _SYS_UCONTEXT_H	1
 
 #include <features.h>
+#include <sgidefs.h>
 #include <signal.h>
 
 /* Type for general register.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 typedef __uint32_t greg_t;
 #else
 typedef __uint64_t greg_t;
@@ -119,7 +120,7 @@ typedef struct fpregset
 {
   union
   {
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
     double fp_dregs[16];
     float fp_fregs[32];
     unsigned int fp_regs[32];
@@ -143,7 +144,7 @@ typedef struct
 /* Userlevel context.  */
 typedef struct ucontext
 {
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
   unsigned long int uc_flags;
 #else
   __uint64_t uc_flags;
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/mips/sysdep.h glibc-2.3.3-20041018/sysdeps/unix/mips/sysdep.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/mips/sysdep.h	Wed Sep 10 02:26:07 2003
+++ glibc-2.3.3-20041018/sysdeps/unix/mips/sysdep.h	Fri Nov  5 17:54:22 2004
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003
+/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003, 2004
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
@@ -18,6 +18,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <sgidefs.h>
 #include <sysdeps/unix/sysdep.h>
 
 #ifdef __ASSEMBLER__
@@ -69,7 +70,7 @@
 /* The mips move insn is d,s.  */
 #define MOVE(x,y)	move y , x
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_ABIO64
+#if _MIPS_SIM == _ABIO32
 # define L(label) $L ## label
 #else
 # define L(label) .L ## label
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/kernel-features.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/kernel-features.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/kernel-features.h	Sat Sep 11 01:26:41 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/kernel-features.h	Fri Nov  5 14:00:13 2004
@@ -21,6 +21,10 @@
 /* This file must not contain any C code.  At least it must be protected
    to allow using the file also in assembler files.  */
 
+#if defined __mips__
+# include <sgidefs.h>
+#endif
+
 #ifndef __LINUX_KERNEL_VERSION
 /* We assume the worst; all kernels should be supported.  */
 # define __LINUX_KERNEL_VERSION	0
@@ -277,7 +281,7 @@
 # define __ASSUME_TIMEVAL64		1
 #endif
 
-#if defined __mips__ && defined _ABIN32 && _MIPS_SIM == _ABIN32
+#if defined __mips__ && _MIPS_SIM == _ABIN32
 # define __ASSUME_FCNTL64		1
 #endif
 
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/Makefile glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/Makefile
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/Makefile	Wed Jul 21 01:26:42 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/Makefile	Fri Nov  5 14:02:47 2004
@@ -28,10 +28,10 @@ $(objpfx)syscall-%.h $(objpfx)syscall-%.
 	 sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \
 	     > $(@:.d=.h).newt; \
 	 if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \
-	   echo '#if _MIPS_SIM == _MIPS_SIM_NABI32'; \
+	   echo '#if _MIPS_SIM == _ABIN32'; \
 	   sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
 		LC_ALL=C sort; \
-	   echo '#elif _MIPS_SIM == _MIPS_SIM_ABI64'; \
+	   echo '#elif _MIPS_SIM == _ABI64'; \
 	   sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
 		LC_ALL=C sort; \
 	   echo '#else'; \
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/bits/fcntl.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/bits/fcntl.h	Tue Aug 24 01:26:38 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/bits/fcntl.h	Fri Nov  5 14:26:04 2004
@@ -22,8 +22,8 @@
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 #endif
 
-#include <sys/types.h>
 #include <sgidefs.h>
+#include <sys/types.h>
 
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
@@ -144,7 +144,7 @@ typedef struct flock
 #ifndef __USE_FILE_OFFSET64
     __off_t l_start;	/* Offset where the lock begins.  */
     __off_t l_len;	/* Size of the locked area; zero means until EOF.  */
-#if _MIPS_SIM != _MIPS_SIM_ABI64
+#if _MIPS_SIM != _ABI64
     /* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
        fcntls in o32 and n32, never has this field.  */
     long int l_sysid;
@@ -154,7 +154,7 @@ typedef struct flock
     __off64_t l_len;	/* Size of the locked area; zero means until EOF.  */
 #endif
     __pid_t l_pid;	/* Process holding the lock.  */
-#if ! defined __USE_FILE_OFFSET64 && _MIPS_SIM != _MIPS_SIM_ABI64
+#if ! defined __USE_FILE_OFFSET64 && _MIPS_SIM != _ABI64
     /* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
        flock in o32 and n32, never has this field.  */
     long int pad[4];
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h	Fri Nov  5 14:03:47 2004
@@ -34,7 +34,7 @@
    licenses, the fact that the file is pasted, instead of included,
    doesn't really make any difference for the program that includes
    this header.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 /*
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
@@ -70,7 +70,7 @@ struct sigcontext {
 };
 
 #endif /* _ASM_SIGCONTEXT_H */
-#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
+#else /* _MIPS_SIM != _ABIO32 */
 /*
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
@@ -101,5 +101,5 @@ struct sigcontext {
 };
 
 #endif /* _ASM_SIGCONTEXT_H */
-#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
+#endif /* _MIPS_SIM != _ABIO32 */
 #endif
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/bits/stat.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/bits/stat.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/bits/stat.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/bits/stat.h	Fri Nov  5 14:04:15 2004
@@ -36,7 +36,7 @@
 #define _MKNOD_VER		_MKNOD_VER_LINUX /* The bits defined below.  */
 
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 /* Structure describing file characteristics.  */
 struct stat
   {
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/configure.in glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/configure.in
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/configure.in	Wed Jul 21 01:26:42 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/configure.in	Fri Nov  5 14:09:34 2004
@@ -42,7 +42,7 @@ BEGIN { print "#include <sgidefs.h>"; }
 	name = $2;
 	sub (/_O32_/, "_", name);
 	print;
-	print "#if _MIPS_SIM == _MIPS_SIM_ABI32";
+	print "#if _MIPS_SIM == _ABIO32";
 	print "# define " name " " $2;
 	print "#endif";
 	next;
@@ -51,7 +51,7 @@ BEGIN { print "#include <sgidefs.h>"; }
 	name = $2;
 	sub (/_N32_/, "_", name);
 	print;
-	print "#if _MIPS_SIM == _MIPS_SIM_NABI32";
+	print "#if _MIPS_SIM == _ABIN32";
 	print "# define " name " " $2;
 	print "#endif";
 	next;
@@ -60,7 +60,7 @@ BEGIN { print "#include <sgidefs.h>"; }
 	name = $2;
 	sub (/_N64_/, "_", name);
 	print;
-	print "#if _MIPS_SIM == _MIPS_SIM_ABI64";
+	print "#if _MIPS_SIM == _ABI64";
 	print "# define " name " " $2;
 	print "#endif";
 	next;
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/kernel_stat.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/kernel_stat.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/kernel_stat.h	Wed Jul 21 01:26:42 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/kernel_stat.h	Fri Nov  5 14:09:58 2004
@@ -3,7 +3,7 @@
    userland data structures are not identical, because of different
    padding.  */
 /* Definition of `struct stat' used in the kernel.  */
-#if _MIPS_SIM != _MIPS_SIM_ABI32
+#if _MIPS_SIM != _ABIO32
 struct kernel_stat
   {
     unsigned int st_dev;
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pread.c glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pread.c
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pread.c	Fri Aug 27 01:26:49 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pread.c	Fri Nov  5 14:29:22 2004
@@ -20,6 +20,7 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <sgidefs.h>
 #include <unistd.h>
 #include <endian.h>
 
@@ -55,14 +56,14 @@ __libc_pread (fd, buf, count, offset)
 {
   ssize_t result;
 
-#if _MIPS_SIM != _MIPS_SIM_ABI64
+#if _MIPS_SIM != _ABI64
   assert (sizeof (offset) == 4);
 #endif
 
   if (SINGLE_THREAD_P)
     {
       /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
       result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
 			       offset);
 #else
@@ -80,7 +81,7 @@ __libc_pread (fd, buf, count, offset)
   int oldtype = LIBC_CANCEL_ASYNC ();
 
   /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
   result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
 #else
   result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pread64.c glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pread64.c
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pread64.c	Fri Aug 27 01:26:49 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pread64.c	Fri Nov  5 14:10:52 2004
@@ -19,6 +19,7 @@
    02111-1307 USA.  */
 
 #include <errno.h>
+#include <sgidefs.h>
 #include <unistd.h>
 #include <endian.h>
 
@@ -58,7 +59,7 @@ __libc_pread64 (fd, buf, count, offset)
   if (SINGLE_THREAD_P)
     {
      /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
       result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
 			       offset);
 #else
@@ -77,7 +78,7 @@ __libc_pread64 (fd, buf, count, offset)
   int oldtype = LIBC_CANCEL_ASYNC ();
 
   /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
   result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
 #else
   result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/ptrace.c glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/ptrace.c
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/ptrace.c	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/ptrace.c	Fri Nov  5 14:30:22 2004
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <errno.h>
+#include <sgidefs.h>
 #include <sys/types.h>
 #include <sys/ptrace.h>
 #include <sys/user.h>
@@ -28,7 +29,7 @@
 #include <bp-checks.h>
 #include <sgidefs.h>
 
-#if  _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
 __extension__ typedef long long int reg_type;
 #else
 typedef long int reg_type;
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pwrite.c glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pwrite.c
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pwrite.c	Fri Aug 27 01:26:49 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pwrite.c	Fri Nov  5 14:35:14 2004
@@ -20,6 +20,7 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <sgidefs.h>
 #include <unistd.h>
 #include <endian.h>
 
@@ -55,14 +56,14 @@ __libc_pwrite (fd, buf, count, offset)
 {
   ssize_t result;
 
-#if _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM != _ABI64
   assert (sizeof (offset) == 4);
 #endif
 
   if (SINGLE_THREAD_P)
     {
       /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
       result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
 			       offset);
 #else
@@ -80,7 +81,7 @@ __libc_pwrite (fd, buf, count, offset)
   int oldtype = LIBC_CANCEL_ASYNC ();
 
   /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
   result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
 #else
   result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pwrite64.c glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pwrite64.c
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/pwrite64.c	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/pwrite64.c	Fri Nov  5 14:11:41 2004
@@ -19,6 +19,7 @@
    02111-1307 USA.  */
 
 #include <errno.h>
+#include <sgidefs.h>
 #include <unistd.h>
 #include <endian.h>
 
@@ -54,7 +55,7 @@ __libc_pwrite64 (fd, buf, count, offset)
   if (SINGLE_THREAD_P)
     {
      /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
       result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
 			       offset);
 #else
@@ -74,7 +75,7 @@ __libc_pwrite64 (fd, buf, count, offset)
   int oldtype = LIBC_CANCEL_ASYNC ();
 
   /* First try the syscall.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
   result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
 #else
   result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sigaction.c glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sigaction.c
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sigaction.c	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sigaction.c	Fri Nov  5 14:00:20 2004
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <errno.h>
+#include <sgidefs.h>
 #include <signal.h>
 #include <string.h>
 
@@ -40,7 +41,7 @@ int __libc_missing_rt_sigs;
 
 #endif
 
-#if _MIPS_SIM != _MIPS_SIM_ABI32
+#if _MIPS_SIM != _ABIO32
 
 # ifdef __NR_rt_sigreturn
 static void restore_rt (void) asm ("__restore_rt");
@@ -82,7 +83,7 @@ __libc_sigaction (sig, act, oact)
 	  memcpy (&kact.sa_mask, &act->sa_mask, sizeof (kernel_sigset_t));
 	  kact.sa_flags = act->sa_flags;
 # ifdef HAVE_SA_RESTORER
-#  if _MIPS_SIM == _MIPS_SIM_ABI32
+#  if _MIPS_SIM == _ABIO32
 	  kact.sa_restorer = act->sa_restorer;
 #  else
 	  kact.sa_restorer = &restore_rt;
@@ -140,7 +141,7 @@ __libc_sigaction (sig, act, oact)
       oact->sa_mask.__val[0] = k_osigact.sa_mask;
       oact->sa_flags = k_osigact.sa_flags;
 # ifdef HAVE_SA_RESTORER
-#  if _MIPS_SIM == _MIPS_SIM_ABI32
+#  if _MIPS_SIM == _ABIO32
       oact->sa_restorer = k_osigact.sa_restorer;
 #  else
       oact->sa_restorer = &restore;
@@ -177,7 +178,7 @@ asm						\
    );
 
 /* The return code for realtime-signals.  */
-#if _MIPS_SIM != _MIPS_SIM_ABI32
+#if _MIPS_SIM != _ABIO32
 # ifdef __NR_rt_sigreturn
 RESTORE (restore_rt, __NR_rt_sigreturn)
 # endif
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h	Fri Nov  5 14:12:23 2004
@@ -20,7 +20,7 @@
 
 #include <sgidefs.h>
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 
 #define SIGCONTEXT unsigned long _code, struct sigcontext *
 #define SIGCONTEXT_EXTRA_ARGS _code,
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/procfs.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/procfs.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/procfs.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/procfs.h	Fri Nov  5 14:12:50 2004
@@ -25,6 +25,7 @@
    used on Linux.  */
 
 #include <features.h>
+#include <sgidefs.h>
 #include <sys/time.h>
 #include <sys/types.h>
 #include <sys/user.h>
@@ -34,7 +35,7 @@
 #define ELF_NGREG	45
 #define ELF_NFPREG	33
 
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
 __extension__ typedef unsigned long long elf_greg_t;
 #else
 typedef unsigned long elf_greg_t;
@@ -65,7 +66,7 @@ struct elf_prstatus
   {
     struct elf_siginfo pr_info;		/* Info associated with signal.  */
     short int pr_cursig;		/* Current signal.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
     __extension__ unsigned long long int pr_sigpend;
     __extension__ unsigned long long int pr_sighold;
 #else
@@ -93,7 +94,7 @@ struct elf_prpsinfo
     char pr_sname;			/* Char for pr_state.  */
     char pr_zomb;			/* Zombie.  */
     char pr_nice;			/* Nice val.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
     __extension__ unsigned long long int pr_flag;
 #else
     unsigned long int pr_flag;		/* Flags.  */
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/ptrace.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/ptrace.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/ptrace.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/ptrace.h	Fri Nov  5 14:13:11 2004
@@ -124,7 +124,7 @@ enum __ptrace_request
    appear (those that are used for the particular request) as:
      pid_t PID, void *ADDR, int DATA, void *ADDR2
    after REQUEST.  */
-#if _MIPS_SIM == _MIPS_SIM_NABI32
+#if _MIPS_SIM == _ABIN32
 __extension__ extern long long int ptrace
   (enum __ptrace_request __request, ...) __THROW;
 #else
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/tas.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/tas.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/tas.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/tas.h	Fri Nov  5 14:13:23 2004
@@ -21,7 +21,6 @@
 #define _SYS_TAS_H 1
 
 #include <features.h>
-
 #include <sgidefs.h>
 
 __BEGIN_DECLS
@@ -43,7 +42,7 @@ _test_and_set (int *p, int v) __THROW
     ("/* Inline test and set */\n"
      "1:\n\t"
      ".set	push\n\t"
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
      ".set	mips2\n\t"
 #endif
      "ll	%0,%3\n\t"
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/ucontext.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/ucontext.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/ucontext.h	Fri Nov  5 14:13:58 2004
@@ -22,14 +22,13 @@
 #define _SYS_UCONTEXT_H	1
 
 #include <features.h>
+#include <sgidefs.h>
 #include <signal.h>
 
 /* We need the signal context definitions even if they are not used
    included in <signal.h>.  */
 #include <bits/sigcontext.h>
 
-#include <sgidefs.h>
-
 /* Type for general register.  Even in o32 we assume 64-bit registers,
    like the kernel.  */
 __extension__ typedef unsigned long long int greg_t;
@@ -54,7 +53,7 @@ typedef struct fpregset {
 
 
 /* Context to describe whole processor state.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 /* Earlier versions of glibc for mips had an entirely different
    definition of mcontext_t, that didn't even resemble the
    corresponding kernel data structure.  Since all legitimate uses of
diff -up --recursive --new-file glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/user.h glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/user.h
--- glibc-2.3.3-20041018.macro/sysdeps/unix/sysv/linux/mips/sys/user.h	Wed Jul 21 01:26:43 2004
+++ glibc-2.3.3-20041018/sysdeps/unix/sysv/linux/mips/sys/user.h	Fri Nov  5 14:14:08 2004
@@ -32,7 +32,7 @@
    instead of included separately, doesn't change in any way the
    licensing status of a program that includes user.h.  Since this is
    for gdb alone, and gdb is GPLed, no surprises here.  */
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 /*
  * Various register offset definitions for debuggers, core file
  * examiners and whatnot.
@@ -100,7 +100,7 @@
 
 #endif /* __ASM_MIPS_REG_H */
 
-#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
+#else /* _MIPS_SIM != _ABIO32 */
 
 /*
  * Various register offset definitions for debuggers, core file
@@ -170,9 +170,9 @@
 
 #endif /* _ASM_REG_H */
 
-#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
+#endif /* _MIPS_SIM != _ABIO32 */
 
-#if _MIPS_SIM == _MIPS_SIM_ABI32
+#if _MIPS_SIM == _ABIO32
 
 struct user
 {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]