2002-09-04 Bruno Haible <bruno@clisp.org>

* elf/readlib.c (process_file): Conditionalize check for QMAGIC.

	* sysdeps/unix/sysv/linux/sigset-cvt-mask.h (sigset_set_old_mask,
	sigset_get_old_mask): Turn into inline functions.
	* sysdeps/unix/sysv/aix/sigset-cvt-mask.h (sigset_set_old_mask,
	sigset_get_old_mask): Likewise.
	* sysdeps/unix/sysv/sysv4/sigset-cvt-mask.h (sigset_set_old_mask,
	sigset_get_old_mask): Likewise.

	* sysdeps/generic/_strerror.c (_sys_errlist, _sys_nerr): Remove
	default definitions.
	(__strerror_r): Use _sys_errlist_internal instead of _sys_errlist,
	_sys_nerr_internal instead of _sys_nerr.

	* nscd/connections.c (handle_request): Declare CALLER inside #if.
This commit is contained in:
Roland McGrath 2002-09-05 18:52:18 +00:00
parent 43e3d6e3e2
commit be3c40b627
9 changed files with 94 additions and 50 deletions

View file

@ -1,3 +1,21 @@
2002-09-04 Bruno Haible <bruno@clisp.org>
* elf/readlib.c (process_file): Conditionalize check for QMAGIC.
* sysdeps/unix/sysv/linux/sigset-cvt-mask.h (sigset_set_old_mask,
sigset_get_old_mask): Turn into inline functions.
* sysdeps/unix/sysv/aix/sigset-cvt-mask.h (sigset_set_old_mask,
sigset_get_old_mask): Likewise.
* sysdeps/unix/sysv/sysv4/sigset-cvt-mask.h (sigset_set_old_mask,
sigset_get_old_mask): Likewise.
* sysdeps/generic/_strerror.c (_sys_errlist, _sys_nerr): Remove
default definitions.
(__strerror_r): Use _sys_errlist_internal instead of _sys_errlist,
_sys_nerr_internal instead of _sys_nerr.
* nscd/connections.c (handle_request): Declare CALLER inside #if.
2002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/__longjmp.S: Moved to...

View file

@ -123,7 +123,10 @@ process_file (const char *real_file_name, const char *file_name,
/* First check if this is an aout file. */
aout_header = (struct exec *) file_contents;
if (N_MAGIC (*aout_header) == ZMAGIC
|| N_MAGIC (*aout_header) == QMAGIC)
#ifdef QMAGIC /* Linuxism. */
|| N_MAGIC (*aout_header) == QMAGIC
#endif
)
{
/* Aout files don't have a soname, just return the name
including the major number. */

View file

@ -23,20 +23,23 @@
#if !USE_TLS || !HAVE___THREAD
/* The definition in libc is sufficient if we use TLS. */
int * __errno_location()
int *
__errno_location (void)
{
pthread_descr self = thread_self();
return THREAD_GETMEM (self, p_errnop);
}
int * __h_errno_location()
int *
__h_errno_location (void)
{
pthread_descr self = thread_self();
return THREAD_GETMEM (self, p_h_errnop);
}
/* Return thread specific resolver state. */
struct __res_state * __res_state()
struct __res_state *
__res_state (void)
{
pthread_descr self = thread_self();
return THREAD_GETMEM (self, p_resp);

View file

@ -1,5 +1,5 @@
/* Tests for POSIX timer implementation.
Copyright (C) 2000 Free Software Foundation, Inc.
Copyright (C) 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@ -66,17 +66,7 @@ main (void)
.sigev_notify = SIGEV_SIGNAL,
.sigev_signo = ZSIGALRM
};
struct sigevent sigev2 =
{
.sigev_notify = SIGEV_THREAD,
._sigev_un =
{
._sigev_thread =
{
._function = notify_func
}
}
};
struct sigevent sigev2;
struct itimerspec itimer1 = { { 0, 200000000 }, { 0, 200000000 } };
struct itimerspec itimer2 = { { 0, 100000000 }, { 0, 500000000 } };
struct itimerspec itimer3 = { { 0, 150000000 }, { 0, 300000000 } };
@ -84,6 +74,9 @@ main (void)
retval = clock_gettime (CLOCK_REALTIME, &ts);
sigev2.sigev_notify = SIGEV_THREAD;
sigev2.sigev_notify_function = notify_func;
setvbuf (stdout, 0, _IOLBF, 0);
printf ("clock_gettime returned %d, timespec = { %ld, %ld }\n",

View file

@ -1,5 +1,5 @@
/* Wrapper arpund system calls to provide cancelation points.
Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
Copyright (C) 1996-1999,2000-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -69,6 +69,8 @@ name param_list \
return result; \
}
#define PROMOTE_INTEGRAL_TYPE(type) __typeof__ ((type) 0 + 0)
/* close(2). */
CANCELABLE_SYSCALL (int, close, (int fd), (fd))
@ -110,13 +112,17 @@ strong_alias (nanosleep, __nanosleep)
/* open(2). */
CANCELABLE_SYSCALL_VA (int, open, (const char *pathname, int flags, ...),
(pathname, flags, va_arg (ap, mode_t)), flags)
(pathname, flags,
va_arg (ap, PROMOTE_INTEGRAL_TYPE (mode_t))),
flags)
strong_alias (open, __open)
/* open64(3). */
CANCELABLE_SYSCALL_VA (int, open64, (const char *pathname, int flags, ...),
(pathname, flags, va_arg (ap, mode_t)), flags)
(pathname, flags,
va_arg (ap, PROMOTE_INTEGRAL_TYPE (mode_t))),
flags)
strong_alias (open64, __open64)

View file

@ -391,12 +391,12 @@ cannot handle old request version %d; current version is %d"),
}
else
{
struct ucred caller;
socklen_t optlen = sizeof (caller);
/* Some systems have no SO_PEERCRED implementation. They don't
care about security so we don't as well. */
#ifdef SO_PEERCRED
struct ucred caller;
socklen_t optlen = sizeof (caller);
if (getsockopt (fd, SOL_SOCKET, SO_PEERCRED, &caller, &optlen) < 0)
{
char buf[256];

View file

@ -18,8 +18,16 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#define sigset_set_old_mask(set, mask) \
((set)->__losigs = (unsigned int) (mask), (set)->__hisigs = 0, 0)
static inline int __attribute__ ((unused))
sigset_set_old_mask (sigset_t *set, int mask)
{
set->__losigs = (unsigned int) mask;
set->__hisigs = 0;
return 0;
}
#define sigset_get_old_mask(set, mask) \
((unsigned int) (set)->__losigs)
static inline int __attribute__ ((unused))
sigset_get_old_mask (const sigset_t *set)
{
return (unsigned int) set->__losigs;
}

View file

@ -19,17 +19,26 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#define sigset_set_old_mask(set, mask) \
({ \
unsigned long int *__ptr; \
int __cnt; \
__ptr = &(set)->__val[0]; \
*__ptr++ = (unsigned long int) (mask); \
__cnt = _SIGSET_NWORDS - 2; \
do \
*__ptr++ = 0ul; \
while (--__cnt >= 0); \
0; })
static inline int __attribute__ ((unused))
sigset_set_old_mask (sigset_t *set, int mask)
{
unsigned long int *ptr;
int cnt;
#define sigset_get_old_mask(set) \
((unsigned int) (set)->__val[0])
ptr = &set->__val[0];
*ptr++ = (unsigned int) mask;
cnt = _SIGSET_NWORDS - 2;
do
*ptr++ = 0ul;
while (--cnt >= 0);
return 0;
}
static inline int __attribute__ ((unused))
sigset_get_old_mask (const sigset_t *set)
{
return (unsigned int) set->__val[0];
}

View file

@ -19,15 +19,19 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#define sigset_set_old_mask(set, mask) \
({ \
unsigned long int *__ptr; \
__ptr = &(set)->__sigbits[0]; \
__ptr[0] = (mask); \
__ptr[1] = 0ul; \
__ptr[2] = 0ul; \
__ptr[3] = 0ul; \
0; })
static inline int __attribute__ ((unused))
sigset_set_old_mask (sigset_t *set, int mask)
{
set->__sigbits[0] = (unsigned int) mask;
set->__sigbits[1] = 0ul;
set->__sigbits[2] = 0ul;
set->__sigbits[3] = 0ul;
#define sigset_get_old_mask(set) \
((unsigned int) (set)->__sigbits[0])
return 0;
}
static inline int __attribute__ ((unused))
sigset_get_old_mask (const sigset_t *set)
{
return (unsigned int) set->__sigbits[0];
}