diff --git a/ChangeLog b/ChangeLog index 214b7a2a4f..f52f98a129 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2002-01-02 Roland McGrath + + * sysdeps/powerpc/elf/libc-start.c: Make AUXVEC diddling code + conditional on [HAVE_AUX_VECTOR]. + + * mach/mach/mach_traps.h (thread_switch, __thread_switch): Use + mach_msg_timeout_t as type of final argument. + + * hurd/privports.c (__get_privileged_ports): + Change host_priv_t to mach_port_t in argument type. + * hurd/hurd.h (get_privileged_ports, __get_privileged_ports): + Update decls. + + * sysdeps/mach/hurd/i386/bits/sigcontext.h: Protect from + multiple inclusion. Inhibit #error under [_SYS_UCONTEXT_H]. + * sysdeps/mach/hurd/alpha/bits/sigcontext.h: Likewise. + * sysdeps/mach/hurd/hppa/bits/sigcontext.h: Likewise. + * sysdeps/mach/hurd/mips/bits/sigcontext.h: Likewise. + * sysdeps/mach/hurd/powerpc/bits/sigcontext.h: Likewise. + 2002-01-01 Roland McGrath * sysdeps/mach/hurd/errnos.awk: Tighten up device_types.h matching. diff --git a/hurd/hurd.h b/hurd/hurd.h index 44c0b99184..0dc9f2158b 100644 --- a/hurd/hurd.h +++ b/hurd/hurd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,94,95,96,97,98,99,2001 Free Software Foundation, Inc. +/* Copyright (C) 1993,94,95,96,97,98,99,2001,02 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 @@ -299,9 +299,9 @@ extern error_t hurd_sig_post (pid_t pid, int sig, mach_port_t refport); other than the proc server (such as a bootstrap filesystem) can set these variables to install the ports. */ -extern kern_return_t __get_privileged_ports (host_priv_t *host_priv_ptr, +extern kern_return_t __get_privileged_ports (mach_port_t *host_priv_ptr, device_t *device_master_ptr); -extern kern_return_t get_privileged_ports (host_priv_t *host_priv_ptr, +extern kern_return_t get_privileged_ports (mach_port_t *host_priv_ptr, device_t *device_master_ptr); extern mach_port_t _hurd_host_priv, _hurd_device_master; diff --git a/hurd/privports.c b/hurd/privports.c index 5d3232b214..707fca7517 100644 --- a/hurd/privports.c +++ b/hurd/privports.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,94,97,2001 Free Software Foundation, Inc. +/* Copyright (C) 1993,94,97,2001,02 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 @@ -25,7 +25,7 @@ mach_port_t _hurd_host_priv, _hurd_device_master; kern_return_t -__get_privileged_ports (host_priv_t *host_priv_ptr, +__get_privileged_ports (mach_port_t *host_priv_ptr, device_t *device_master_ptr) { if ((host_priv_ptr && _hurd_host_priv == MACH_PORT_NULL) diff --git a/mach/mach/mach_traps.h b/mach/mach/mach_traps.h index 5a702a458e..2d97baa88f 100644 --- a/mach/mach/mach_traps.h +++ b/mach/mach/mach_traps.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1994,96,97,2002 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 @@ -26,6 +26,7 @@ #define _MACH_MACH_TRAPS_H_ 1 #include +#include /* mach_msg_timeout_t */ #include /* Create and return a new receive right. */ @@ -64,8 +65,10 @@ extern boolean_t __swtch_pri (int priority); milliseconds. If OPTION is SWITCH_OPTION_DEPRESS, then block for TIME milliseconds and depress the thread's priority as done by swtch_pri. If OPTION is SWITCH_OPTION_NONE, ignore TIME. */ -kern_return_t thread_switch (mach_port_t new_thread, int option, int time); -kern_return_t __thread_switch (mach_port_t new_thread, int option, int time); +kern_return_t thread_switch (mach_port_t new_thread, + int option, mach_msg_timeout_t option_time); +kern_return_t __thread_switch (mach_port_t new_thread, + int option, mach_msg_timeout_t option_time); /* Block the current thread until the kernel (or device) event identified by EVENT occurs. */ diff --git a/sysdeps/mach/hurd/alpha/bits/sigcontext.h b/sysdeps/mach/hurd/alpha/bits/sigcontext.h index 158db61876..4f13a2c9b2 100644 --- a/sysdeps/mach/hurd/alpha/bits/sigcontext.h +++ b/sysdeps/mach/hurd/alpha/bits/sigcontext.h @@ -1,5 +1,5 @@ /* Machine-dependent signal context structure for GNU Hurd. Alpha version. - Copyright (C) 1994, 1997 Free Software Foundation, Inc. + Copyright (C) 1994,97,2001 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,10 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SIGNAL_H +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include instead." #endif +#ifndef sc_alpha_thread_state + /* Signal handlers are actually called: void handler (int sig, int code, struct sigcontext *scp); */ @@ -67,3 +69,5 @@ struct sigcontext double sc_fpregs[31]; /* Floating point registers $f0..$f30. */ long int sc_fpcsr; /* Floating point control/status register. */ }; + +#endif /* sc_alpha_thread_state */ diff --git a/sysdeps/mach/hurd/hppa/bits/sigcontext.h b/sysdeps/mach/hurd/hppa/bits/sigcontext.h index 0042359562..5db43fc22c 100644 --- a/sysdeps/mach/hurd/hppa/bits/sigcontext.h +++ b/sysdeps/mach/hurd/hppa/bits/sigcontext.h @@ -1,5 +1,5 @@ /* Machine-dependent signal context structure for GNU Hurd. HPPA version. - Copyright (C) 1995, 1997 Free Software Foundation, Inc. + Copyright (C) 1995,97,2001 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,10 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SIGNAL_H +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include instead." #endif +#ifndef sc_parisc_thread_state + /* Signal handlers are actually called: void handler (int sig, int code, struct sigcontext *scp); */ @@ -88,3 +90,5 @@ struct sigcontext /* Floating point registers $f0..$f31. */ double sc_fpregs[32]; }; + +#endif /* sc_parisc_thread_state */ diff --git a/sysdeps/mach/hurd/i386/bits/sigcontext.h b/sysdeps/mach/hurd/i386/bits/sigcontext.h index 5fa99d9978..a78dd2f279 100644 --- a/sysdeps/mach/hurd/i386/bits/sigcontext.h +++ b/sysdeps/mach/hurd/i386/bits/sigcontext.h @@ -17,10 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SIGNAL_H +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include instead." #endif +#ifndef sc_pc + /* Signal handlers are actually called: void handler (int sig, int code, struct sigcontext *scp); */ @@ -114,3 +116,5 @@ struct sigcontext /* Codes for SIGTRAP. */ #define DBG_SINGLE_TRAP 0x1 /* single step */ #define DBG_BRKPNT_FAULT 0x2 /* breakpoint instruction */ + +#endif /* sc_pc */ diff --git a/sysdeps/mach/hurd/mips/bits/sigcontext.h b/sysdeps/mach/hurd/mips/bits/sigcontext.h index deea841b62..14c618857e 100644 --- a/sysdeps/mach/hurd/mips/bits/sigcontext.h +++ b/sysdeps/mach/hurd/mips/bits/sigcontext.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. +/* Machine-dependent signal context structure for GNU Hurd. MIPS version. + Copyright (C) 1994,97,2001 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,10 +17,12 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef _SIGNAL_H +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include instead." #endif +#ifndef sc_mips_thread_state + /* Signal handlers are actually called: void handler (int sig, int code, struct sigcontext *scp); */ @@ -73,3 +76,5 @@ struct sigcontext int sc_fpcsr; /* FPU status register. */ int sc_fpeir; /* FP exception instruction register. */ }; + +#endif /* sc_mips_thread_state */ diff --git a/sysdeps/mach/hurd/powerpc/bits/sigcontext.h b/sysdeps/mach/hurd/powerpc/bits/sigcontext.h index 6f14ec5c31..fd2df48d48 100644 --- a/sysdeps/mach/hurd/powerpc/bits/sigcontext.h +++ b/sysdeps/mach/hurd/powerpc/bits/sigcontext.h @@ -1,5 +1,5 @@ /* Machine-dependent signal context structure for GNU Hurd. PowerPC version. - Copyright (C) 1991, 1992, 1994, 1997 Free Software Foundation, Inc. + Copyright (C) 2001,02 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,10 +17,12 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef _SIGNAL_H +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include instead." #endif +#ifndef sc_pc + /* Signal handlers are actually called: void handler (int sig, int code, struct sigcontext *scp); */ @@ -74,3 +76,5 @@ struct sigcontext unsigned int sc_fpscr_pad; unsigned int sc_fpscr; }; + +#endif /* sc_pc */ diff --git a/sysdeps/powerpc/elf/libc-start.c b/sysdeps/powerpc/elf/libc-start.c index 83618cd181..99dc436b07 100644 --- a/sysdeps/powerpc/elf/libc-start.c +++ b/sysdeps/powerpc/elf/libc-start.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1998,2000,01,02 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 @@ -72,12 +72,14 @@ BP_SYM (__libc_start_main) (int argc, char *__unbounded *__unbounded ubp_av, argc = *(int *__unbounded) stack_on_entry; ubp_av = stack_on_entry + 1; ubp_ev = ubp_av + argc + 1; +#ifdef HAVE_AUX_VECTOR auxvec = ubp_ev; while (*(char *__unbounded *__unbounded) auxvec != NULL) ++auxvec; ++auxvec; -#ifndef SHARED +# ifndef SHARED _dl_aux_init ((ElfW(auxv_t) *) auxvec); +# endif #endif rtld_fini = NULL; }