diff options
-rw-r--r-- | ChangeLog | 20 | ||||
-rw-r--r-- | linuxthreads/signals.c | 2 | ||||
-rw-r--r-- | sysdeps/generic/sigcontextinfo.h | 3 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/sigcontextinfo.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/sigcontextinfo.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sigcontextinfo.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h | 1 |
11 files changed, 36 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog index bbe67a7ea9..fa15516f48 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +1999-08-23 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/unix/sysv/linux/mips/bits/errno.h: New file. Neccessary + since mips*-linux has ECANCELED. + +1999-08-23 Andreas Schwab <schwab@suse.de> + + * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Define + SIGCONTEXT_EXTRA_ARGS. + * sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise. + * sysdeps/generic/sigcontextinfo.h: Likewise. + * sysdeps/mach/hurd/i386/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: + Likewise. + 1999-08-23 Ulrich Drepper <drepper@cygnus.com> * posix/regexbug1.c: Make it an error if the test fails. diff --git a/linuxthreads/signals.c b/linuxthreads/signals.c index 8afb6738e6..1293ce54a6 100644 --- a/linuxthreads/signals.c +++ b/linuxthreads/signals.c @@ -88,7 +88,7 @@ static void pthread_sighandler(int signo, SIGCONTEXT ctx) in_sighandler = THREAD_GETMEM(self, p_in_sighandler); if (in_sighandler == NULL) THREAD_SETMEM(self, p_in_sighandler, CURRENT_STACK_FRAME); - sighandler[signo](signo, ctx); + sighandler[signo](signo, SIGCONTEXT_EXTRA_ARGS ctx); if (in_sighandler == NULL) THREAD_SETMEM(self, p_in_sighandler, NULL); } diff --git a/sysdeps/generic/sigcontextinfo.h b/sysdeps/generic/sigcontextinfo.h index 9623599698..a33aadfed1 100644 --- a/sysdeps/generic/sigcontextinfo.h +++ b/sysdeps/generic/sigcontextinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -19,6 +19,7 @@ /* In general we cannot provide any information. */ #define SIGCONTEXT struct sigcontext * +#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(ctx) ((void *) 0) #define GET_FRAME(ctx) ((void *) 0) #define GET_STACK(ctx) ((void *) 0) diff --git a/sysdeps/mach/hurd/i386/sigcontextinfo.h b/sysdeps/mach/hurd/i386/sigcontextinfo.h index 6dd80f25ea..008be70706 100644 --- a/sysdeps/mach/hurd/i386/sigcontextinfo.h +++ b/sysdeps/mach/hurd/i386/sigcontextinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 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 @@ -17,6 +17,7 @@ Boston, MA 02111-1307, USA. */ #define SIGCONTEXT struct sigcontext +#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(ctx) ((void *) (ctx).sc_eip) #define GET_FRAME(ctx) ((void *) (ctx).sc_ebp) #define GET_STACK(ctx) ((void *) (ctx).sc_uesp) diff --git a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h index 3125e9ba9b..19c35a4624 100644 --- a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h @@ -17,6 +17,7 @@ Boston, MA 02111-1307, USA. */ #define SIGCONTEXT struct sigcontext +#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(ctx) ((void *) (ctx).sc_pc) #define GET_FRAME(ctx) ((void *) (ctx).sc_regs[15]) #define GET_STACK(ctx) ((void *) (ctx).sc_regs[30]) diff --git a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h index d92c9fadf1..51788e0e51 100644 --- a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h @@ -18,6 +18,7 @@ Boston, MA 02111-1307, USA. */ #define SIGCONTEXT int _a2, int _a3, int _a4, union k_sigcontext +#define SIGCONTEXT_EXTRA_ARGS _a2, _a3, _a4, #define GET_PC(ctx) ((void *)((ctx.v20.magic == SIGCONTEXT_2_0_MAGIC) ? \ ctx.v20.reg.ARM_pc : ctx.v21.arm_pc)) diff --git a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h index 6560b9441e..42c18b22bb 100644 --- a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. @@ -18,6 +18,7 @@ Boston, MA 02111-1307, USA. */ #define SIGCONTEXT struct sigcontext +#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(ctx) ((void *) ctx.eip) #define GET_FRAME(ctx) ((void *) ctx.ebp) #define GET_STACK(ctx) ((void *) ctx.esp_at_signal) diff --git a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h index bdef810a23..86bf934c51 100644 --- a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>, 1998. @@ -17,7 +17,8 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#define SIGCONTEXT int code, struct sigcontext * +#define SIGCONTEXT int _code, struct sigcontext * +#define SIGCONTEXT_EXTRA_ARGS _code, #define GET_PC(ctx) ((void *) (ctx)->sc_pc) #define GET_FRAME(ctx) ((void *) __builtin_frame_address (1)) #define GET_STACK(ctx) ((void *) (ctx)->sc_usp) diff --git a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h index 33a3c817d7..644a0c259b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 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 @@ #include <signal.h> #define SIGCONTEXT struct sigcontext * +#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(ctx) ((void *)((ctx)->regs->nip)) #define GET_FRAME(ctx) (*(void **)((ctx)->regs->gpr[1])) #define GET_STACK(ctx) ((void *)((ctx)->regs->gpr[1])) diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h index 24629d3a07..4e8fcd7871 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h @@ -18,6 +18,7 @@ Boston, MA 02111-1307, USA. */ #define SIGCONTEXT __siginfo_t * +#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(__ctx) ((void *) ((__ctx)->si_regs.pc)) #define ADVANCE_STACK_FRAME(__next) \ ((void *)&(((struct reg_window *) (__next))->ins[6])) diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h index 8430dbcbe1..40e365df4b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h @@ -33,6 +33,7 @@ struct __rt_signal_frame { #define STACK_BIAS 2047 #endif #define SIGCONTEXT struct __rt_signal_frame * +#define SIGCONTEXT_EXTRA_ARGS #define GET_PC(__ctx) ((void *) ((__ctx)->sf_regs.tpc)) #define ADVANCE_STACK_FRAME(__next) \ ((void *) &((struct reg_window *) (((unsigned long int) (__next)) \ |