diff options
author | Ulrich Drepper <drepper@redhat.com> | 2002-10-09 09:42:48 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2002-10-09 09:42:48 +0000 |
commit | 6166815d696407069c33c1f0cad76fb1847e4bc7 (patch) | |
tree | d7aaf5fd8551eb6d69fb80863a4a415cfaa9c01a /sysdeps | |
parent | 4c2821faea94c4300fe283f13e4a667f1f73b90b (diff) | |
download | glibc-6166815d696407069c33c1f0cad76fb1847e4bc7.zip glibc-6166815d696407069c33c1f0cad76fb1847e4bc7.tar.gz glibc-6166815d696407069c33c1f0cad76fb1847e4bc7.tar.bz2 |
Update.
2002-10-09 Ulrich Drepper <drepper@redhat.com>
* Versions.def (libc): Add GLIBC_2.3.1.
(libpthread): Add GLIBC_2.3.1.
* include/signal.h: Add libc_hidden_proto for __sigwait, __sigwaitinfo,
and __sigtimedwait.
* signal/Versions: Add __sigtimedwait, __sigwait, and __sigwaitinfo.
* sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Add
libc_hidden_def.
* sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Likewise.
* sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
* include/sys/msg.h: Declare __libc_msgrcv and __libc_msgsnd.
* sysdeps/unix/sysv/linux/msgrcv.c (__msgrcv): Rename to __libc_msgrcv
and make old name an alias.
* sysdeps/unix/sysv/linux/msgsnd.c (__msgsnd): Rename to __libc_msgsnd
and make old name an alias.
* sysvipc/Versions (libc) [GLIBC_PRIVATE]: Add __libc_msgrcv and
__libc_msgsnd.
* include/sys/uio.h: Declare __libc_readv and __libc_writev.
* misc/Versions (libc) [GLIBC_PRIVATE]: Add __libc_readv and
__libc_writev.
* sysdeps/generic/readv.c (__readv): Rename to __libc_readv and make
old name an alias.
* sysdeps/posix/readv.c: Likewise
* sysdeps/unix/sysv/aix/readv.c: Likewise.
* sysdeps/unix/sysv/linux/readv.c: Likewise.
* sysdeps/generic/writev.c (__writev): Rename to __libc_writev and make
old name an alias.
* sysdeps/posix/writev.c: Likewise
* sysdeps/unix/sysv/aix/writev.c: Likewise.
* sysdeps/unix/sysv/linux/writev.c: Likewise.
* include/sys/wait.h: Declare __waitid.
* posix/Versions (libc) [GLIBC_PRIVATE]: Add __waitid.
* sysdeps/generic/waitid.c (waitid): Rename to __waitid and make old
name an alias.
* sysdeps/posix/waitid.c: Likewise.
* sysdeps/unix/sysv/aix/waitid.c: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Add creat syscall.
2002-10-07 Jakub Jelinek <jakub@redhat.com>
* include/alloca.h (__libc_use_alloca, __libc_alloca_cutoff): New
prototypes.
(__MAX_ALLOCA_CUTOFF): Define.
Include allocalim.h.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r,
_nss_dns_gethostbyaddr_r): Use alloca or malloc to allocate
host_buffer depending on __libc_use_alloca.
* resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r,
_nss_dns_getnetbyaddr_r): Use alloca or malloc to allocate
net_buffer depending on __libc_use_alloca.
* resolv/res_query.c (res_nquery): Use alloca or malloc to allocate
buf depending on __libc_use_alloca.
* resolv/gethnamaddr.c (gethostbyname2, gethostbyaddr): Likewise.
* stdio-common/vfprintf.c (vfprintf): Use __libc_use_alloca
instead of hardcoded constants.
Pass proper size argument to alloca and compute end for wide char
version.
* stdio-common/printf_fp.c (__printf_fp): Use __libc_use_alloca
instead of hardcoded constants.
* string/strcoll.c (strcoll): Likewise.
* string/strxfrm.c (strxfrm): Likewise.
* sysdeps/posix/readv.c (__readv): Likewise.
* sysdeps/posix/writev.c (__writev): Likewise.
* sysdeps/generic/allocalim.h: New file.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/allocalim.h | 4 | ||||
-rw-r--r-- | sysdeps/generic/readv.c | 7 | ||||
-rw-r--r-- | sysdeps/generic/waitid.c | 5 | ||||
-rw-r--r-- | sysdeps/generic/writev.c | 7 | ||||
-rw-r--r-- | sysdeps/posix/readv.c | 11 | ||||
-rw-r--r-- | sysdeps/posix/waitid.c | 5 | ||||
-rw-r--r-- | sysdeps/posix/writev.c | 11 | ||||
-rw-r--r-- | sysdeps/unix/sysv/aix/readv.c | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/aix/waitid.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/aix/writev.c | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/msgrcv.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/msgsnd.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/readv.c | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigtimedwait.c | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigwait.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigwaitinfo.c | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/writev.c | 7 |
18 files changed, 61 insertions, 41 deletions
diff --git a/sysdeps/generic/allocalim.h b/sysdeps/generic/allocalim.h new file mode 100644 index 0000000..2491129 --- /dev/null +++ b/sysdeps/generic/allocalim.h @@ -0,0 +1,4 @@ +extern inline int __libc_use_alloca (size_t size) +{ + return size <= __MAX_ALLOCA_CUTOFF; +} diff --git a/sysdeps/generic/readv.c b/sysdeps/generic/readv.c index 82f8696..b33444c 100644 --- a/sysdeps/generic/readv.c +++ b/sysdeps/generic/readv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1991,1995,1996,1997,1998,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,7 +26,7 @@ Operates just like `read' (see <unistd.h>) except that data are put in VECTOR instead of a contiguous buffer. */ ssize_t -__readv (fd, vector, count) +__libc_readv (fd, vector, count) int fd; const struct iovec *vector; int count; @@ -34,7 +34,8 @@ __readv (fd, vector, count) __set_errno (ENOSYS); return -1; } -weak_alias (__readv, readv) +strong_alias (__libc_readv, __readv) +weak_alias (__libc_readv, readv) stub_warning (readv) #include <stub-tag.h> diff --git a/sysdeps/generic/waitid.c b/sysdeps/generic/waitid.c index 9e2a3da..a9de1a1 100644 --- a/sysdeps/generic/waitid.c +++ b/sysdeps/generic/waitid.c @@ -1,5 +1,5 @@ /* Stub version of waitid. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -23,7 +23,7 @@ #include <sys/wait.h> int -waitid (idtype, id, infop, options) +__waitid (idtype, id, infop, options) idtype_t idtype; id_t id; siginfo_t *infop; @@ -32,3 +32,4 @@ waitid (idtype, id, infop, options) __set_errno (ENOSYS); return -1; } +weak_alias (__waitid, waitid) diff --git a/sysdeps/generic/writev.c b/sysdeps/generic/writev.c index 3bfc0be..d424c72 100644 --- a/sysdeps/generic/writev.c +++ b/sysdeps/generic/writev.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1991,1995,1996,1997,1998,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,7 +26,7 @@ Operates just like `write' (see <unistd.h>) except that the data are taken from VECTOR instead of a contiguous buffer. */ ssize_t -__writev (fd, vector, count) +__libc_writev (fd, vector, count) int fd; const struct iovec *vector; int count; @@ -34,7 +34,8 @@ __writev (fd, vector, count) __set_errno (ENOSYS); return -1; } -weak_alias (__writev, writev) +strong_alias (__libc_writev, __writev) +weak_alias (__libc_writev, writev) stub_warning (writev) #include <stub-tag.h> diff --git a/sysdeps/posix/readv.c b/sysdeps/posix/readv.c index bb66345..bde57b4 100644 --- a/sysdeps/posix/readv.c +++ b/sysdeps/posix/readv.c @@ -30,7 +30,7 @@ Operates just like `read' (see <unistd.h>) except that data are put in VECTOR instead of a contiguous buffer. */ ssize_t -__readv (int fd, const struct iovec *vector, int count) +__libc_readv (int fd, const struct iovec *vector, int count) { char *buffer; char *buffer_start; @@ -55,8 +55,8 @@ __readv (int fd, const struct iovec *vector, int count) /* Allocate a temporary buffer to hold the data. We should normally use alloca since it's faster and does not require synchronization with other threads. But we cannot if the amount of memory - required is too large. Use 512k as the limit. */ - if (bytes < 512 * 1024) + required is too large. */ + if (__libc_use_alloca (bytes)) buffer = (char *) __alloca (bytes); else { @@ -94,6 +94,7 @@ __readv (int fd, const struct iovec *vector, int count) return bytes_read; } -#ifndef __readv -weak_alias (__readv, readv) +#ifndef __libc_readv +strong_alias (__libc_readv, __readv) +weak_alias (__libc_readv, readv) #endif diff --git a/sysdeps/posix/waitid.c b/sysdeps/posix/waitid.c index dcb93b6..8687436 100644 --- a/sysdeps/posix/waitid.c +++ b/sysdeps/posix/waitid.c @@ -1,5 +1,5 @@ /* Pseudo implementation of waitid. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1997. @@ -28,7 +28,7 @@ #include <assert.h> int -waitid (idtype, id, infop, options) +__waitid (idtype, id, infop, options) idtype_t idtype; id_t id; siginfo_t *infop; @@ -118,3 +118,4 @@ waitid (idtype, id, infop, options) return 0; } +weak_alias (__waitid, waitid) diff --git a/sysdeps/posix/writev.c b/sysdeps/posix/writev.c index 7afdce3..ae5ef1e 100644 --- a/sysdeps/posix/writev.c +++ b/sysdeps/posix/writev.c @@ -30,7 +30,7 @@ Operates just like `write' (see <unistd.h>) except that the data are taken from VECTOR instead of a contiguous buffer. */ ssize_t -__writev (int fd, const struct iovec *vector, int count) +__libc_writev (int fd, const struct iovec *vector, int count) { char *buffer; register char *bp; @@ -55,8 +55,8 @@ __writev (int fd, const struct iovec *vector, int count) /* Allocate a temporary buffer to hold the data. We should normally use alloca since it's faster and does not require synchronization with other threads. But we cannot if the amount of memory - required is too large. Use 512k as the limit. */ - if (bytes < 512 * 1024) + required is too large. */ + if (__libc_use_alloca (bytes)) buffer = (char *) __alloca (bytes); else { @@ -90,6 +90,7 @@ __writev (int fd, const struct iovec *vector, int count) return bytes_written; } -#ifndef __writev -weak_alias (__writev, writev) +#ifndef __libc_writev +strong_alias (__libc_writev, __writev) +weak_alias (__libc_writev, writev) #endif diff --git a/sysdeps/unix/sysv/aix/readv.c b/sysdeps/unix/sysv/aix/readv.c index 8c12690..eddca0f 100644 --- a/sysdeps/unix/sysv/aix/readv.c +++ b/sysdeps/unix/sysv/aix/readv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995-1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995-1998, 2000, 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 @@ -27,11 +27,12 @@ extern ssize_t kreadv (int fd, const struct iovec *iovp, size_t iovcnt, Operates just like `read' (see <unistd.h>) except that data are put in VECTOR instead of a contiguous buffer. */ ssize_t -__readv (fd, vector, count) +__libc_readv (fd, vector, count) int fd; const struct iovec *vector; int count; { return kreadv (fd, vector, count, 0); } -strong_alias (__readv, readv) +strong_alias (__libc_readv, __readv) +weak_alias (__libc_readv, readv) diff --git a/sysdeps/unix/sysv/aix/waitid.c b/sysdeps/unix/sysv/aix/waitid.c index 36a012e..1d637df 100644 --- a/sysdeps/unix/sysv/aix/waitid.c +++ b/sysdeps/unix/sysv/aix/waitid.c @@ -1,5 +1,5 @@ /* Pseudo implementation of waitid. - Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1997. @@ -31,7 +31,7 @@ extern pid_t kwaitpid (int *stat_loc, pid_t pid, int options, struct rusage *ru_loc, siginfo_t *infop); int -waitid (idtype, id, infop, options) +__waitid (idtype, id, infop, options) idtype_t idtype; id_t id; siginfo_t *infop; @@ -80,3 +80,4 @@ waitid (idtype, id, infop, options) return 0; } +weak_alias (__waitid, waitid) diff --git a/sysdeps/unix/sysv/aix/writev.c b/sysdeps/unix/sysv/aix/writev.c index 0d5a333..d0e5741 100644 --- a/sysdeps/unix/sysv/aix/writev.c +++ b/sysdeps/unix/sysv/aix/writev.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995-1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995-1998, 2000, 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 @@ -27,11 +27,12 @@ extern ssize_t kwritev (int fd, const struct iovec *iovp, size_t iovcnt, Operates just like `read' (see <unistd.h>) except that data are put in VECTOR instead of a contiguous buffer. */ ssize_t -__writev (fd, vector, count) +__libc_writev (fd, vector, count) int fd; const struct iovec *vector; int count; { return kwritev (fd, vector, count, 0); } -strong_alias (__writev, writev) +strong_alias (__libc_writev, __writev) +weak_alias (__libc_writev, writev) diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c index ab43792..fdc13ff 100644 --- a/sysdeps/unix/sysv/linux/msgrcv.c +++ b/sysdeps/unix/sysv/linux/msgrcv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. @@ -36,7 +36,7 @@ struct ipc_kludge int -msgrcv (msqid, msgp, msgsz, msgtyp, msgflg) +__libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg) int msqid; void *msgp; size_t msgsz; @@ -52,3 +52,4 @@ msgrcv (msqid, msgp, msgsz, msgtyp, msgflg) return INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg, __ptrvalue (&tmp)); } +weak_alias (__libc_msgrcv, msgrcv) diff --git a/sysdeps/unix/sysv/linux/msgsnd.c b/sysdeps/unix/sysv/linux/msgsnd.c index f4df5da..7beba6b 100644 --- a/sysdeps/unix/sysv/linux/msgsnd.c +++ b/sysdeps/unix/sysv/linux/msgsnd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1995,1997,1998,1999,2000,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, August 1995. @@ -27,7 +27,7 @@ #include <bp-checks.h> int -msgsnd (msqid, msgp, msgsz, msgflg) +__libc_msgsnd (msqid, msgp, msgsz, msgflg) int msqid; const void *msgp; size_t msgsz; @@ -36,3 +36,4 @@ msgsnd (msqid, msgp, msgsz, msgflg) return INLINE_SYSCALL (ipc, 5, IPCOP_msgsnd, msqid, msgsz, msgflg, (void *) CHECK_N (msgp, msgsz)); } +weak_alias (__libc_msgsnd, msgsnd) diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c index 601afc0..eeba46a 100644 --- a/sysdeps/unix/sysv/linux/readv.c +++ b/sysdeps/unix/sysv/linux/readv.c @@ -40,7 +40,7 @@ static ssize_t __atomic_readv_replacement (int, __const struct iovec *, /* We should deal with kernel which have a smaller UIO_FASTIOV as well as a very big count. */ ssize_t -__readv (fd, vector, count) +__libc_readv (fd, vector, count) int fd; const struct iovec *vector; int count; @@ -54,7 +54,8 @@ __readv (fd, vector, count) return __atomic_readv_replacement (fd, vector, count); } -weak_alias (__readv, readv) +strong_alias (__libc_readv, __readv) +weak_alias (__libc_readv, readv) -#define __readv static internal_function __atomic_readv_replacement +#define __libc_readv static internal_function __atomic_readv_replacement #include <sysdeps/posix/readv.c> diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c index e96117b..c374287 100644 --- a/sysdeps/unix/sysv/linux/sigtimedwait.c +++ b/sysdeps/unix/sysv/linux/sigtimedwait.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2000, 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 @@ -40,6 +40,7 @@ __sigtimedwait (set, info, timeout) return INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set), CHECK_1 (info), timeout, _NSIG / 8); } +libc_hidden_def (__sigtimedwait) weak_alias (__sigtimedwait, sigtimedwait) #else # include <sysdeps/generic/sigtimedwait.c> diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c index 39cc3e9..6eb4cf9 100644 --- a/sysdeps/unix/sysv/linux/sigwait.c +++ b/sysdeps/unix/sysv/linux/sigwait.c @@ -53,6 +53,7 @@ __sigwait (set, sig) return ret; } +libc_hidden_def (__sigwait) weak_alias (__sigwait, sigwait) #else # include <sysdeps/posix/sigwait.c> diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c index b59ee54..b1569bc 100644 --- a/sysdeps/unix/sysv/linux/sigwaitinfo.c +++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2000, 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 @@ -41,6 +41,7 @@ __sigwaitinfo (set, info) return INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set), CHECK_1 (info), NULL, _NSIG / 8); } +libc_hidden_def (__sigwaitinfo) weak_alias (__sigwaitinfo, sigwaitinfo) #else # include <sysdeps/generic/sigwaitinfo.c> diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 5ab190b..5fcc9b5 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -4,6 +4,7 @@ adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime __adjtimex_interna bdflush EXTRA bdflush i:ii bdflush capget EXTRA capget i:pp capget capset EXTRA capset i:pp capset +creat - creat i:si creat create_module EXTRA create_module 3 create_module delete_module EXTRA delete_module 3 delete_module fdatasync - fdatasync i:i fdatasync @@ -79,4 +80,3 @@ flistxattr EXTRA flistxattr i:isi flistxattr removexattr EXTRA removexattr i:ss removexattr lremovexattr EXTRA lremovexattr i:ss lremovexattr fremovexattr EXTRA fremovexattr i:is fremovexattr - diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c index 729fd9a..76cc920 100644 --- a/sysdeps/unix/sysv/linux/writev.c +++ b/sysdeps/unix/sysv/linux/writev.c @@ -40,7 +40,7 @@ static ssize_t __atomic_writev_replacement (int, const struct iovec *, /* We should deal with kernel which have a smaller UIO_FASTIOV as well as a very big count. */ ssize_t -__writev (fd, vector, count) +__libc_writev (fd, vector, count) int fd; const struct iovec *vector; int count; @@ -54,7 +54,8 @@ __writev (fd, vector, count) return __atomic_writev_replacement (fd, vector, count); } -weak_alias (__writev, writev) +strong_alias (__libc_writev, __writev) +weak_alias (__libc_writev, writev) -#define __writev static internal_function __atomic_writev_replacement +#define __libc_writev static internal_function __atomic_writev_replacement #include <sysdeps/posix/writev.c> |