diff options
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/Dist | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/bits/sigaction.h | 29 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/fpregdef.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/regdef.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/sgidefs.h | 28 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/sys/asm.h | 28 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/sys/regdef.h | 29 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/syscalls.list | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/sysdep.S (renamed from sysdeps/unix/sysv/linux/mips/sys/fpregdef.h) | 25 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c | 2 |
11 files changed, 46 insertions, 113 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/Dist b/sysdeps/unix/sysv/linux/mips/Dist index 5f0429b282..576aef8046 100644 --- a/sysdeps/unix/sysv/linux/mips/Dist +++ b/sysdeps/unix/sysv/linux/mips/Dist @@ -3,14 +3,8 @@ kernel_sigaction.h kernel_stat.h kernel_termios.h entry.h -regdef.h -fpregdef.h -sgidefs.h xstatconv.c sys/acct.h -sys/asm.h sys/cachectl.h -sys/fpregdef.h sys/procfs.h -sys/regdef.h sys/sysmips.h diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile index 5d3e280d7c..41451ca7d1 100644 --- a/sysdeps/unix/sysv/linux/mips/Makefile +++ b/sysdeps/unix/sysv/linux/mips/Makefile @@ -7,6 +7,5 @@ endif ifeq ($(subdir),misc) sysdep_routines += cachectl cacheflush sysmips -headers += regdef.h fpregdef.h sys/asm.h sys/cachectl.h sys/fpregdef.h \ - sys/regdef.h sys/sysmips.h +headers += sys/cachectl.h sys/sysmips.h endif diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h index 435f8e00f6..855fe287d4 100644 --- a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h +++ b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h @@ -28,8 +28,20 @@ struct sigaction unsigned int sa_flags; /* Signal handler. */ +#ifdef __USE_POSIX199309 + union + { + /* Used if SA_SIGINFO is not set. */ + __sighandler_t sa_handler; + /* Used if SA_SIGINFO is set. */ + void (*sa_sigaction) __PMT ((int, siginfo_t *, void *)); + } + __sigaction_handler; +# define sa_handler __sigaction_handler.sa_handler +# define sa_sigaction __sigaction_handler.sa_sigaction +#else __sighandler_t sa_handler; - +#endif /* Additional set of signals to be blocked. */ __sigset_t sa_mask; @@ -43,14 +55,17 @@ struct sigaction }; /* Bits in `sa_flags'. */ -#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */ -#ifdef __USE_MISC +#define SA_NOCLDSTOP 0x00020000 /* Don't send SIGCHLD when children stop. */ +#define SA_SIGINFO 0x00000008 /* Invoke signal-catching function with + three arguments instead of one. */ +#if defined __USE_UNIX98 || defined __USE_MISC # define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */ # define SA_RESTART 0x00000004 /* Restart syscall on signal return. */ -# define SA_INTERRUPT 0x00000000 /* Historical no-op. */ # define SA_NODEFER 0x00000010 /* Don't automatically block the signal when its handler is being executed. */ -# define SA_RESETHAND 0x00000002 /* Reset to SIG_DFL on entry to handler. */ +#endif +#ifdef __USE_MISC +# define SA_INTERRUPT 0x01000000 /* Historical no-op. */ /* Some aliases for the SA_ constants. */ # define SA_NOMASK SA_NODEFER @@ -63,5 +78,7 @@ struct sigaction #define SIG_BLOCK 1 /* Block signals. */ #define SIG_UNBLOCK 2 /* Unblock signals. */ #define SIG_SETMASK 3 /* Set the set of blocked signals. */ -#define SIG_SETMASK32 256 /* Goodie from SGI for BSD compatibility: +#ifdef __USE_MISC +# define SIG_SETMASK32 256 /* Goodie from SGI for BSD compatibility: set only the low 32 bit of the sigset. */ +#endif diff --git a/sysdeps/unix/sysv/linux/mips/fpregdef.h b/sysdeps/unix/sysv/linux/mips/fpregdef.h deleted file mode 100644 index a963d5f588..0000000000 --- a/sysdeps/unix/sysv/linux/mips/fpregdef.h +++ /dev/null @@ -1 +0,0 @@ -#include <sys/fpregdef.h> diff --git a/sysdeps/unix/sysv/linux/mips/regdef.h b/sysdeps/unix/sysv/linux/mips/regdef.h deleted file mode 100644 index b613c8b250..0000000000 --- a/sysdeps/unix/sysv/linux/mips/regdef.h +++ /dev/null @@ -1 +0,0 @@ -#include <sys/regdef.h> diff --git a/sysdeps/unix/sysv/linux/mips/sgidefs.h b/sysdeps/unix/sysv/linux/mips/sgidefs.h deleted file mode 100644 index a36ece0175..0000000000 --- a/sysdeps/unix/sysv/linux/mips/sgidefs.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SGIDEFS_H -#define _SGIDEFS_H 1 - -/* - * The real definitions come from the Linux kernel sources - */ -#include <asm/sgidefs.h> - -#endif /* sgidefs.h */ diff --git a/sysdeps/unix/sysv/linux/mips/sys/asm.h b/sysdeps/unix/sysv/linux/mips/sys/asm.h deleted file mode 100644 index 346a9c4ec2..0000000000 --- a/sysdeps/unix/sysv/linux/mips/sys/asm.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SYS_ASM_H -#define _SYS_ASM_H - -/* - * The real definitions come from the Linux kernel sources - */ -#include <asm/asm.h> - -#endif /* sys/asm.h */ diff --git a/sysdeps/unix/sysv/linux/mips/sys/regdef.h b/sysdeps/unix/sysv/linux/mips/sys/regdef.h deleted file mode 100644 index 700fd66f0b..0000000000 --- a/sysdeps/unix/sysv/linux/mips/sys/regdef.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _REGDEF_H -#define _REGDEF_H 1 - -/* - * The real definitions come from the Linux kernel sources - */ -#include <asm/regdef.h> -#include <asm/fpregdef.h> - -#endif /* regdef.h */ diff --git a/sysdeps/unix/sysv/linux/mips/syscalls.list b/sysdeps/unix/sysv/linux/mips/syscalls.list index dd29d159aa..434be84898 100644 --- a/sysdeps/unix/sysv/linux/mips/syscalls.list +++ b/sysdeps/unix/sysv/linux/mips/syscalls.list @@ -37,7 +37,7 @@ socketpair - socketpair 4 __socketpair socketpair # # There are defined locally because the caller is also defined in this dir. # -s_llseek llseek _llseek 5 __sys_llseek +s_llseek llseek _llseek 5 __syscall_llseek s_sigaction sigaction sigaction 3 __syscall_sigaction s_ustat ustat ustat 2 __syscall_ustat sys_mknod xmknod mknod 3 __syscall_mknod @@ -57,10 +57,11 @@ s_getdents getdents getdents 3 __syscall_getdents s_getpriority getpriority getpriority 2 __syscall_getpriority s_getresgid getresgid getresgid 3 __syscall_getresgid s_getresuid getresuid getresuid 3 __syscall_getresuid +s_ipc msgget ipc 5 __syscall_ipc s_poll poll poll 3 __syscall_poll -s_pread pread pread 6 __syscall_pread +s_pread64 pread64 pread 6 __syscall_pread s_ptrace ptrace ptrace 4 __syscall_ptrace -s_pwrite pwrite pwrite 6 __syscall_pwrite +s_pwrite64 pwrite64 pwrite 6 __syscall_pwrite s_reboot reboot reboot 3 __syscall_reboot s_sigpending sigpending sigpending 1 __syscall_sigpending s_sigprocmask sigprocmask sigprocmask 3 __syscall_sigprocmask diff --git a/sysdeps/unix/sysv/linux/mips/sys/fpregdef.h b/sysdeps/unix/sysv/linux/mips/sysdep.S index 48d8f7513e..c7bc193a40 100644 --- a/sysdeps/unix/sysv/linux/mips/sys/fpregdef.h +++ b/sysdeps/unix/sysv/linux/mips/sysdep.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc. +/* Copyright (C) 1998 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,12 +16,21 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef _SYS_FPREGDEF_H -#define _SYS_FPREGDEF_H +#include <sysdep.h> -/* - * The real definitions come from the Linux kernel sources - */ -#include <asm/fpregdef.h> +/* Because the Linux version is in fact MIPS/ELF and the start.? file + for this system (sysdeps/mips/elf/start.S) is also used by The Hurd + and therefore this files must not contain the definition of the + `errno' variable (I don't know why, ask Roland), we have to define + it somewhere else. -#endif /* sys/fpregdef.h */ + ...and this place is here. */ + .bss + .globl errno + .type errno,@object + .size errno,4 +errno: .word 4 + .text +weak_alias(errno, _errno) + +#include <sysdeps/unix/mips/sysdep.S> diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c index 7e5acc83cb..4419953d06 100644 --- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c +++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c @@ -34,7 +34,7 @@ ++_tmp; \ \ _test = (size_t)_tmp; \ - _test = _test + 0xf & ~0xf; \ + _test = (_test + 0xf) & ~0xf; \ /* Under some circumstances, MkLinux (up to at least DR3a5) \ omits the padding. To work around this, we make a \ basic sanity check of the argument vector. Of \ |