The aio_suspend function has been converted to support 64 bit time.
This change uses (in aio_misc.h):
- __futex_abstimed_wait64 (instead of futex_reltimed_wait)
- __futex_abstimed_wait_cancellable64
(instead of futex_reltimed_wait_cancellable)
from ./sysdeps/nptl/futex-helpers.h
The aio_suspend() accepts relative timeout, which then is converted to
absolute one.
The i686-gnu port (HURD) do not define DONT_NEED_AIO_MISC_COND and as it
doesn't (yet) support 64 bit time it uses not converted
pthread_cond_timedwait().
The __aio_suspend() is supposed to be run on ports with __TIMESIZE !=64 and
__WORDSIZE==32. It internally utilizes __aio_suspend_time64() and hence the
conversion from 32 bit struct timespec to 64 bit one is required.
For ports supporting 64 bit time the __aio_suspend_time64() will be used
either via alias (to __aio_suspend when __TIMESIZE==64) or redirection
(when -D_TIME_BITS=64 is passed).
Build tests:
./src/scripts/build-many-glibcs.py glibcs
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
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.
* include/aio.h: Remove __THROW from internal interfaces. __THROW
is only need in external header files that might be compiled by a
C++ compiler.
* include/alloca.h: Likewise.
* include/db.h: Likewise.
* include/dirent.h: Likewise.
* include/execinfo.h: Likewise.
* include/fpu_control.h: Likewise.
* include/glob.h: Likewise.
* include/grp.h: Likewise.
* include/libintl.h: Likewise.
* include/math.h: Likewise.
* include/math.h: Likewise.
* include/mntent.h: Likewise.
* include/mntent.h: Likewise.
* include/netdb.h: Likewise.
* include/pwd.h: Likewise.
* include/sched.h: Likewise.
* include/shadow.h: Likewise.
* include/stdlib.h: Likewise.
* include/sys/file.h: Likewise.
* include/sys/gmon.h: Likewise.
* include/sys/ioctl.h: Likewise.
* include/sys/socket.h: Likewise.
* include/sys/stat.h: Likewise.
* include/sys/sysinfo.h: Likewise.
* include/sys/time.h: Likewise.
* include/sys/times.h: Likewise.
* include/sys/uio.h: Likewise.
* include/sys/wait.h: Likewise.
* include/termios.h: Likewise.
* include/time.h: Likewise.
* include/ulimit.h: Likewise.
* include/utmp.h: Likewise.
* include/wchar.h: Likewise.
1999-11-22 Andreas Jaeger <aj@suse.de>
* sunrpc/rpc_clntout.c (printbody): Fix -CLMNab output.
Patch by Jerry Perkins <jrperkins@iname.com>, closes PR
libc/1456+1457.
1999-11-22 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/siglist.h: Avoid declaring the same field
twice if SIGPWR is defined to SIGLOST.
* sysdeps/sparc/sparc32/memcpy.S: bcopy takes size_t argument,
not signed, so we should not special case it for negative args.
* sysdeps/sparc/sparc32/sparcv9/memmove.c: Don't use generic
memmove, use the one provided in memcpy.S.
* sysdeps/sparc/sparc64/memcpy.S: bcopy should handle overlapping
copies like memmove, while the previous version worked like memcpy.
Implement optimized assembly memmove.
* sysdeps/sparc/sparc64/memmove.c: New file.
1999-11-23 Ulrich Drepper <drepper@cygnus.com>
* po/cs.po: Update from translators.
1999-11-23 Andreas Jaeger <aj@suse.de>
1998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
* include/aio.h: New file.
* posix/Makefile (distribute): Add bits/pthreadtypes.h.
(tests): Build and run annexc program.
* posix/annexc.c: New file.
* posix/bits/posix1_lim.h: Add several more _POSIX_* limits.
* rt/aio.h: Remove __need_timespec_t. We can include the whole time.h.
* rt/aio_misc.c: Include limits.h.
* rt/aio_notify.c: Include errno.h.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Include pthreadtypes.h.
Define size_t.
* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Define ENOTSUP though the
kernel doesn't do this.
* sysdeps/unix/sysv/linux/bits/fcntl.h: Define O_LARGEFILE only if
__USE_LARGEFILE64 is defined.
* sysdeps/unix/sysv/linux/bits/pthreadtypes.h: New file. Empty.
* sysdeps/unix/sysv/linux/bits/sched.h: Define __sched_param struct
if requested.
* sysdeps/unix/sysv/linux/bits/siginifo.h: Protect non-standard names.
* stdlib/isomac.c: Avoid include_next warning.