* sysdeps/pthread/aio_misc.c (__aio_enqueue_request): Do not write
`running` field of `newp` when a thread was started to process it,
since that thread will not take `__aio_requests_mutex`, and the field
already has the proper value actually.
aio_* bring in references to pread, which isn't in all the standards
containing aio_* (as a reference from one library to another, this is
a bug for dynamic as well as static linking). This patch fixes this
by using __libc_pread instead, exporting that function from libc at
symbol version GLIBC_PRIVATE; the code, with conditionals that may
call either __pread64 or __libc_pread, becomes exactly analogous to
that elsewhere in the same file that may call either __pwrite64 or
__libc_pwrite.
Tested for x86_64 and x86 (testsuite, and comparison of disassembly of
installed shared libraries). libc changes because of the PLT entry
for the newly exported __libc_pread; librt changes because of
assertion line numbers and PLT rearrangement; other stripped installed
shared libraries do not change.
[BZ #18519]
* posix/Versions (libc): Export __libc_pread at version
GLIBC_PRIVATE.
* sysdeps/pthread/aio_misc.c (handle_fildes_io): Call __libc_pread
instead of pread.
* conform/Makefile (test-xfail-POSIX/aio.h/linknamespace): Remove
variable.
Some pthreads functions use getrlimit and gettimeofday, but these
functions are XSI, not base POSIX; this is a namespace issue for
dynamic linking as well as static linking. This patch makes them use
__getrlimit and __gettimeofday instead - the former needed to be newly
exported from libc.so at GLIBC_PRIVATE (and so now needs
libc_hidden_proto / libc_hidden_def), the latter was already exported.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).
[BZ #17682]
* resource/Versions (libc): Add __getrlimit at GLIBC_PRIVATE.
* resource/getrlimit.c (__getrlimit): Use libc_hidden_def.
* sysdeps/mach/hurd/getrlimit.c (__getrlimit): Likewise.
* include/sys/resource.h (__getrlimit): Use libc_hidden_proto.
* nptl/nptl-init.c (__pthread_initialize_minimal_internal): Use
__getrlimit instead of getrlimit.
* nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait): Use
__gettimeofday instead of gettimeofday.
* nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
Likewise.
* nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
Likewise.
* sysdeps/pthread/aio_misc.c (handle_fildes_io): Likewise.
* conform/Makefile (test-xfail-POSIX2008/aio.h/linknamespace):
Remove variable.
(test-xfail-POSIX2008/pthread.h/linknamespace): Likewise.
(test-xfail-POSIX2008/time.h/linknamespace): Likewise.
addition to the global event.
* sysdeps/pthread/lio_listio.c (lio_listio): Renamed to
lio_listio_internal. Remove mode parameter check. Only set sigevent
type ti SIGEV_NONE if LIO_NO_INDIVIDUAL_EVENT is set.
(__lio_listio_21): New function. Compatiblity version which sets
LIO_NO_INDIVIDUAL_EVENT before calling lio_listio_internal.
(__lio_listio_item_notify): New function.
* sysdeps/pthread/lio_listio64.c: Define __lio_listio_21 and
__lio_listio_item_notify macros.
* sysdeps/pthread/Versions: New file.
* rt/tst-aio2.c: Adjust test for new semantics of lio_listio.
* include/aio.h: Define LIO_NO_INDIVIDUAL_EVENT.
* Versions.def: Add GLIBC_2.4 for librt.
* rt/Versions: Whitespace fix.
* sysdeps/pthread/aio_misc.c: Likewise.
2004-05-25 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/fpu/Makefile: Make ld.so a dependency of libm.so.
* sysdeps/powerpc/fpu/bits/mathinline.h [__LIBC_INERNAL_MATH_INLINES]
(__ieee754_sqrt): Define as __MATH_INLINE using fsqrt instruction.
(__ieee754_sqrtf): Define as __MATH_INLINE using fsqrts instruction.
* sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Moved
implementation from w_sqrt.c.
* sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Moved
implementation from w_sqrtf.c.
* sysdeps/powerpc/fpu/w_sqrt.c (__sqrt): Wrapper implementation
using inline __ieee754_sqrt().
* sysdeps/powerpc/fpu/w_sqrtf.c (__sqrtf): Wrapper implementation
using inline __ieee754_sqrtf().
* sysdeps/powerpc/powerpc32/sysdep.h [__ASSEMBLER__]: Include
<sysdeps/powerpc/sysdep.h> independent of __ASSEMBLER__.
* sysdeps/powerpc/sysdep.h [__ASSEMBLER__] (PPC_FEATURE_*): Define
PPC_FEATURE_* independent of __ASSEMBLER__.
2004-05-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/aio_notify.c: Use <> instead of "" for aio_misc.h
include.
(aio_start_notify_thread): Define if not defined.
(notify_func_wrapper): Use it.
* sysdeps/pthread/aio_misc.c: Use <> instead of "" for aio_misc.h
include.
(aio_create_helper_thread): Define if not defined.
(__aio_create_helper_thread): New function.
(__aio_enqueue_request): Use aio_create_helper_thread.
* nis/ypclnt.c (ypall_data, ypall_foreach): Remove.
(struct ypresp_all_data): New type.
(__xdr_ypresp_all): Change second argument to
struct ypresp_all_data *. Replace ypall_foreach and
ypall_data with objp->foreach and objp->data.
(yp_all): Remove status variable, add data. Replace
all uses of status with data.status. Initialize data.foreach
and data.data instead of ypall_foreach and ypall_data.
2004-05-24 Jakub Jelinek <jakub@redhat.com>
* elf/dl-lookup.c (add_dependency): Set DF_1_NODELETE bit
in l_flags_1, not in l_flags.
2003-08-13 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/syscalls.list: Add time syscall.
* elf/Makefile: Use LC_ALL=C in a few cases where we call external
text processing tools.
* sysdeps/pthread/aio_misc.h (struct waitlist): Don't add caller_pid
element unless BROKEN_THREAD_SIGNALS is defined.
(struct requestlist): Likewise.
* sysdeps/pthread/aio_misc.c (__aio_enqueue_request): Don't fill in
caller_pid of new request unless BROKEN_THREAD_SIGNALS is defined.
* sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise.
* sysdeps/pthread/aio_notify.c (__aio_notify_only): Remove caller_pid
parameter unless BROKEN_THREAD_SIGNALS is defined. Adjust callers.
Pass current PID to __aio_sigqueue.
* sysdeps/pthread/lio_listio.c (lio_listio): Adjust __aio_notify_only
call. Don't initialize caller_pid field of waitlist element.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
* rt/Makefile (aio-routines, clock-routines, timer-routines): New
variables, broken out of librt-routines.
(librt-routines): Set using those.
(extra-libs, extra-libc-others, tests): Set these unconditionally.
(distribute): No need for $(librt-map) or $(librt-routines:=.c) here.
* sysdeps/generic/aio_fsync.c: New file.
* sysdeps/generic/aio_misc.c: New file.
* sysdeps/generic/aio_write.c: New file.
* sysdeps/generic/aio_write64.c: New file.
* sysdeps/generic/aio_read64.c: New file.
* sysdeps/generic/aio_read.c: New file.
* sysdeps/generic/aio_notify.c: New file.
* sysdeps/generic/lio_listio64.c: New file.
* sysdeps/generic/lio_listio.c: New file.
* sysdeps/generic/aio_cancel.c: New file.
* sysdeps/generic/aio_misc.h: New file.
* sysdeps/generic/aio_suspend.c: New file.
* rt/aio_cancel.c: Moved to ...
* sysdeps/pthread/aio_cancel.c: ... here.
* rt/aio_fsync.c: Moved to ...
* sysdeps/pthread/aio_fsync.c: ... here.
* rt/aio_misc.c: Moved to ...
* sysdeps/pthread/aio_misc.c: ... here.
* rt/aio_misc.h: Moved to ...
* sysdeps/pthread/aio_misc.h: ... here.
* rt/aio_notify.c: Moved to ...
* sysdeps/pthread/aio_notify.c: ... here.
* rt/aio_read.c: Moved to ...
* sysdeps/pthread/aio_read.c: ... here.
* rt/aio_read64.c: Moved to ...
* sysdeps/pthread/aio_read64.c: ... here.
* rt/aio_suspend.c: Moved to ...
* sysdeps/pthread/aio_suspend.c: ... here.
* rt/aio_write.c: Moved to ...
* sysdeps/pthread/aio_write.c: ... here.
* rt/aio_write64.c: Moved to ...
* sysdeps/pthread/aio_write64.c: ... here.
* rt/lio_listio.c: Moved to ...
* sysdeps/pthread/lio_listio.c: ... here.
* rt/lio_listio64.c: Moved to ...
* sysdeps/pthread/lio_listio64.c: ... here.