1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

* locale/programs/ld-ctype.c (ctype_read): When given a repertoire

name of "", store a null pointer instead.

	* configure.in (elf): Set to yes for freebsd*, netbsd*.
	* configure: Regenerated.

	* locale/xlocale.c [! (USE_TLS && HAVE___THREAD)] (__libc_tsd_LOCALE):
	Initialize this instead of __libc_tsd_LOCALE_data.

	* sysdeps/unix/grantpt.c (pts_name): Convert ENOTTY return from
	ptsname_r to EINVAL.

	* sysdeps/generic/ptsname.c (__ptsname_r): Return ENOSYS instead of 0.

	* rt/Makefile: Revert last change, it was inappropriate to presume aio
	implementations depend on pthreads.
	* rt/tst-aio.c (do_test): Exit happy if first failure is ENOSYS.
	* rt/tst-aio64.c (do_test): Likewise.
	* rt/tst-aio2.c (do_test): Likewise.
	* rt/tst-aio3.c (do_test): Likewise.
	* rt/tst-aio4.c (do_test): Likewise.
	* rt/tst-aio5.c (do_test): Likewise.
	* rt/tst-aio6.c (do_test): Likewise.
	* rt/tst-aio7.c (do_test): Likewise.

	* sysdeps/generic/bits/libc-lock.h (__libc_setspecific): Use a cast to
	void so as to avoid compiler warnings.

	* libio/oldstdfiles.c [! _IO_MTSAFE_IO] (DEF_STDFILE): Don't define
	_IO_wide_data_FD, which is never used here.

	* libio/iofread.c
	[! _IO_MTSAFE_IO] (fread_unlocked): Add libc_hidden_ver defn.
	* libio/iofputs.c [! _IO_MTSAFE_IO] (fputs_unlocked): Likewise.
	* libio/iofgets.c [! _IO_MTSAFE_IO] (fgets_unlocked): Likewise.

	* include/resolv.h [! _LIBC_REENTRANT] (_res): #undef it before decl.
	* include/netdb.h [! _LIBC_REENTRANT] (h_errno): Declare normal extern.

	* misc/syslog.c (openlog): Conditionalize locking on [_LIBC_REENTRANT].
	(closelog): Likewise.

2002-07-06  Bruno Haible  <bruno@clisp.org>

	* sysdeps/alpha/fpu/fpu_control.h: Comment fix.

	* sysdeps/unix/sysv/linux/alpha/pipe.S: Moved to ...
	* sysdeps/unix/alpha/pipe.S: ... here.
	* sysdeps/unix/bsd/osf/alpha/pipe.S: File removed.

	* sysdeps/unix/i386/brk.S: Rename local label to '.Lhere' in ELF.

	* sysdeps/unix/i386/brk.S: Add PSEUDO_END invocation.
	* sysdeps/unix/i386/fork.S: Likewise.
	* sysdeps/unix/i386/pipe.S: Likewise.
	* sysdeps/unix/i386/wait.S: Likewise.

	* sysdeps/unix/fork.S: Fix PSEUDO_END argument.
	* sysdeps/unix/arm/fork.S: Likewise.

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/hppa/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (PSEUDO): Swap DO_CALL
	arguments.
	(DO_CALL): Swap argument order.

	* sysdeps/i386/sysdep.h (PSEUDO): Fix syntax error.
	(L): Define right for ELF.
	* sysdeps/unix/sysv/linux/i386/sysdep.h (L): Remove definition.
	Now defined in sysdeps/i386/sysdep.h.

	* sysdeps/posix/readv.c: Ansify function definition.
	* sysdeps/posix/writev.c: Likewise.

	* stdio-common/tst-fseek.c (main): Don't assume that off_t and size_t
	have the same size. Avoid direct cast from size_t to off_t.

	* login/tst-utmp.c (simulate_login): Don't leave garbage after the
	nul byte in entry[n].ut_user.
	(simulate_logout): Likewise.

	* login/programs/utmpdump.c (print_entry): Test _HAVE_UT_TYPE,
	_HAVE_UT_PID, _HAVE_UT_ID, _HAVE_UT_HOST, instead of assuming the
	existence of corresponding members of 'struct utmp'.
	* login/tst-utmp.c: Trivialize the test if testing 'struct utmp' and
	!_HAVE_UT_TYPE.

	* sysdeps/unix/opendir.c (__opendir): If st_blksize is 0 or too small,
	allocate a buffer of at least BUFSIZ bytes, not just of
	sizeof (struct dirent).

	* sysdeps/generic/glob.c: Include <limits.h>.
	(NAME_MAX): Define a fallback.
	(glob_in_dir): Allocate enough room for a 'struct dirent64' on the
	stack.
	* posix/tst-dir.c: Include <stddef.h>, for offsetof.
	(main): Allocate enough room for a 'struct dirent64' on the stack.
	* posix/tst-gnuglob.c (my_DIR): Allocate enough room for a
	'struct dirent'.

	* sysdeps/unix/sysv/linux/init-first.c: Don't include
	kernel-features.h.

	* inet/htontest.c: Include <sys/types.h>.

	* sysdeps/generic/sys/sysinfo.h: Surround with __{BEGIN,END}_DECLS.

	* include/sys/sysctl.h: Comment fix.

	* elf/rtld.c (_rtld_global) [! _LIBC_REENTRANT]: Don't initialize
	_dl_load_lock.
	* libio/fileno.c (fileno_unlocked): Define regardless of _IO_MTSAFE_IO.

	* sysdeps/unix/bsd/bsd4.4/syscalls.list (__sigaltstack): New alias.

	* sysdeps/unix/inet/syscalls.list (__connect_internal): New alias.
	(__getpeername): New alias.
	(__getsockname): New alias.
	(__socket): New alias.

	* sysdeps/unix/common/syscalls.list (getpgid): Remove.

	* sysdeps/unix/syscalls.list (__chown_internal): New alias.
	(__fcntl_internal): New alias.
	(__profil): New alias.
This commit is contained in:
Roland McGrath
2002-08-26 11:39:12 +00:00
parent d9cab009a1
commit ffa8d2a098
60 changed files with 403 additions and 164 deletions

144
ChangeLog
View File

@ -1,3 +1,147 @@
2002-08-26 Roland McGrath <roland@redhat.com>
* locale/programs/ld-ctype.c (ctype_read): When given a repertoire
name of "", store a null pointer instead.
* configure.in (elf): Set to yes for freebsd*, netbsd*.
* configure: Regenerated.
* locale/xlocale.c [! (USE_TLS && HAVE___THREAD)] (__libc_tsd_LOCALE):
Initialize this instead of __libc_tsd_LOCALE_data.
* sysdeps/unix/grantpt.c (pts_name): Convert ENOTTY return from
ptsname_r to EINVAL.
* sysdeps/generic/ptsname.c (__ptsname_r): Return ENOSYS instead of 0.
* rt/Makefile: Revert last change, it was inappropriate to presume aio
implementations depend on pthreads.
* rt/tst-aio.c (do_test): Exit happy if first failure is ENOSYS.
* rt/tst-aio64.c (do_test): Likewise.
* rt/tst-aio2.c (do_test): Likewise.
* rt/tst-aio3.c (do_test): Likewise.
* rt/tst-aio4.c (do_test): Likewise.
* rt/tst-aio5.c (do_test): Likewise.
* rt/tst-aio6.c (do_test): Likewise.
* rt/tst-aio7.c (do_test): Likewise.
* sysdeps/generic/bits/libc-lock.h (__libc_setspecific): Use a cast to
void so as to avoid compiler warnings.
* libio/oldstdfiles.c [! _IO_MTSAFE_IO] (DEF_STDFILE): Don't define
_IO_wide_data_FD, which is never used here.
* libio/iofread.c
[! _IO_MTSAFE_IO] (fread_unlocked): Add libc_hidden_ver defn.
* libio/iofputs.c [! _IO_MTSAFE_IO] (fputs_unlocked): Likewise.
* libio/iofgets.c [! _IO_MTSAFE_IO] (fgets_unlocked): Likewise.
* include/resolv.h [! _LIBC_REENTRANT] (_res): #undef it before decl.
* include/netdb.h [! _LIBC_REENTRANT] (h_errno): Declare normal extern.
* misc/syslog.c (openlog): Conditionalize locking on [_LIBC_REENTRANT].
(closelog): Likewise.
2002-07-06 Bruno Haible <bruno@clisp.org>
* sysdeps/alpha/fpu/fpu_control.h: Comment fix.
* sysdeps/unix/sysv/linux/alpha/pipe.S: Moved to ...
* sysdeps/unix/alpha/pipe.S: ... here.
* sysdeps/unix/bsd/osf/alpha/pipe.S: File removed.
* sysdeps/unix/i386/brk.S: Rename local label to '.Lhere' in ELF.
* sysdeps/unix/i386/brk.S: Add PSEUDO_END invocation.
* sysdeps/unix/i386/fork.S: Likewise.
* sysdeps/unix/i386/pipe.S: Likewise.
* sysdeps/unix/i386/wait.S: Likewise.
* sysdeps/unix/fork.S: Fix PSEUDO_END argument.
* sysdeps/unix/arm/fork.S: Likewise.
* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/hppa/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/i386/sysdep.h (PSEUDO): Fix syntax error.
(L): Define right for ELF.
* sysdeps/unix/sysv/linux/i386/sysdep.h (L): Remove definition.
Now defined in sysdeps/i386/sysdep.h.
* sysdeps/posix/readv.c: Ansify function definition.
* sysdeps/posix/writev.c: Likewise.
* stdio-common/tst-fseek.c (main): Don't assume that off_t and size_t
have the same size. Avoid direct cast from size_t to off_t.
* login/tst-utmp.c (simulate_login): Don't leave garbage after the
nul byte in entry[n].ut_user.
(simulate_logout): Likewise.
* login/programs/utmpdump.c (print_entry): Test _HAVE_UT_TYPE,
_HAVE_UT_PID, _HAVE_UT_ID, _HAVE_UT_HOST, instead of assuming the
existence of corresponding members of 'struct utmp'.
* login/tst-utmp.c: Trivialize the test if testing 'struct utmp' and
!_HAVE_UT_TYPE.
* sysdeps/unix/opendir.c (__opendir): If st_blksize is 0 or too small,
allocate a buffer of at least BUFSIZ bytes, not just of
sizeof (struct dirent).
* sysdeps/generic/glob.c: Include <limits.h>.
(NAME_MAX): Define a fallback.
(glob_in_dir): Allocate enough room for a 'struct dirent64' on the
stack.
* posix/tst-dir.c: Include <stddef.h>, for offsetof.
(main): Allocate enough room for a 'struct dirent64' on the stack.
* posix/tst-gnuglob.c (my_DIR): Allocate enough room for a
'struct dirent'.
* sysdeps/unix/sysv/linux/init-first.c: Don't include
kernel-features.h.
* inet/htontest.c: Include <sys/types.h>.
* sysdeps/generic/sys/sysinfo.h: Surround with __{BEGIN,END}_DECLS.
* include/sys/sysctl.h: Comment fix.
* elf/rtld.c (_rtld_global) [! _LIBC_REENTRANT]: Don't initialize
_dl_load_lock.
* libio/fileno.c (fileno_unlocked): Define regardless of _IO_MTSAFE_IO.
* sysdeps/unix/bsd/bsd4.4/syscalls.list (__sigaltstack): New alias.
* sysdeps/unix/inet/syscalls.list (__connect_internal): New alias.
(__getpeername): New alias.
(__getsockname): New alias.
(__socket): New alias.
* sysdeps/unix/common/syscalls.list (getpgid): Remove.
* sysdeps/unix/syscalls.list (__chown_internal): New alias.
(__fcntl_internal): New alias.
(__profil): New alias.
2002-08-26 Ulrich Drepper <drepper@redhat.com> 2002-08-26 Ulrich Drepper <drepper@redhat.com>
* nscd/hstcache.c (cache_addhst): Add new parameter saying whether * nscd/hstcache.c (cache_addhst): Add new parameter saying whether

View File

@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Stub version. /* libc-internal interface for mutex locks. Stub version.
Copyright (C) 1996,97,99,2000,01 Free Software Foundation, Inc. Copyright (C) 1996,97,99,2000,01,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -123,7 +123,7 @@ typedef int __libc_key_t;
#define __libc_key_create(KEY,DEST) -1 #define __libc_key_create(KEY,DEST) -1
/* Set thread-specific data associated with KEY to VAL. */ /* Set thread-specific data associated with KEY to VAL. */
#define __libc_setspecific(KEY,VAL) -1 #define __libc_setspecific(KEY,VAL) ((void)0)
/* Get thread-specific data associated with KEY. */ /* Get thread-specific data associated with KEY. */
#define __libc_getspecific(KEY) 0 #define __libc_getspecific(KEY) 0

2
configure vendored
View File

@ -961,7 +961,7 @@ case "$host_os" in
# i586-linuxaout is mangled into i586-pc-linux-gnuaout # i586-linuxaout is mangled into i586-pc-linux-gnuaout
linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
;; ;;
gnu* | linux* | sysv4* | solaris2* | irix6*) gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
# These systems (almost) always use the ELF format. # These systems (almost) always use the ELF format.
elf=yes elf=yes
;; ;;

View File

@ -247,7 +247,7 @@ case "$host_os" in
# i586-linuxaout is mangled into i586-pc-linux-gnuaout # i586-linuxaout is mangled into i586-pc-linux-gnuaout
linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
;; ;;
gnu* | linux* | sysv4* | solaris2* | irix6*) gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
# These systems (almost) always use the ELF format. # These systems (almost) always use the ELF format.
elf=yes elf=yes
;; ;;

View File

@ -101,7 +101,9 @@ struct rtld_global _rtld_global =
._dl_fpu_control = _FPU_DEFAULT, ._dl_fpu_control = _FPU_DEFAULT,
._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID, ._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID,
._dl_hwcap_mask = HWCAP_IMPORTANT, ._dl_hwcap_mask = HWCAP_IMPORTANT,
#ifdef _LIBC_REENTRANT
._dl_load_lock = _LIBC_LOCK_RECURSIVE_INITIALIZER ._dl_load_lock = _LIBC_LOCK_RECURSIVE_INITIALIZER
#endif
}; };
strong_alias (_rtld_global, _rtld_local); strong_alias (_rtld_global, _rtld_local);

View File

@ -19,6 +19,7 @@ __set_h_errno (int __err)
# else # else
# undef h_errno # undef h_errno
# define __set_h_errno(x) (h_errno = (x)) # define __set_h_errno(x) (h_errno = (x))
extern int h_errno;
# endif /* _LIBC_REENTRANT */ # endif /* _LIBC_REENTRANT */
libc_hidden_proto (hstrerror) libc_hidden_proto (hstrerror)

View File

@ -20,6 +20,7 @@ extern __thread struct __res_state _res;
# endif # endif
# else # else
# ifndef __BIND_NOSTATIC # ifndef __BIND_NOSTATIC
# undef _res
extern struct __res_state _res; extern struct __res_state _res;
# endif # endif
# endif # endif

View File

@ -1,7 +1,7 @@
#ifndef _SYS_SYSCTL_H #ifndef _SYS_SYSCTL_H
#include_next <sys/sysctl.h> #include_next <sys/sysctl.h>
/* Read or write system parameters (Linux specific). */ /* Read or write system parameters (Linux, FreeBSD specific). */
extern int __sysctl (int *__name, int __nlen, void *__oldval, extern int __sysctl (int *__name, int __nlen, void *__oldval,
size_t *__oldlenp, void *__newval, size_t __newlen); size_t *__oldlenp, void *__newval, size_t __newlen);

View File

@ -1,5 +1,5 @@
/* Test hton/ntoh functions. /* Test hton/ntoh functions.
Copyright (C) 1997 Free Software Foundation, Inc. Copyright (C) 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -20,6 +20,7 @@
#include <endian.h> #include <endian.h>
#include <stdio.h> #include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h> #include <netinet/in.h>
#if BYTE_ORDER == BIG_ENDIAN #if BYTE_ORDER == BIG_ENDIAN

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. /* Copyright (C) 1993,95,96,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -44,12 +44,10 @@ fileno (fp)
} }
libc_hidden_def (fileno) libc_hidden_def (fileno)
#ifdef _IO_MTSAFE_IO
#ifdef weak_alias #ifdef weak_alias
/* The fileno implementation for libio does not require locking because /* The fileno implementation for libio does not require locking because
it only accesses once a single variable and this is already atomic it only accesses once a single variable and this is already atomic
(at least at thread level). */ (at least at thread level). Therefore we don't test _IO_MTSAFE_IO here. */
weak_alias (fileno, fileno_unlocked) weak_alias (fileno, fileno_unlocked)
#endif #endif
#endif

View File

@ -69,5 +69,6 @@ weak_alias (_IO_fgets, fgets)
# ifndef _IO_MTSAFE_IO # ifndef _IO_MTSAFE_IO
weak_alias (_IO_fgets, fgets_unlocked) weak_alias (_IO_fgets, fgets_unlocked)
libc_hidden_weak (fgets_unlocked)
# endif # endif
#endif #endif

View File

@ -52,5 +52,6 @@ weak_alias (_IO_fputs, fputs)
# ifndef _IO_MTSAFE_IO # ifndef _IO_MTSAFE_IO
weak_alias (_IO_fputs, fputs_unlocked) weak_alias (_IO_fputs, fputs_unlocked)
libc_hidden_ver (_IO_fputs, fputs_unlocked)
# endif # endif
#endif #endif

View File

@ -53,5 +53,6 @@ weak_alias (_IO_fread, fread)
# ifndef _IO_MTSAFE_IO # ifndef _IO_MTSAFE_IO
weak_alias (_IO_fread, fread_unlocked) weak_alias (_IO_fread, fread_unlocked)
libc_hidden_ver (_IO_fread, fread_unlocked)
# endif # endif
#endif #endif

View File

@ -44,7 +44,6 @@
= {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), &_IO_old_file_jumps}; = {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), &_IO_old_file_jumps};
#else #else
#define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \ #define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \
static struct _IO_wide_data _IO_wide_data_##FD; \
struct _IO_FILE_plus NAME \ struct _IO_FILE_plus NAME \
= {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), &_IO_old_file_jumps}; = {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), &_IO_old_file_jumps};
#endif #endif

View File

@ -64,7 +64,9 @@ struct __locale_struct _nl_global_locale attribute_hidden = NL_C_INITIALIZER;
__thread void *__libc_tsd_LOCALE = &_nl_global_locale; __thread void *__libc_tsd_LOCALE = &_nl_global_locale;
# else # else
__libc_tsd_define (, LOCALE) __libc_tsd_define (, LOCALE)
void *__libc_tsd_LOCALE_data = &_nl_global_locale; /* This is a bad kludge presuming the variable name used by the macros.
Using typeof makes sure to barf if we do not match the macro definition. */
__typeof (__libc_tsd_LOCALE) __libc_tsd_LOCALE = &_nl_global_locale;
# endif # endif
#endif #endif

View File

@ -1,5 +1,5 @@
/* utmpdump - dump utmp-like files. /* utmpdump - dump utmp-like files.
Copyright (C) 1997 Free Software Foundation, Inc. Copyright (C) 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997. Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
@ -29,15 +29,47 @@
static void static void
print_entry (struct utmp *up) print_entry (struct utmp *up)
{ {
#if _HAVE_UT_TV - 0 (printf) (
printf ("[%d] [%05d] [%-4.4s] [%-8.8s] [%-12.12s] [%-15.15s] [%ld]\n", /* The format string. */
up->ut_type, up->ut_pid, up->ut_id, up->ut_user, #if _HAVE_UT_TYPE
up->ut_line, 4 + ctime (&up->ut_tv.tv_sec), up->ut_tv.tv_usec); "[%d] "
#else
printf ("[%d] [%05d] [%-4.4s] [%-8.8s] [%-12.12s] [%-15.15s]\n",
up->ut_type, up->ut_pid, up->ut_id, up->ut_user,
up->ut_line, 4 + ctime (&up->ut_time));
#endif #endif
#if _HAVE_UT_PID
"[%05d] "
#endif
#if _HAVE_UT_ID
"[%-4.4s] "
#endif
"[%-8.8s] [%-12.12s]"
#if _HAVE_UT_HOST
" [%-16.16s]"
#endif
" [%-15.15s]"
#if _HAVE_UT_TV
" [%ld]"
#endif
"\n"
/* The arguments. */
#if _HAVE_UT_TYPE
, up->ut_type
#endif
#if _HAVE_UT_PID
, up->ut_pid
#endif
#if _HAVE_UT_ID
, up->ut_id
#endif
, up->ut_user, up->ut_line
#if _HAVE_UT_HOST
, up->ut_host
#endif
#if _HAVE_UT_TV
, 4 + ctime (&up->ut_tv.tv_sec)
, up->ut_tv.tv_usec
#else
, 4 + ctime (&up->ut_time)
#endif
);
} }
int int

View File

@ -1,5 +1,5 @@
/* Tests for UTMP functions. /* Tests for UTMP functions.
Copyright (C) 1998, 2001 Free Software Foundation, Inc. Copyright (C) 1998, 2001-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998. Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
@ -40,6 +40,8 @@
#endif #endif
#if _HAVE_UT_TYPE || defined UTMPX
/* Prototype for our test function. */ /* Prototype for our test function. */
static int do_test (int argc, char *argv[]); static int do_test (int argc, char *argv[]);
@ -165,7 +167,7 @@ simulate_login (const char *line, const char *user)
if (entry[n].ut_pid == DEAD_PROCESS) if (entry[n].ut_pid == DEAD_PROCESS)
entry[n].ut_pid = (entry_pid += 27); entry[n].ut_pid = (entry_pid += 27);
entry[n].ut_type = USER_PROCESS; entry[n].ut_type = USER_PROCESS;
strcpy (entry[n].ut_user, user); strncpy (entry[n].ut_user, user, sizeof (entry[n].ut_user));
#if _HAVE_UT_TV - 0 || defined UTMPX #if _HAVE_UT_TV - 0 || defined UTMPX
entry[n].ut_tv.tv_sec = (entry_time += 1000); entry[n].ut_tv.tv_sec = (entry_time += 1000);
#else #else
@ -199,7 +201,7 @@ simulate_logout (const char *line)
if (strcmp (line, entry[n].ut_line) == 0) if (strcmp (line, entry[n].ut_line) == 0)
{ {
entry[n].ut_type = DEAD_PROCESS; entry[n].ut_type = DEAD_PROCESS;
entry[n].ut_user[0] = '\0'; strncpy (entry[n].ut_user, "", sizeof (entry[n].ut_user));
#if _HAVE_UT_TV - 0 || defined UTMPX #if _HAVE_UT_TV - 0 || defined UTMPX
entry[n].ut_tv.tv_sec = (entry_time += 1000); entry[n].ut_tv.tv_sec = (entry_time += 1000);
#else #else
@ -389,3 +391,14 @@ do_test (int argc, char *argv[])
return result; return result;
} }
#else
/* No field 'ut_type' in struct utmp. */
int
main ()
{
return 0;
}
#endif

View File

@ -332,16 +332,20 @@ openlog_internal(const char *ident, int logstat, int logfac)
void void
openlog (const char *ident, int logstat, int logfac) openlog (const char *ident, int logstat, int logfac)
{ {
#ifdef _LIBC_REENTRANT
/* Protect against multiple users. */ /* Protect against multiple users. */
__libc_cleanup_region_start (1, __libc_cleanup_region_start (1,
(void (*) __P ((void *))) __libc_mutex_unlock, (void (*) __P ((void *))) __libc_mutex_unlock,
&syslog_lock); &syslog_lock);
__libc_lock_lock (syslog_lock); __libc_lock_lock (syslog_lock);
#endif
openlog_internal (ident, logstat, logfac); openlog_internal (ident, logstat, logfac);
#ifdef _LIBC_REENTRANT
/* Free the lock. */ /* Free the lock. */
__libc_cleanup_region_end (1); __libc_cleanup_region_end (1);
#endif
} }
static void static void
@ -364,18 +368,22 @@ closelog_internal()
void void
closelog () closelog ()
{ {
#ifdef _LIBC_REENTRANT
/* Protect against multiple users. */ /* Protect against multiple users. */
__libc_cleanup_region_start (1, __libc_cleanup_region_start (1,
(void (*) __P ((void *))) __libc_mutex_unlock, (void (*) __P ((void *))) __libc_mutex_unlock,
&syslog_lock); &syslog_lock);
__libc_lock_lock (syslog_lock); __libc_lock_lock (syslog_lock);
#endif
closelog_internal (); closelog_internal ();
LogTag = NULL; LogTag = NULL;
LogType = SOCK_DGRAM; /* this is the default */ LogType = SOCK_DGRAM; /* this is the default */
#ifdef _LIBC_REENTRANT
/* Free the lock. */ /* Free the lock. */
__libc_cleanup_region_end (1); __libc_cleanup_region_end (1);
#endif
} }
#ifdef _LIBC_REENTRANT #ifdef _LIBC_REENTRANT

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc. /* Copyright (C) 2000-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2000. Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
@ -21,6 +21,7 @@
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <mcheck.h> #include <mcheck.h>
#include <stddef.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -48,7 +49,12 @@ main (int argc, char *argv[])
DIR *dir2; DIR *dir2;
int result = 0; int result = 0;
struct dirent64 *d; struct dirent64 *d;
struct dirent64 direntbuf; union
{
struct dirent64 d;
char room [offsetof (struct dirent64, d_name[0]) + NAME_MAX + 1];
}
direntbuf;
char *objdir_copy1; char *objdir_copy1;
char *objdir_copy2; char *objdir_copy2;
char *buf; char *buf;
@ -316,7 +322,7 @@ main (int argc, char *argv[])
/* Try to find the new directory. */ /* Try to find the new directory. */
rewinddir (dir1); rewinddir (dir1);
while (readdir64_r (dir1, &direntbuf, &d) == 0 && d != NULL) while (readdir64_r (dir1, &direntbuf.d, &d) == 0 && d != NULL)
{ {
#ifdef _DIRENT_HAVE_D_TYPE #ifdef _DIRENT_HAVE_D_TYPE
if (d->d_type != DT_UNKNOWN && d->d_type != DT_DIR) if (d->d_type != DT_UNKNOWN && d->d_type != DT_DIR)
@ -436,7 +442,7 @@ main (int argc, char *argv[])
/* We now should have a directory and a file in the new directory. */ /* We now should have a directory and a file in the new directory. */
rewinddir (dir2); rewinddir (dir2);
while (readdir64_r (dir2, &direntbuf, &d) == 0 && d != NULL) while (readdir64_r (dir2, &direntbuf.d, &d) == 0 && d != NULL)
{ {
if (strcmp (d->d_name, ".") == 0 if (strcmp (d->d_name, ".") == 0
|| strcmp (d->d_name, "..") == 0 || strcmp (d->d_name, "..") == 0

View File

@ -1,6 +1,6 @@
/* Test the GNU extensions in glob which allow the user to provide callbacks /* Test the GNU extensions in glob which allow the user to provide callbacks
for the filesystem access functions. for the filesystem access functions.
Copyright (C) 2001 Free Software Foundation, Inc. Copyright (C) 2001-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001. Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
@ -93,6 +93,7 @@ typedef struct
int level; int level;
int idx; int idx;
struct dirent d; struct dirent d;
char room_for_dirent[NAME_MAX];
} my_DIR; } my_DIR;

View File

@ -38,10 +38,9 @@ librt-routines = $(aio-routines) \
$(clock-routines) $(timer-routines) \ $(clock-routines) $(timer-routines) \
$(shm-routines) $(shm-routines)
tests := tst-shm tst-clock tst-timer tests := tst-shm tst-clock tst-timer \
ifeq ($(have-thread-library),yes) tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
tests += tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 tst-aio7
endif
extra-libs := librt extra-libs := librt
extra-libs-others := $(extra-libs) extra-libs-others := $(extra-libs)

View File

@ -1,5 +1,5 @@
/* Tests for AIO in librt. /* Tests for AIO in librt.
Copyright (C) 1998, 2000 Free Software Foundation, Inc. Copyright (C) 1998,2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -162,7 +162,11 @@ do_test (int argc, char *argv[])
/* First a simple test. */ /* First a simple test. */
for (cnt = 10; cnt > 0; ) for (cnt = 10; cnt > 0; )
aio_write (cbp[--cnt]); if (aio_write (cbp[--cnt]) < 0 && errno == ENOSYS)
{
error (0, 0, "no aio support in this configuration");
return 0;
}
/* Wait 'til the results are there. */ /* Wait 'til the results are there. */
result |= do_wait (cbp, 10, 0); result |= do_wait (cbp, 10, 0);
/* Test this. */ /* Test this. */

View File

@ -1,5 +1,5 @@
/* Test for notification mechanism in lio_listio. /* Test for notification mechanism in lio_listio.
Copyright (C) 2000 Free Software Foundation, Inc. Copyright (C) 2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000. Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
@ -23,6 +23,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h>
int flag; int flag;
@ -67,6 +68,11 @@ do_test (int argc, char *argv[])
if (lio_listio (LIO_WAIT, arr, 1, NULL) < 0) if (lio_listio (LIO_WAIT, arr, 1, NULL) < 0)
{ {
if (errno == ENOSYS)
{
puts ("no aio support in this configuration");
return 0;
}
printf ("lio_listio failed: %m\n"); printf ("lio_listio failed: %m\n");
return 1; return 1;
} }

View File

@ -1,5 +1,5 @@
/* Test for notification mechanism in lio_listio. /* Test for notification mechanism in lio_listio.
Copyright (C) 2000 Free Software Foundation, Inc. Copyright (C) 2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -22,6 +22,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h>
int flag; int flag;
@ -66,6 +67,11 @@ do_test (int argc, char *argv[])
if (lio_listio (LIO_NOWAIT, arr, 1, NULL) < 0) if (lio_listio (LIO_NOWAIT, arr, 1, NULL) < 0)
{ {
if (errno == ENOSYS)
{
puts ("no aio support in this configuration");
return 0;
}
printf ("lio_listio failed: %m\n"); printf ("lio_listio failed: %m\n");
return 1; return 1;
} }

View File

@ -1,5 +1,5 @@
/* Test for completion signal handling. /* Test for completion signal handling.
Copyright (C) 2000, 2001 Free Software Foundation, Inc. Copyright (C) 2000,01,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -22,6 +22,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h>
/* We might need a bit longer timeout. */ /* We might need a bit longer timeout. */
#define TIMEOUT 10 /* sec */ #define TIMEOUT 10 /* sec */
@ -126,6 +127,11 @@ do_test (int argc, char *argv[])
/* First use aio_write. */ /* First use aio_write. */
if (aio_write (arr[0]) < 0) if (aio_write (arr[0]) < 0)
{ {
if (errno == ENOSYS)
{
puts ("no aio support in this configuration");
return 0;
}
printf ("aio_write failed: %m\n"); printf ("aio_write failed: %m\n");
return 1; return 1;
} }

View File

@ -1,5 +1,5 @@
/* Test for completion thread handling. /* Test for completion thread handling.
Copyright (C) 2000 Free Software Foundation, Inc. Copyright (C) 2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -22,6 +22,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h>
/* We might need a bit longer timeout. */ /* We might need a bit longer timeout. */
#define TIMEOUT 10 /* sec */ #define TIMEOUT 10 /* sec */
@ -96,6 +97,11 @@ do_test (int argc, char *argv[])
/* First use aio_write. */ /* First use aio_write. */
if (aio_write (arr[0]) < 0) if (aio_write (arr[0]) < 0)
{ {
if (errno == ENOSYS)
{
puts ("no aio support in this configuration");
return 0;
}
printf ("aio_write failed: %m\n"); printf ("aio_write failed: %m\n");
return 1; return 1;
} }

View File

@ -60,6 +60,11 @@ do_test (void)
/* Try to read from stdin where nothing will be available. */ /* Try to read from stdin where nothing will be available. */
if (aio_read (arr[0]) < 0) if (aio_read (arr[0]) < 0)
{ {
if (errno == ENOSYS)
{
puts ("no aio support in this configuration");
return 0;
}
printf ("aio_read failed: %m\n"); printf ("aio_read failed: %m\n");
return 1; return 1;
} }

View File

@ -1,5 +1,5 @@
/* Tests for 64bit AIO in librt. /* Tests for 64bit AIO in librt.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. Copyright (C) 1998,99,2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -163,7 +163,11 @@ do_test (int argc, char *argv[])
/* First a simple test. */ /* First a simple test. */
for (cnt = 10; cnt > 0; ) for (cnt = 10; cnt > 0; )
aio_write64 (cbp[--cnt]); if (aio_write64 (cbp[--cnt]) < 0 && errno == ENOSYS)
{
error (0, 0, "no aio support in this configuration");
return 0;
}
/* Wait 'til the results are there. */ /* Wait 'til the results are there. */
result |= do_wait (cbp, 10, 0); result |= do_wait (cbp, 10, 0);
/* Test this. */ /* Test this. */

View File

@ -1,5 +1,5 @@
/* Test for AIO POSIX compliance. /* Test for AIO POSIX compliance.
Copyright (C) 2001 Free Software Foundation, Inc. Copyright (C) 2001,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -52,6 +52,12 @@ do_test (void)
/* Case one: invalid fds that match. */ /* Case one: invalid fds that match. */
if (aio_cancel (fd, &cb) != -1 || errno != EBADF) if (aio_cancel (fd, &cb) != -1 || errno != EBADF)
{ {
if (errno == ENOSYS)
{
puts ("no aio support in this configuration");
return 0;
}
puts ("aio_cancel( -1, {-1..} ) did not return -1 or errno != EBADF"); puts ("aio_cancel( -1, {-1..} ) did not return -1 or errno != EBADF");
++result; ++result;
} }

View File

@ -167,7 +167,7 @@ main (void)
} }
/* Go back to the beginning of the file: relative. */ /* Go back to the beginning of the file: relative. */
if (fseek (fp, -(sizeof (outstr) - 1), SEEK_CUR) != 0) if (fseek (fp, -((int) sizeof (outstr) - 1), SEEK_CUR) != 0)
{ {
printf ("%d: fseek(fp, 0, SEEK_SET) failed\n", __LINE__); printf ("%d: fseek(fp, 0, SEEK_SET) failed\n", __LINE__);
result = 1; result = 1;
@ -194,7 +194,7 @@ main (void)
} }
/* Now with fseeko. */ /* Now with fseeko. */
if (fseeko (fp, -(sizeof (outstr) - 1), SEEK_CUR) != 0) if (fseeko (fp, -((int) sizeof (outstr) - 1), SEEK_CUR) != 0)
{ {
printf ("%d: fseeko(fp, 0, SEEK_SET) failed\n", __LINE__); printf ("%d: fseeko(fp, 0, SEEK_SET) failed\n", __LINE__);
result = 1; result = 1;
@ -221,7 +221,7 @@ main (void)
} }
/* Go back to the beginning of the file: from the end. */ /* Go back to the beginning of the file: from the end. */
if (fseek (fp, -(sizeof (outstr) - 1), SEEK_END) != 0) if (fseek (fp, -((int) sizeof (outstr) - 1), SEEK_END) != 0)
{ {
printf ("%d: fseek(fp, 0, SEEK_SET) failed\n", __LINE__); printf ("%d: fseek(fp, 0, SEEK_SET) failed\n", __LINE__);
result = 1; result = 1;
@ -248,7 +248,7 @@ main (void)
} }
/* Now with fseeko. */ /* Now with fseeko. */
if (fseeko (fp, -(sizeof (outstr) - 1), SEEK_END) != 0) if (fseeko (fp, -((int) sizeof (outstr) - 1), SEEK_END) != 0)
{ {
printf ("%d: fseeko(fp, 0, SEEK_SET) failed\n", __LINE__); printf ("%d: fseeko(fp, 0, SEEK_SET) failed\n", __LINE__);
result = 1; result = 1;

View File

@ -1,5 +1,5 @@
/* FPU control word bits. Alpha-maped-to-Intel version. /* FPU control word bits. Alpha-mapped-to-Intel version.
Copyright (C) 1996, 1998, 2000 Free Software Foundation, Inc. Copyright (C) 1996, 1998, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Olaf Flebbe. Contributed by Olaf Flebbe.
@ -65,7 +65,7 @@
#define _FPU_MASK_UM 0x10 #define _FPU_MASK_UM 0x10
#define _FPU_MASK_PM 0x20 #define _FPU_MASK_PM 0x20
/* precision control */ /* precision control -- without effect on Alpha */
#define _FPU_EXTENDED 0x300 /* RECOMMENDED */ #define _FPU_EXTENDED 0x300 /* RECOMMENDED */
#define _FPU_DOUBLE 0x200 #define _FPU_DOUBLE 0x200
#define _FPU_SINGLE 0x0 /* DO NOT USE */ #define _FPU_SINGLE 0x0 /* DO NOT USE */

View File

@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Stub version. /* libc-internal interface for mutex locks. Stub version.
Copyright (C) 1996,97,99,2000,01 Free Software Foundation, Inc. Copyright (C) 1996,97,99,2000,01,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -123,7 +123,7 @@ typedef int __libc_key_t;
#define __libc_key_create(KEY,DEST) -1 #define __libc_key_create(KEY,DEST) -1
/* Set thread-specific data associated with KEY to VAL. */ /* Set thread-specific data associated with KEY to VAL. */
#define __libc_setspecific(KEY,VAL) -1 #define __libc_setspecific(KEY,VAL) ((void)0)
/* Get thread-specific data associated with KEY. */ /* Get thread-specific data associated with KEY. */
#define __libc_getspecific(KEY) 0 #define __libc_getspecific(KEY) 0

View File

@ -191,6 +191,14 @@ extern void abort (), exit ();
#endif /* Standard headers. */ #endif /* Standard headers. */
/* NAME_MAX is usually defined in <dirent.h> or <limits.h>. */
#if defined HAVE_LIMITS_H || defined __GNU_LIBRARY__
# include <limits.h>
#endif
#ifndef NAME_MAX
# define NAME_MAX (sizeof (((struct dirent *) 0)->d_name))
#endif
#ifndef ANSI_STRING #ifndef ANSI_STRING
# ifndef bzero # ifndef bzero
@ -1330,15 +1338,21 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
size_t len; size_t len;
#if defined HAVE_DIRENT64 && !defined COMPILE_GLOB64 #if defined HAVE_DIRENT64 && !defined COMPILE_GLOB64
struct dirent64 *d; struct dirent64 *d;
struct dirent64 d64; union
{
struct dirent64 d64;
char room [offsetof (struct dirent64, d_name[0])
+ NAME_MAX + 1];
}
d64buf;
if (flags & GLOB_ALTDIRFUNC) if (flags & GLOB_ALTDIRFUNC)
{ {
struct dirent *d32 = (*pglob->gl_readdir) (stream); struct dirent *d32 = (*pglob->gl_readdir) (stream);
if (d32 != NULL) if (d32 != NULL)
{ {
CONVERT_DIRENT_DIRENT64 (&d64, d32); CONVERT_DIRENT_DIRENT64 (&d64buf.d64, d32);
d = &d64; d = &d64buf.d64;
} }
else else
d = NULL; d = NULL;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998 Free Software Foundation, Inc. /* Copyright (C) 1998,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998. Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
@ -39,7 +39,7 @@ __ptsname_r (fd, buf, len)
size_t len __attribute__ ((unused)); size_t len __attribute__ ((unused));
{ {
__set_errno (ENOSYS); __set_errno (ENOSYS);
return 0; return ENOSYS;
} }
weak_alias (__ptsname_r, ptsname_r) weak_alias (__ptsname_r, ptsname_r)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc. /* Copyright (C) 1996-1997, 1999, 2000-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -21,6 +21,8 @@
#include <features.h> #include <features.h>
__BEGIN_DECLS
/* Return number of configured processors. */ /* Return number of configured processors. */
extern int get_nprocs_conf (void) __THROW; extern int get_nprocs_conf (void) __THROW;
@ -34,4 +36,6 @@ extern long int get_phys_pages (void) __THROW;
/* Return number of available physical pages of memory in the system. */ /* Return number of available physical pages of memory in the system. */
extern long int get_avphys_pages (void) __THROW; extern long int get_avphys_pages (void) __THROW;
__END_DECLS
#endif /* sys/sysinfo.h */ #endif /* sys/sysinfo.h */

View File

@ -1,5 +1,5 @@
/* Assembler macros for i386. /* Assembler macros for i386.
Copyright (C) 1991, 92, 93, 95, 96, 98 Free Software Foundation, Inc. Copyright (C) 1991,92,93,95,96,98,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -97,9 +97,9 @@
#endif #endif
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
lose: SYSCALL_PIC_SETUP \
jmp JUMPTARGET(syscall_error) \
.globl syscall_error; \ .globl syscall_error; \
lose: SYSCALL_PIC_SETUP \
jmp JUMPTARGET(syscall_error); \
ENTRY (name) \ ENTRY (name) \
DO_CALL (syscall_name, args); \ DO_CALL (syscall_name, args); \
jb lose jb lose
@ -122,7 +122,11 @@ lose: SYSCALL_PIC_SETUP \
/* Local label name for asm code. */ /* Local label name for asm code. */
#ifndef L #ifndef L
#ifdef HAVE_ELF
#define L(name) .L##name
#else
#define L(name) name #define L(name) name
#endif #endif
#endif
#endif /* __ASSEMBLER__ */ #endif /* __ASSEMBLER__ */

View File

@ -30,10 +30,7 @@
Operates just like `read' (see <unistd.h>) except that data are Operates just like `read' (see <unistd.h>) except that data are
put in VECTOR instead of a contiguous buffer. */ put in VECTOR instead of a contiguous buffer. */
ssize_t ssize_t
__readv (fd, vector, count) __readv (int fd, const struct iovec *vector, int count)
int fd;
const struct iovec *vector;
int count;
{ {
char *buffer; char *buffer;
char *buffer_start; char *buffer_start;

View File

@ -30,10 +30,7 @@
Operates just like `write' (see <unistd.h>) except that the data Operates just like `write' (see <unistd.h>) except that the data
are taken from VECTOR instead of a contiguous buffer. */ are taken from VECTOR instead of a contiguous buffer. */
ssize_t ssize_t
__writev (fd, vector, count) __writev (int fd, const struct iovec *vector, int count)
int fd;
const struct iovec *vector;
int count;
{ {
char *buffer; char *buffer;
register char *bp; register char *bp;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc. /* Copyright (C) 1991,92,94,95,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -28,6 +28,6 @@ SYSCALL__ (fork, 0)
sub r1, r1, $1 sub r1, r1, $1
and r0, r0, r1 and r0, r0, r1
RETINSTR(mov, pc, r14) RETINSTR(mov, pc, r14)
PSEUDO_END(fork) PSEUDO_END (__fork)
weak_alias (__fork, fork) weak_alias (__fork, fork)

View File

@ -4,5 +4,5 @@ chflags - chflags 2 chflags
fchflags - fchflags 2 fchflags fchflags - fchflags 2 fchflags
revoke - revoke 1 revoke revoke - revoke 1 revoke
setlogin - setlogin 2 setlogin setlogin - setlogin 2 setlogin
sigaltstack - sigaltstack 2 sigaltstack sigaltstack - sigaltstack 2 __sigaltstack sigaltstack
wait4 - wait4 4 __wait4 wait4 wait4 - wait4 4 __wait4 wait4

View File

@ -1,33 +0,0 @@
/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <sysdep.h>
SYSCALL__ (pipe, 1)
/* Plop in the two descriptors. */
stl r0, 0(a0)
stl r1, 4(a0)
/* Go out with a clean status. */
mov zero, r0
ret
.end __pipe
libc_hidden_def (__pipe)
weak_alias (__pipe, pipe)

View File

@ -4,7 +4,6 @@ adjtime - adjtime i:pp __adjtime adjtime
fchmod - fchmod i:ii __fchmod fchmod fchmod - fchmod i:ii __fchmod fchmod
fchown - fchown i:iii __fchown fchown fchown - fchown i:iii __fchown fchown
ftruncate - ftruncate i:ii __ftruncate ftruncate ftruncate - ftruncate i:ii __ftruncate ftruncate
getpgid - getpgrp i:i __getpgid getpgid
getrusage - getrusage i:ip __getrusage getrusage getrusage - getrusage i:ip __getrusage getrusage
gettimeofday - gettimeofday i:PP __gettimeofday gettimeofday __gettimeofday_internal gettimeofday - gettimeofday i:PP __gettimeofday gettimeofday __gettimeofday_internal
settimeofday - settimeofday i:PP __settimeofday settimeofday settimeofday - settimeofday i:PP __settimeofday settimeofday

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc. /* Copyright (C) 1991,92,94,95,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -28,6 +28,6 @@ SYSCALL__ (fork, 0)
subl #1, r1 subl #1, r1
andl r1, r0 andl r1, r0
ret ret
PSEUDO_END(fork) PSEUDO_END (__fork)
weak_alias (__fork, fork) weak_alias (__fork, fork)

View File

@ -49,10 +49,18 @@ pts_name (int fd, char **pts, size_t buf_len)
if (buf_len) if (buf_len)
{ {
rv = __ptsname_r (fd, buf, buf_len); rv = __ptsname_r (fd, buf, buf_len);
if (rv != 0)
{
if (rv == ENOTTY)
/* ptsname_r returns with ENOTTY to indicate
a descriptor not referring to a pty master.
For this condition, grantpt must return EINVAL. */
errno = EINVAL;
break;
}
if (rv != 0 || memchr (buf, '\0', buf_len)) if (memchr (buf, '\0', buf_len))
/* We either got an error, or we succeeded and the /* We succeeded and the returned name fit in the buffer. */
returned name fit in the buffer. */
break; break;
/* Try again with a longer buffer. */ /* Try again with a longer buffer. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1995, 1997 Free Software Foundation, Inc. /* Copyright (C) 1991,92,93,95,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -36,9 +36,9 @@ SYSCALL__ (brk, 1)
movl 4(%esp), %eax movl 4(%esp), %eax
#ifdef PIC #ifdef PIC
/* Standard PIC nonsense to store into `__curbrk' through the GOT. */ /* Standard PIC nonsense to store into `__curbrk' through the GOT. */
call here call L(here)
here: popl %ecx L(here): popl %ecx
addl $_GLOBAL_OFFSET_TABLE_+[.-here], %ecx addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ecx
movl C_SYMBOL_NAME(__curbrk@GOT)(%ecx), %ecx movl C_SYMBOL_NAME(__curbrk@GOT)(%ecx), %ecx
movl %eax, (%ecx) movl %eax, (%ecx)
#else #else
@ -46,5 +46,6 @@ here: popl %ecx
#endif #endif
xorl %eax, %eax xorl %eax, %eax
ret ret
PSEUDO_END (__brk)
weak_alias (__brk, brk) weak_alias (__brk, brk)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc. /* Copyright (C) 1991,92,94,95,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -26,5 +26,6 @@ SYSCALL__ (fork, 0)
decl r1 decl r1
andl r1, r0 andl r1, r0
ret ret
PSEUDO_END (__fork)
weak_alias (__fork, fork) weak_alias (__fork, fork)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,1992,1993,1995,1997,2002 Free Software Foundation, Inc. /* Copyright (C) 1991,92,93,95,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -24,6 +24,7 @@ SYSCALL__ (pipe, 1)
movl r1, 4(scratch) movl r1, 4(scratch)
xorl %eax, %eax xorl %eax, %eax
ret ret
PSEUDO_END (__pipe)
libc_hidden_def (__pipe) libc_hidden_def (__pipe)
weak_alias (__pipe, pipe) weak_alias (__pipe, pipe)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1995, 1997 Free Software Foundation, Inc. /* Copyright (C) 1991,92,93,95,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -24,5 +24,6 @@ SYSCALL__ (wait, 1)
je null je null
movl r1, (scratch) /* Yes; store the status there. */ movl r1, (scratch) /* Yes; store the status there. */
null: ret null: ret
PSEUDO_END (__wait)
weak_alias (__wait, wait) weak_alias (__wait, wait)

View File

@ -2,11 +2,11 @@
accept - accept i:iBN __libc_accept accept accept - accept i:iBN __libc_accept accept
bind - bind i:ipi __bind bind bind - bind i:ipi __bind bind
connect - connect i:ipi __libc_connect __connect connect connect - connect i:ipi __libc_connect __connect __connect_internal connect
gethostid - gethostid i: gethostid gethostid - gethostid i: gethostid
gethostname - gethostname i:bn __gethostname gethostname gethostname - gethostname i:bn __gethostname gethostname
getpeername - getpeername i:ibN getpeername getpeername - getpeername i:ibN __getpeername getpeername
getsockname - getsockname i:ibN getsockname getsockname - getsockname i:ibN __getsockname getsockname
getsockopt - getsockopt i:iiiBN getsockopt getsockopt - getsockopt i:iiiBN getsockopt
listen - listen i:ii __listen listen listen - listen i:ii __listen listen
recv - recv i:ibni __libc_recv recv recv - recv i:ibni __libc_recv recv
@ -19,7 +19,7 @@ sethostid - sethostid i:i sethostid
sethostname - sethostname i:pi sethostname sethostname - sethostname i:pi sethostname
setsockopt - setsockopt i:iiibn setsockopt __setsockopt setsockopt - setsockopt i:iiibn setsockopt __setsockopt
shutdown - shutdown i:ii shutdown shutdown - shutdown i:ii shutdown
socket - socket i:iii socket socket - socket i:iii __socket socket
socketpair - socketpair i:iiif socketpair socketpair - socketpair i:iiif socketpair

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-1996,98,2000,2001 Free Software Foundation, Inc. /* Copyright (C) 1991-1996,98,2000-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -135,15 +135,13 @@ __opendir (const char *name)
goto lose; goto lose;
#ifdef _STATBUF_ST_BLKSIZE #ifdef _STATBUF_ST_BLKSIZE
if (__builtin_expect ((size_t) statbuf.st_blksize < sizeof (struct dirent), if (__builtin_expect ((size_t) statbuf.st_blksize >= sizeof (struct dirent),
0)) 1))
allocation = sizeof (struct dirent);
else
allocation = statbuf.st_blksize; allocation = statbuf.st_blksize;
#else else
allocation = (BUFSIZ < sizeof (struct dirent)
? sizeof (struct dirent) : BUFSIZ);
#endif #endif
allocation = (BUFSIZ < sizeof (struct dirent)
? sizeof (struct dirent) : BUFSIZ);
dirp = (DIR *) calloc (1, sizeof (DIR) + allocation); /* Zero-fill. */ dirp = (DIR *) calloc (1, sizeof (DIR) + allocation); /* Zero-fill. */
if (dirp == NULL) if (dirp == NULL)

View File

@ -4,13 +4,13 @@ access - access i:si __access access
acct - acct i:S acct acct - acct i:S acct
chdir - chdir i:s __chdir chdir chdir - chdir i:s __chdir chdir
chmod - chmod i:si __chmod chmod chmod - chmod i:si __chmod chmod
chown - chown i:sii __chown chown chown - chown i:sii __chown __chown_internal chown
chroot - chroot i:s chroot chroot - chroot i:s chroot
close - close i:i __libc_close __close close close - close i:i __libc_close __close close
dup - dup i:i __dup dup dup - dup i:i __dup dup
dup2 - dup2 i:ii __dup2 dup2 dup2 - dup2 i:ii __dup2 dup2
fchdir - fchdir i:i __fchdir fchdir fchdir - fchdir i:i __fchdir fchdir
fcntl - fcntl i:iiF __libc_fcntl __fcntl fcntl fcntl - fcntl i:iiF __libc_fcntl __fcntl __fcntl_internal fcntl
fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs - fstatfs i:ip __fstatfs fstatfs
fsync - fsync i:i __libc_fsync fsync fsync - fsync i:i __libc_fsync fsync
getdomain - getdomainname i:si getdomainname getdomain - getdomainname i:si getdomainname
@ -27,7 +27,7 @@ link - link i:ss __link link
lseek - lseek i:iii __libc_lseek __lseek lseek lseek - lseek i:iii __libc_lseek __lseek lseek
mkdir - mkdir i:si __mkdir mkdir mkdir - mkdir i:si __mkdir mkdir
open - open i:siv __libc_open __open open open - open i:siv __libc_open __open open
profil - profil i:piii profil profil - profil i:piii __profil profil
ptrace - ptrace i:iiii ptrace ptrace - ptrace i:iiii ptrace
read - read i:ibn __libc_read __read read read - read i:ibn __libc_read __read read
readlink - readlink i:spi __readlink readlink readlink - readlink i:spi __readlink readlink

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1992, 93, 95-99, 2000 Free Software Foundation, Inc. /* Copyright (C) 1992,93,95-99,2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995. Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
ARM changes by Philip Blundell, <pjb27@cam.ac.uk>, May 1997. ARM changes by Philip Blundell, <pjb27@cam.ac.uk>, May 1997.
@ -51,7 +51,7 @@
.text; \ .text; \
.type syscall_error,%function; \ .type syscall_error,%function; \
ENTRY (name); \ ENTRY (name); \
DO_CALL (args, syscall_name); \ DO_CALL (syscall_name, args); \
cmn r0, $4096; cmn r0, $4096;
#define PSEUDO_RET \ #define PSEUDO_RET \
@ -95,7 +95,7 @@
*/ */
#undef DO_CALL #undef DO_CALL
#define DO_CALL(args, syscall_name) \ #define DO_CALL(syscall_name, args) \
DOARGS_##args \ DOARGS_##args \
swi SYS_ify (syscall_name); \ swi SYS_ify (syscall_name); \
UNDOARGS_##args UNDOARGS_##args

View File

@ -1,5 +1,5 @@
/* Assembler macros for PA-RISC. /* Assembler macros for PA-RISC.
Copyright (C) 1999, 2001 Free Software Foundation, Inc. Copyright (C) 1999,2001,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@cygnus.com>, August 1999. Contributed by Ulrich Drepper, <drepper@cygnus.com>, August 1999.
Linux/PA-RISC changes by Philipp Rumpf, <prumpf@tux.org>, March 2000. Linux/PA-RISC changes by Philipp Rumpf, <prumpf@tux.org>, March 2000.
@ -108,7 +108,7 @@
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
ENTRY (name) \ ENTRY (name) \
DO_CALL(args, syscall_name) ASM_LINE_SEP \ DO_CALL(syscall_name, args) ASM_LINE_SEP \
nop nop
#undef PSEUDO_END #undef PSEUDO_END
@ -145,7 +145,7 @@
*/ */
#undef DO_CALL #undef DO_CALL
#define DO_CALL(args, syscall_name) \ #define DO_CALL(syscall_name, args) \
DOARGS_##args \ DOARGS_##args \
ble 0x100(%sr2,%r0) ASM_LINE_SEP \ ble 0x100(%sr2,%r0) ASM_LINE_SEP \
ldi SYS_ify (syscall_name), %r20 ASM_LINE_SEP \ ldi SYS_ify (syscall_name), %r20 ASM_LINE_SEP \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1993, 1995-2000, 2002 Free Software Foundation, Inc. /* Copyright (C) 1992,93,95,96,97,98,99,2000,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>, August 1995. Contributed by Ulrich Drepper, <drepper@gnu.org>, August 1995.
@ -35,10 +35,6 @@
#ifdef __ASSEMBLER__ #ifdef __ASSEMBLER__
/* ELF-like local names start with `.L'. */
#undef L
#define L(name) .L##name
/* Linux uses a negative return value to indicate syscall errors, /* Linux uses a negative return value to indicate syscall errors,
unlike most Unices, which use the condition codes' carry flag. unlike most Unices, which use the condition codes' carry flag.
@ -62,7 +58,7 @@
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
.text; \ .text; \
ENTRY (name) \ ENTRY (name) \
DO_CALL (args, syscall_name); \ DO_CALL (syscall_name, args); \
cmpl $-4095, %eax; \ cmpl $-4095, %eax; \
jae SYSCALL_ERROR_LABEL; \ jae SYSCALL_ERROR_LABEL; \
L(pseudo_end): L(pseudo_end):
@ -187,7 +183,7 @@ __i686.get_pc_thunk.reg: \
other processors though. */ other processors though. */
#undef DO_CALL #undef DO_CALL
#define DO_CALL(args, syscall_name) \ #define DO_CALL(syscall_name, args) \
PUSHARGS_##args \ PUSHARGS_##args \
DOARGS_##args \ DOARGS_##args \
movl $SYS_ify (syscall_name), %eax; \ movl $SYS_ify (syscall_name), %eax; \

View File

@ -1,5 +1,5 @@
/* Initialization code run first thing by the ELF startup code. Linux version. /* Initialization code run first thing by the ELF startup code. Linux version.
Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995-1999,2000,01,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -25,7 +25,6 @@
#include <fpu_control.h> #include <fpu_control.h>
#include <sys/param.h> #include <sys/param.h>
#include <sys/types.h> #include <sys/types.h>
#include "kernel-features.h"
#include <libc-internal.h> #include <libc-internal.h>
#include <ldsodefs.h> #include <ldsodefs.h>

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc. /* Copyright (C) 2000,01,02 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -55,7 +55,7 @@
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
.text; \ .text; \
ENTRY (name) \ ENTRY (name) \
DO_CALL (args, syscall_name); \ DO_CALL (syscall_name, args); \
lhi %r4,-4095 ; \ lhi %r4,-4095 ; \
clr %r2,%r4 ; \ clr %r2,%r4 ; \
jnl SYSCALL_ERROR_LABEL ; \ jnl SYSCALL_ERROR_LABEL ; \
@ -110,7 +110,7 @@
right. right.
*/ */
#define DO_CALL(args, syscall) \ #define DO_CALL(syscall, args) \
svc SYS_ify (syscall) svc SYS_ify (syscall)
#define ret \ #define ret \

View File

@ -1,5 +1,5 @@
/* Assembler macros for 64 bit S/390. /* Assembler macros for 64 bit S/390.
Copyright (C) 2001 Free Software Foundation, Inc. Copyright (C) 2001,02 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -56,7 +56,7 @@
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
.text; \ .text; \
ENTRY (name) \ ENTRY (name) \
DO_CALL (args, syscall_name); \ DO_CALL (syscall_name, args); \
lghi %r4,-4095 ; \ lghi %r4,-4095 ; \
clgr %r2,%r4 ; \ clgr %r2,%r4 ; \
jnl SYSCALL_ERROR_LABEL ; \ jnl SYSCALL_ERROR_LABEL ; \
@ -83,8 +83,8 @@
st %r2,0(%r1) ; \ st %r2,0(%r1) ; \
lghi %r2,-1 ; \ lghi %r2,-1 ; \
br %r14 br %r14
#endif /* PIC */ #endif /* PIC */
#else #else
#define SYSCALL_ERROR_HANDLER \ #define SYSCALL_ERROR_HANDLER \
0: jg __syscall_error@PLT 0: jg __syscall_error@PLT
#endif /* _LIBC_REENTRANT */ #endif /* _LIBC_REENTRANT */
@ -104,7 +104,7 @@
right. right.
*/ */
#define DO_CALL(args, syscall) \ #define DO_CALL(syscall, args) \
svc SYS_ify (syscall) svc SYS_ify (syscall)
#define ret \ #define ret \
@ -131,7 +131,7 @@
} \ } \
(int) err; }) (int) err; })
#define DECLARGS_0() #define DECLARGS_0()
#define DECLARGS_1(arg1) \ #define DECLARGS_1(arg1) \
unsigned long gpr2 = (unsigned long) (arg1); unsigned long gpr2 = (unsigned long) (arg1);
#define DECLARGS_2(arg1, arg2) \ #define DECLARGS_2(arg1, arg2) \

View File

@ -1,5 +1,4 @@
/* Copyright (C) 1992, 93, 95-99, 2000 Free Software Foundation, /* Copyright (C) 1992,93,95-99,2000,02 Free Software Foundation, Inc.
Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995. Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>. Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
@ -52,7 +51,7 @@
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
.text; \ .text; \
ENTRY (name); \ ENTRY (name); \
DO_CALL (args, syscall_name); \ DO_CALL (syscall_name, args); \
mov r0,r1; \ mov r0,r1; \
mov _IMM12,r2; \ mov _IMM12,r2; \
shad r2,r1; \ shad r2,r1; \
@ -81,7 +80,7 @@
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
.text; \ .text; \
ENTRY (name); \ ENTRY (name); \
DO_CALL (args, syscall_name); \ DO_CALL (syscall_name, args); \
mov r0,r1; \ mov r0,r1; \
mov _IMM12,r2; \ mov _IMM12,r2; \
shad r2,r1; \ shad r2,r1; \
@ -112,7 +111,7 @@
#define SYSCALL_INST6 mov.l @(0,r15),r0; mov.l @(4,r15),r1; trapa #0x16 #define SYSCALL_INST6 mov.l @(0,r15),r0; mov.l @(4,r15),r1; trapa #0x16
#undef DO_CALL #undef DO_CALL
#define DO_CALL(args, syscall_name) \ #define DO_CALL(syscall_name, args) \
mov.l 1f,r3; \ mov.l 1f,r3; \
SYSCALL_INST##args; \ SYSCALL_INST##args; \
bra 2f; \ bra 2f; \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2001 Free Software Foundation, Inc. /* Copyright (C) 2001,02 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -60,7 +60,7 @@
#define PSEUDO(name, syscall_name, args) \ #define PSEUDO(name, syscall_name, args) \
.text; \ .text; \
ENTRY (name) \ ENTRY (name) \
DO_CALL (args, syscall_name); \ DO_CALL (syscall_name, args); \
cmpq $-4095, %rax; \ cmpq $-4095, %rax; \
jae SYSCALL_ERROR_LABEL; \ jae SYSCALL_ERROR_LABEL; \
L(pseudo_end): L(pseudo_end):
@ -134,7 +134,7 @@
Syscalls of more than 6 arguments are not supported. */ Syscalls of more than 6 arguments are not supported. */
#undef DO_CALL #undef DO_CALL
#define DO_CALL(args, syscall_name) \ #define DO_CALL(syscall_name, args) \
DOARGS_##args \ DOARGS_##args \
movq $SYS_ify (syscall_name), %rax; \ movq $SYS_ify (syscall_name), %rax; \
syscall; syscall;