Skip to content

Commit

Permalink
UPdate.
Browse files Browse the repository at this point in the history
	* sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
	Sort by syscalls.  Make sure we get headers such as sgidefs.h from
	the build tree before just-installed ones.

	* sysdeps/mips/atomicity.h, sysdeps/mips/dl-machine.h,
	sysdeps/mips/machine-gmon.h, sysdeps/mips/bits/setjmp.h,
	sysdeps/mips/fpu/bits/mathdef.h,
	sysdeps/mips/mips64/__longjmp.c,
	sysdeps/mips/mips64/setjmp_aux.c,
	sysdeps/unix/sysv/linux/mips/kernel_stat.h,
	sysdeps/unix/sysv/linux/mips/pread.c,
	sysdeps/unix/sysv/linux/mips/pread64.c,
	sysdeps/unix/sysv/linux/mips/ptrace.c,
	sysdeps/unix/sysv/linux/mips/pwrite.c,
	sysdeps/unix/sysv/linux/mips/pwrite64.c,
	sysdeps/unix/sysv/linux/mips/sigaction.c,
	sysdeps/unix/sysv/linux/mips/sigcontextinfo.h,
	sysdeps/unix/sysv/linux/mips/bits/fcntl.h,
	sysdeps/unix/sysv/linux/mips/bits/sigcontext.h,
	sysdeps/unix/sysv/linux/mips/bits/stat.h,
	sysdeps/unix/sysv/linux/mips/sys/procfs.h,
	sysdeps/unix/sysv/linux/mips/sys/ptrace.h,
	sysdeps/unix/sysv/linux/mips/sys/tas.h,
	sysdeps/unix/sysv/linux/mips/sys/ucontext.h,
	sysdeps/unix/sysv/linux/mips/sys/user.h: Use standard names
	for ABI macros, include sgidefs.h where appropriate.
	sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
	Likewise.
	sysdeps/unix/sysv/linux/mips/configure.in (asm-unistd.h):
	Likewise.
	sysdeps/unix/sysv/linux/mips/configure: Rebuilt.
  • Loading branch information
ajaeger committed Jul 20, 2004
1 parent 1346854 commit 918f187
Show file tree
Hide file tree
Showing 30 changed files with 141 additions and 60 deletions.
32 changes: 32 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
2004-07-20 Alexandre Oliva <aoliva@redhat.com>

* sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
Sort by syscalls. Make sure we get headers such as sgidefs.h from
the build tree before just-installed ones.

* sysdeps/mips/atomicity.h, sysdeps/mips/dl-machine.h,
sysdeps/mips/machine-gmon.h, sysdeps/mips/bits/setjmp.h,
sysdeps/mips/fpu/bits/mathdef.h,
sysdeps/mips/mips64/__longjmp.c,
sysdeps/mips/mips64/setjmp_aux.c,
sysdeps/unix/sysv/linux/mips/kernel_stat.h,
sysdeps/unix/sysv/linux/mips/pread.c,
sysdeps/unix/sysv/linux/mips/pread64.c,
sysdeps/unix/sysv/linux/mips/ptrace.c,
sysdeps/unix/sysv/linux/mips/pwrite.c,
sysdeps/unix/sysv/linux/mips/pwrite64.c,
sysdeps/unix/sysv/linux/mips/sigaction.c,
sysdeps/unix/sysv/linux/mips/sigcontextinfo.h,
sysdeps/unix/sysv/linux/mips/bits/fcntl.h,
sysdeps/unix/sysv/linux/mips/bits/sigcontext.h,
sysdeps/unix/sysv/linux/mips/bits/stat.h,
sysdeps/unix/sysv/linux/mips/sys/procfs.h,
sysdeps/unix/sysv/linux/mips/sys/ptrace.h,
sysdeps/unix/sysv/linux/mips/sys/tas.h,
sysdeps/unix/sysv/linux/mips/sys/ucontext.h,
sysdeps/unix/sysv/linux/mips/sys/user.h: Use standard names
for ABI macros, include sgidefs.h where appropriate.
sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
Likewise.
sysdeps/unix/sysv/linux/mips/configure.in (asm-unistd.h):
Likewise.
sysdeps/unix/sysv/linux/mips/configure: Rebuilt.

* sysdeps/mips/dl-machine.h (__dl_runtime_resolve): Update to use
_dl_lookup_symbol_x.
(elf_machine_runtime_link_map): Don't INTUSE _dl_signal_error.
Expand Down
5 changes: 5 additions & 0 deletions linuxthreads/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2004-07-20 Alexandre Oliva <aoliva@redhat.com>

* sysdeps/mips/atomicity.h, sysdeps/mips/pt-machine.h: Use
standard names for ABI macros, include sgidefs.h where appropriate.

2004-07-19 Alexandre Oliva <aoliva@redhat.com>

* sysdeps/unix/sysv/linux/mips/Makefile (CFLAGS-pt-initfini.s):
Expand Down
4 changes: 3 additions & 1 deletion linuxthreads/sysdeps/mips/pspinlock.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* POSIX spinlock implementation. MIPS version.
Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 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
Expand All @@ -22,6 +22,8 @@
#include <sys/tas.h>
#include "internals.h"

#include <sgidefs.h>

/* This implementation is similar to the one used in the Linux kernel. */
int
__pthread_spin_lock (pthread_spinlock_t *lock)
Expand Down
8 changes: 5 additions & 3 deletions linuxthreads/sysdeps/mips/pt-machine.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
Copyright (C) 1996, 1997, 1998, 2000, 2002, 2003
Copyright (C) 1996, 1997, 1998, 2000, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ralf Baechle <ralf@gnu.org>.
Expand All @@ -26,6 +26,8 @@

#include <sys/tas.h>

#include <sgidefs.h>

#ifndef PT_EI
# define PT_EI extern inline __attribute__ ((always_inline))
#endif
Expand Down Expand Up @@ -64,15 +66,15 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
#if _MIPS_SIM == _MIPS_SIM_ABI32
".set mips2\n\t"
#endif
#if defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _MIPS_SIM_ABI64
"lld %1,%5\n\t"
#else
"ll %1,%5\n\t"
#endif
"move %0,$0\n\t"
"bne %1,%3,2f\n\t"
"move %0,%4\n\t"
#if defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _MIPS_SIM_ABI64
"scd %0,%2\n\t"
#else
"sc %0,%2\n\t"
Expand Down
7 changes: 4 additions & 3 deletions sysdeps/mips/atomicity.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. Mips version.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 2001, 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
Expand All @@ -21,6 +21,7 @@
#define _MIPS_ATOMICITY_H 1

#include <inttypes.h>
#include <sgidefs.h>

static inline int
__attribute__ ((unused))
Expand Down Expand Up @@ -85,15 +86,15 @@ compare_and_swap (volatile long int *p, long int oldval, long int newval)
#if _MIPS_SIM == _MIPS_SIM_ABI32
".set mips2\n\t"
#endif
#if defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _MIPS_SIM_ABI64
"lld %1,%5\n\t"
#else
"ll %1,%5\n\t"
#endif
"move %0,$0\n\t"
"bne %1,%3,2f\n\t"
"move %0,%4\n\t"
#if defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _MIPS_SIM_ABI64
"scd %0,%2\n\t"
#else
"sc %0,%2\n\t"
Expand Down
6 changes: 4 additions & 2 deletions sysdeps/mips/bits/setjmp.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Define the machine-dependent type `jmp_buf'. MIPS version.
Copyright (C) 1992, 1993, 1995, 1997, 2000, 2002, 2003
Copyright (C) 1992, 1993, 1995, 1997, 2000, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Expand All @@ -22,6 +22,8 @@
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
#endif

#include <sgidefs.h>

typedef struct
{
#if _MIPS_SIM == _MIPS_SIM_ABI32
Expand Down Expand Up @@ -60,7 +62,7 @@ typedef struct
int __fpc_csr;

/* Callee-saved floating point registers. */
#if defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _MIPS_SIM_ABI64
double __fpregs[8];
#else
double __fpregs[6];
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/mips/dl-machine.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _MIPS_SIM_ABI64
# define ELF_MIPS_GNU_GOT1_MASK 0x8000000000000000L
#else
# define ELF_MIPS_GNU_GOT1_MASK 0x80000000L
Expand Down
2 changes: 2 additions & 0 deletions sysdeps/mips/fpu/bits/mathdef.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
#endif

#include <sgidefs.h>

#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
# define _MATH_H_MATHDEF 1

Expand Down
8 changes: 5 additions & 3 deletions sysdeps/mips/machine-gmon.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. MIPS
Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003
Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Expand All @@ -18,6 +18,8 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */

#include <sgidefs.h>

#define _MCOUNT_DECL(frompc,selfpc) \
static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)

Expand Down Expand Up @@ -81,10 +83,10 @@ static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)
# define CPRETURN
#endif

#if defined _ABIN32 && _MIPS_SIM == _ABIN32
#if _MIPS_SIM == _MIPS_SIM_NABI32
# define PTR_ADDU_STRING "add" /* no u */
# define PTR_SUBU_STRING "sub" /* no u */
#elif defined _ABI64 && _MIPS_SIM == _ABI64
#elif _MIPS_SIM == _MIPS_SIM_ABI64
# define PTR_ADDU_STRING "daddu"
# define PTR_SUBU_STRING "dsubu"
#else
Expand Down
5 changes: 3 additions & 2 deletions sysdeps/mips/mips64/__longjmp.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/* Copyright (C) 1992, 1995, 1997, 2000, 2003 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1995, 1997, 2000, 2003, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
Expand Down Expand Up @@ -38,7 +39,7 @@ __longjmp (env, val_arg)
register int val asm ("a1");

/* Pull back the floating point callee-saved registers. */
#if defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _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]));
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/mips/mips64/setjmp_aux.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 2003 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
Expand Down Expand Up @@ -29,7 +29,7 @@ __sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp,
long long gp)
{
/* Store the floating point callee-saved registers... */
#if defined _ABI64 && _MIPS_SIM == _ABI64
#if _MIPS_SIM == _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]));
Expand Down
19 changes: 12 additions & 7 deletions sysdeps/unix/sysv/linux/mips/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,25 @@ $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/s
echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
echo '#endif'; \
echo ''; \
echo '#include <sgidefs.h>'; \
rm -f $(@:.d=.h).newt; \
$(CC) -E -MD -MP -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' \
-x c -I $(common-objdir) $(sysincludes) $< -D_LIBC -dM | \
-x c $(+includes) $(sysincludes) $< -D_LIBC -dM | \
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 defined _ABI64 && _MIPS_SIM == _ABI64'; \
sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt; \
echo '#elif defined _ABIN32 && _MIPS_SIM == _ABIN32'; \
sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt; \
echo '#if _MIPS_SIM == _MIPS_SIM_NABI32'; \
sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
LC_ALL=C sort; \
echo '#elif _MIPS_SIM == _MIPS_SIM_ABI64'; \
sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
LC_ALL=C sort; \
echo '#else'; \
sed -n 's/^\(#define SYS_\)O32_/\1/p' < $(@:.d=.h).newt; \
sed -n 's/^\(#define SYS_\)O32_/\1/p' < $(@:.d=.h).newt | \
LC_ALL=C sort; \
echo '#endif'; \
sed -n '/^#define SYS_\([ON]32\|N64\)_/p' < $(@:.d=.h).newt; \
sed -n '/^#define SYS_\([ON]32\|N64\)_/p' < $(@:.d=.h).newt | \
LC_ALL=C sort +1.8; \
else \
cat $(@:.d=.h).newt; \
fi; \
Expand Down
6 changes: 3 additions & 3 deletions sysdeps/unix/sysv/linux/mips/bits/fcntl.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#endif

#include <sys/types.h>

#include <sgidefs.h>

/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
located on an ext2 file system */
Expand Down Expand Up @@ -143,7 +143,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 ! (defined _ABI64 && _MIPS_SIM == _ABI64)
#if _MIPS_SIM != _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;
Expand All @@ -153,7 +153,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 && ! (defined _ABI64 && _MIPS_SIM == _ABI64)
#if ! defined __USE_FILE_OFFSET64 && _MIPS_SIM != _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];
Expand Down
4 changes: 3 additions & 1 deletion sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
Original file line number Diff line number Diff line change
@@ -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.
The GNU C Library is free software; you can redistribute it and/or
Expand All @@ -20,6 +20,8 @@
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif

#include <sgidefs.h>

#ifndef sigcontext_struct
/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
we need sigcontext. */
Expand Down
4 changes: 3 additions & 1 deletion sysdeps/unix/sysv/linux/mips/bits/stat.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003
/* Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Expand All @@ -21,6 +21,8 @@
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
#endif

#include <sgidefs.h>

/* Versions of the `struct stat' data structure. */
#define _STAT_VER_LINUX_OLD 1
#define _STAT_VER_KERNEL 1
Expand Down
5 changes: 3 additions & 2 deletions sysdeps/unix/sysv/linux/mips/configure
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ echo "$as_me: WARNING: *** asm/unistd.h not found, it will not be pre-processed"
-e 's,__NR_N64_N32_,__NR_N32_,g' \
-e 's,__NR_N64_N64_,__NR_N64_,g' \
| awk > asm-unistd.h '
BEGIN { print "#include <sgidefs.h>"; }
/^#define __NR.*unused/ { print; next; }
/^#define __NR_N64__exit __NR_N64_exit/ {
print "#define __NR__exit __NR_exit";
Expand All @@ -50,7 +51,7 @@ echo "$as_me: WARNING: *** asm/unistd.h not found, it will not be pre-processed"
name = $2;
sub (/_N32_/, "_", name);
print;
print "#if defined _ABIN32 && _MIPS_SIM == _ABIN32";
print "#if _MIPS_SIM == _MIPS_SIM_NABI32";
print "# define " name " " $2;
print "#endif";
next;
Expand All @@ -59,7 +60,7 @@ echo "$as_me: WARNING: *** asm/unistd.h not found, it will not be pre-processed"
name = $2;
sub (/_N64_/, "_", name);
print;
print "#if defined _ABI64 && _MIPS_SIM == _ABI64";
print "#if _MIPS_SIM == _MIPS_SIM_ABI64";
print "# define " name " " $2;
print "#endif";
next;
Expand Down
5 changes: 3 additions & 2 deletions sysdeps/unix/sysv/linux/mips/configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ mips*64*)
-e 's,__NR_N64_N32_,__NR_N32_,g' \
-e 's,__NR_N64_N64_,__NR_N64_,g' \
| awk > asm-unistd.h '
BEGIN { print "#include <sgidefs.h>"; }
/^#define __NR.*unused/ { print; next; }
/^#define __NR_N64__exit __NR_N64_exit/ {
print "#define __NR__exit __NR_exit";
Expand All @@ -50,7 +51,7 @@ mips*64*)
name = $2;
sub (/_N32_/, "_", name);
print;
print "#if defined _ABIN32 && _MIPS_SIM == _ABIN32";
print "#if _MIPS_SIM == _MIPS_SIM_NABI32";
print "# define " name " " $2;
print "#endif";
next;
Expand All @@ -59,7 +60,7 @@ mips*64*)
name = $2;
sub (/_N64_/, "_", name);
print;
print "#if defined _ABI64 && _MIPS_SIM == _ABI64";
print "#if _MIPS_SIM == _MIPS_SIM_ABI64";
print "# define " name " " $2;
print "#endif";
next;
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/mips/kernel_stat.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include <sgidefs.h>
/* As tempting as it is to define XSTAT_IS_XSTAT64 for n64, the
userland data structures are not identical, because of different
padding. */
Expand Down
Loading

0 comments on commit 918f187

Please sign in to comment.