aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/pthread
AgeCommit message (Collapse)Author
2015-06-24Use unsigned types for counters in AIO code.Roland McGrath
2015-06-12Fix aio_* pread namespace (bug 18519).Joseph Myers
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.
2015-03-06Fix aio_error thread-safety.Samuel Thibault
* sysdeps/pthread/aio_error.c: New file * sysdeps/pthread/aio_misc.c: Remove optimistic comment about synchronization.
2015-03-02Deglobalize internal variables in timer_routines.c.Roland McGrath
2015-02-07hurd: fix build with pthread aioSamuel Thibault
2015-01-08Some #include cleanup in aio/timer code.Roland McGrath
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers
2014-12-30Replace %ld with %jd and cast to intmax_tH.J. Lu
2014-12-11Move semaphore.h to sysdeps/pthread/.Joseph Myers
Carlos reported failures in conform/ tests in environments where the compiler used could only find headers in glibc's source and build trees, not any previously installed headers <https://sourceware.org/ml/libc-alpha/2014-09/msg00040.html>. This patch moves nptl/semaphore.h to sysdeps/pthread/semaphore.h so that it can be found by builds from all glibc subdirectories; it's not in any way NPTL-specific. (I left the Makefile setting to install this header in nptl/, but maybe it should move as well - it's just not clear to me what ifeq ($(subdir),...) conditional should be used to select the directory to associate the header with for installation purposes. The path in the toplevel Makefile used for begin-end-check also remains hardcoded; it's a known todo issue to rework that test to run in each subdirectory checking the headers installed from that subdirectory, rather than a separate hardcoded list.) Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). I did *not* test a configuration such as that in which Carlos saw failure. * nptl/semaphore.h: Move to ... * sysdeps/pthread/semaphore.h: ... here. * Makefile (installed-headers): Change nptl/semaphore.h to sysdeps/pthread/semaphore.h.
2014-12-06Fix pthreads getrlimit, gettimeofday namespace (bug 17682).Joseph Myers
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.
2014-07-03Restore subdir conditional for tst-timer dependency.Siddhesh Poyarekar
2014-06-12Use list.h in posix-timer code.Roland McGrath
2014-06-12Get rid of nptl/sysdeps/pthread/ subdirectoryRoland McGrath
2014-02-10Use glibc_likely instead __builtin_expect.Ondřej Bílka
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-08-21Fix typos.Ondřej Bílka
2013-04-12BZ#15361: Make aio_fsync not check open modes.Roland McGrath
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2013-01-01Add script to update copyright notices and reformat some to facilitate its use.Joseph Myers
2012-10-29aio_notify: fix _POSIX_REALTIME_SIGNALS checkPino Toscano
Check that _POSIX_REALTIME_SIGNALS is greater than zero to assume realtime signals are supported, instead of any non-zero value (including -1).
2012-09-28aio_fsync: fix the access mode checkPino Toscano
Make use of O_ACCMODE and O_RDONLY instead of assuming details of the O_* flags.
2012-08-17Clean up definition of _LIBC_REENTRANT and _IO_MTSAFE_IO.Roland McGrath
2012-03-08Fix struct timespec normalization (as used in many other places).Thomas Schwinge
2012-02-27Add missing headersAndreas Schwab
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert
2011-08-23Fix nptl/tst-cancel17 and nptl/tst-cancelx17 with recent gcc.David S. Miller
2011-05-14Fix initialization of optimization values for AIOUlrich Drepper
2009-10-29Fix AIO when thread creation failed.Ulrich Drepper
Several bugs fixed when we needed to create a thread to work on AIO requests but failed and there is not one running.
2007-11-10* sysdeps/pthread/aio_misc.c (handle_fildes_io): Avoid unnecessaryUlrich Drepper
complications for 64-bit platforms.
2006-01-06* rt/Makefile (tests): Add tst-aio9 and tst-aio10.Ulrich Drepper
* rt/tst-aio10.c: New file.
2006-01-06* sysdeps/pthread/aio_misc.h [!DONT_USE_BOOTSTRAP_MAP]Ulrich Drepper
(struct waitlist): Don't add cond. * sysdeps/pthread/aio_notify.c [!DONT_USE_BOOTSTRAP_MAP] (__aio_notify): Use AIO_MISC_NOTIFY instead of pthread_cond_signal. * sysdeps/pthread/aio_suspend.c [!DONT_USE_BOOTSTRAP_MAP]: Don't use condvar, use AIO_MISC_WAIT. * sysdeps/pthread/lio_listio.c: Likewise. * rt/Makefile (tests): Add aio_suspend. * rt/tst-aio9.c: New file.
2006-01-04* sysdeps/powerpc/powerpc32/sysdep.h (ENTRY, EALIGN): Add cfi_startprocUlrich Drepper
directive to ENTRY macros. (END): Add cfi_endproc directive to END macro. * sysdeps/powerpc/powerpc64/sysdep.h (ENTRY, EALIGN): Add cfi_startproc directive to ENTRY macros. (END, END_GEN_TB): Add cfi_endproc directive to END macros. * sysdeps/powerpc/powerpc32/dl-start.S: Remove ENTRY()s for _dl_start_user and _dl_main_dispatch. * sysdeps/powerpc/powerpc32/fpu/fprrest.S: Use END macro. * sysdeps/powerpc/powerpc32/fpu/fprsave.S: Use Likewise. * sysdeps/powerpc/powerpc32/gprrest0.S: Likewise. * sysdeps/powerpc/powerpc32/gprrest1.S: Likewise. * sysdeps/powerpc/powerpc32/gprsave0.S: Likewise. * sysdeps/powerpc/powerpc32/gprsave1.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S: Remove redundant cfi_startproc and cfi_endproc. * sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S: Likewise. 2006-01-04 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/aio_misc.h (struct waitlist): Add result member. * sysdeps/pthread/aio_notify.c (__aio_notify): For synchronous waiters, failed I/O, and a result pointer, set value to -1. * sysdeps/pthread/aio_suspend.c: Initialize result pointer to NULL. * sysdeps/pthread/lio_listio.c: For LIO_WAIT, point result pointer in wait list to local variable result. If nonzero afterwards, set errno to EIO. For LIO_NOWAIT set result to NULL. * rt/Makefile (tests): Add tst-aio8. * rt/tst-aio8.c: New file.
2006-01-03lio_listio should emit an event for each individual request inUlrich Drepper
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.
2005-12-21* elf/cache.c: Use <> rather than "" #includes.Roland McGrath
* elf/chroot_canon.c: Likewise. * elf/dl-lookup.c: Likewise. * elf/ldconfig.c: Likewise. * elf/readlib.c: Likewise. * elf/rtld.c: Likewise. * gmon/mcount.c: Likewise. * hurd/hurdfault.c: Likewise. * hurd/hurdsig.c: Likewise. * hurd/report-wait.c: Likewise. * hurd/sigunwind.c: Likewise. * mach/setup-thread.c: Likewise. * rt/aio_read64.c: Likewise. * rt/aio_sigqueue.c: Likewise. * rt/aio_write64.c: Likewise. * soft-fp/soft-fp.h: Likewise. * stdio-common/tmpfile64.c: Likewise. * sysdeps/mach/hurd/fork.c: Likewise. * sysdeps/mach/hurd/hppa/trampoline.c: Likewise. * sysdeps/mach/hurd/i386/trampoline.c: Likewise. * sysdeps/mach/hurd/mips/trampoline.c: Likewise. * sysdeps/mach/hurd/powerpc/trampoline.c: Likewise. * sysdeps/posix/sprofil.c: Likewise. * sysdeps/pthread/aio_cancel.c: Likewise. * sysdeps/pthread/aio_fsync.c: Likewise. * sysdeps/pthread/aio_read64.c: Likewise. * sysdeps/pthread/aio_read.c: Likewise. * sysdeps/pthread/aio_suspend.c: Likewise. * sysdeps/pthread/aio_write64.c: Likewise. * sysdeps/pthread/aio_write.c: Likewise. * sysdeps/pthread/lio_listio64.c: Likewise. * sysdeps/pthread/lio_listio.c: Likewise. * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. * sysdeps/unix/sysv/tcflow.c: Likewise.
2005-11-06* malloc/malloc.c (munmap_chunk): Add sanity checks.Ulrich Drepper
* sysdeps/pthread/configure: Fix comment.
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper
2007-07-122.5-18.1Jakub Jelinek
2004-08-11* sysdeps/pthread/aio_misc.c (handle_fildes_io): Remove noreturnRoland McGrath
attribute. Return NULL instead of calling pthread_exit at the end.
2004-05-26Update.Ulrich Drepper
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-14Update.Ulrich Drepper
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.
2003-07-25Update.Ulrich Drepper
2003-07-24 Jakub Jelinek <jakub@redhat.com> * sysdeps/pthread/aio_cancel.c (aio_cancel): Return AIO_ALLDONE if aiocbp != NULL and has already completed. Return -1/EINVAL if aiocbp->aio_fildes does not match fildes.
2003-07-23Update.Ulrich Drepper
2003-07-23 Jakub Jelinek <jakub@redhat.com> * sysdeps/pthread/lio_listio.c (LIO_OPCODE_BASE): Define. (lio_listio): Use it. * sysdeps/pthread/lio_listio64.c: Include lio_listio.c instead of after few defines to avoid duplication.
2003-06-24Update.Ulrich Drepper
* sysdeps/pthread/aio_misc.h: Mark __aio_requests_mutex, __aio_enqueue_request, __aio_find_req, __aio_find_req_fd, __aio_free_request, __aio_notify, and __aio_sigqueue as hidden. * sysdeps/pthread/aio_suspend.c (aio_suspend): Set errno to the result of pthread_cond_wait if there was an error. Use pthread_cleanup_* instead of __lbic_cleanup_region_*.
2003-06-23Update.Ulrich Drepper
2003-06-23 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/aio_suspend.c (aio_suspend): Set errno to EINTR if this is what pthread_cond_wait returned.
2003-06-17Update.Ulrich Drepper
* sysdeps/unix/clock_nanosleep.c (clock_nanosleep): nanosleep takes care of enabling cancellation. * sysdeps/pthread/aio_suspend.c (aio_suspend): Make aio_suspend cancelable. It's not correct to disable cancellation. Instead of a cleanup handler.
2003-05-10Update.Ulrich Drepper
2003-05-09 Thorsten Kukuk <kukuk@suse.de> * sysdeps/unix/sysv/linux/netinet/igmp.h: Don't include kernel headers, add defines from kernel header, move it from here... * inet/netinet/igmp.h: ... to here. * inet/Makefile (headers): Add netinet/igmp.h. * sysdeps/unix/sysv/linux/Makefile: Remove netinet/igmp.h. * sysdeps/unix/sysv/linux/Dist: Remove netinet/igmp.h. 2003-05-10 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/lio_listio64.c (lio_listio64): If SIG == NULL, use dummy sigevent structure with SIGEV_NONE [PR libc/5015]. 2003-05-09 Thorsten Kukuk <kukuk@suse.de> * libio/bits/stdio.h: Sync prototypes with libio/stdio.h (remove __THROW from possible cancellation points).
2003-01-03Update.Ulrich Drepper
* sysdeps/pthread/aio_suspend.c (aio_suspend): Don't quite remove any, but unify the test.
2003-01-03Update.Ulrich Drepper
2003-01-02 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/aio_suspend.c (aio_suspend): Simplify by removing 'any' variable.
2002-12-09* sysdeps/pthread/aio_notify.c (notify_func_wrapper): Take a malloc'dRoland McGrath
struct containing function ptr and value, free it. (__aio_notify_only): Allocate that and copy values from SIGEV into it. It's not safe to let the new thread use the SIGEV pointer.
2002-11-01* include/libc-symbols.h (__libc_freeres_fn_section, libc_freeres_fn):Roland McGrath
New macros. * elf/dl-close.c (free_mem): Use libc_freeres_fn macro, remove text_set_element. * elf/dl-libc.c (free_mem): Likewise. * iconv/gconv_conf.c (free_mem): Likewise. * iconv/gconv_db.c (free_mem): Likewise. * iconv/gconv_dl.c (free_mem): Likewise. * iconv/gconv_cache.c (free_mem): Likewise. * intl/finddomain.c (free_mem): Likewise. * intl/dcigettext.c (free_mem): Likewise. * locale/setlocale.c (free_mem): Likewise. * misc/fstab.c (fstab_free): Likewise. * nss/nsswitch.c (free_mem): Likewise. * posix/regcomp.c (free_mem): Likewise. * resolv/gai_misc.c (free_res): Likewise. * stdlib/fmtmsg.c (free_mem): Likewise. * sunrpc/clnt_perr.c (free_mem): Likewise. * sysdeps/generic/setenv.c (free_mem): Likewise. * sysdeps/unix/sysv/linux/shm_open.c (freeit): Likewise. * sysdeps/pthread/aio_misc.c (free_res): Likewise. * time/tzset.c (free_mem): Likewise. * malloc/mtrace.c (release_libc_mem): Add __libc_freeres_fn_section. * locale/loadarchive.c (_nl_archive_subfreeres): Likewise. * malloc/set-freeres.c (__libc_freeres): Likewise. * login/getutent.c: Include stdlib.h instead of stddef.h. (buffer): Change into pointer to utmp, add libc_freeres_ptr. (__getutent): Allocate buffer the first time it is run. * login/getutid.c: Include stdlib.h instead of stddef.h. (buffer): Change into pointer to utmp, add libc_freeres_ptr. (__getutid): Allocate buffer the first time it is run. * login/getutline.c: Include stdlib.h instead of stddef.h. (buffer): Change into pointer to utmp, add libc_freeres_ptr. (__getutline): Allocate buffer the first time it is run. * malloc/mtrace.c (malloc_trace_buffer): Change into char *. (mtrace): Allocate malloc_trace_buffer. * resolv/nsap_addr.c (inet_nsap_ntoa): Decrease size of tmpbuf. * resolv/ns_print.c (ns_sprintrrf): Decrease size of t. * string/strerror.c: Include libintl.h and errno.h. (buf): New variable. (strerror): Only allocate buffer if actually needed (unknown error). * time/tzfile.c (transitions): Add libc_freeres_ptr. (freeres): Remove. 2002-10-25 Jakub Jelinek <jakub@redhat.com> * include/libc-symbols.h (libc_freeres_ptr): New macro. * malloc/set-freeres.c (__libc_freeres_ptrs): Define using symbol_set_define. (__libc_freeres): Free all pointers in that section. * Makerules (build-shlib): Add $(LDSEDCMD-$(@F:lib%.so=%).so) to sed commands when creating .lds script. (LDSEDCMD-c.so): New variable. * inet/rcmd.c (ahostbuf): Change into char *. Add libc_freeres_ptr. (rcmd_af): Use strdup to allocate ahostbuf. * inet/rexec.c (ahostbuf): Change into char *. Add libc_freeres_ptr. (rexec_af): Use strdup to allocate ahostbuf. * stdio-common/reg-printf.c (printf_funcs): Remove. (__printf_arginfo_table): Change into printf_arginfo_function **. Add libc_freeres_ptr. (__register_printf_function): Allocate __printf_arginfo_table and __printf_function_table the first time it is called. * stdio-common/printf-parse.h (__printf_arginfo_table): Change into printf_arginfo_function **. (parse_one_spec): Add __builtin_expect. * grp/fgetgrent.c (buffer): Add libc_freeres_ptr. (free_mem): Remove. * inet/getnetgrent.c (buffer): Add libc_freeres_ptr. (free_mem): Remove. * intl/localealias.c (libc_freeres_ptr): Define if !_LIBC. (string_space, map): Add libc_freeres_ptr. (free_mem): Remove. * misc/efgcvt.c (FCVT_BUFPTR): Add libc_freeres_ptr. (free_mem): Remove. * misc/mntent.c (getmntent_buffer): Add libc_freeres_ptr. (free_mem): Remove. * crypt/md5-crypt.c (libc_freeres_ptr): Define if !_LIBC. (buffer): Add libc_freeres_ptr. (free_mem): Remove for _LIBC. * nss/getXXbyYY.c (buffer): Add libc_freeres_ptr. (free_mem): Remove. * nss/getXXent.c (buffer): Add libc_freeres_ptr. (free_mem): Remove. * pwd/fgetpwent.c (buffer): Add libc_freeres_ptr. (free_mem): Remove. * resolv/res_hconf.c (ifaddrs): Add libc_freeres_ptr. (free_mem): Remove. * shadow/fgetspent.c (buffer): Add libc_freeres_ptr. (free_mem): Remove. * sysdeps/posix/ttyname.c (getttyname_name): Add libc_freeres_ptr. (free_mem): Remove. * sysdeps/unix/sysv/linux/getsysstats.c (mount_proc): Add libc_freeres_ptr. (free_mem): Remove. * sysdeps/unix/sysv/linux/ttyname.c (getttyname_name, ttyname_buf): Add libc_freeres_ptr. (free_mem): Remove. 2002-10-30 Jakub Jelinek <jakub@redhat.com> * malloc/obstack.c [_LIBC] (obstack_free): Change into strong_alias instead of duplicating the whole function in libc.