about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* ia64: sigaction.h: fix sa_flags orderingMike Frysinger2015-07-232-1/+6
| | | | | | | Since ia64 is little endian, sa_flags has to come before the padding when splitting it from 64bits to 32bits. Reported-by: Joseph Myers <joseph@codesourcery.com>
* Also use l_tls_dtor_count to decide on object unload (BZ #18657)Siddhesh Poyarekar2015-07-238-36/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an TLS destructor is registered, we set the DF_1_NODELETE flag to signal that the object should not be destroyed. We then clear the DF_1_NODELETE flag when all destructors are called, which is wrong - the flag could have been set by other means too. This patch replaces this use of the flag by using l_tls_dtor_count directly to determine whether it is safe to unload the object. This change has the added advantage of eliminating the lock taking when calling the destructors, which could result in a deadlock. The patch also fixes the test case tst-tls-atexit - it was making an invalid dlclose call, which would just return an error silently. I have also added a detailed note on concurrency which also aims to justify why I chose the semantics I chose for accesses to l_tls_dtor_count. Thanks to Torvald for his help in getting me started on this and (literally) teaching my how to approach the problem. Change verified on x86_64; the test suite does not show any regressions due to the patch. ChangeLog: [BZ #18657] * elf/dl-close.c (_dl_close_worker): Don't unload DSO if there are pending TLS destructor calls. * include/link.h (struct link_map): Add concurrency note for L_TLS_DTOR_COUNT. * stdlib/cxa_thread_atexit_impl.c (__cxa_thread_atexit_impl): Don't touch the link map flag. Atomically increment l_tls_dtor_count. (__call_tls_dtors): Atomically decrement l_tls_dtor_count. Avoid taking the load lock and don't touch the link map flag. * stdlib/tst-tls-atexit-nodelete.c: New test case. * stdlib/Makefile (tests): Use it. * stdlib/tst-tls-atexit.c (do_test): dlopen tst-tls-atexit-lib.so again before dlclose. Add conditionals to allow tst-tls-atexit-nodelete test case to use it.
* ia64: msg.h: fix msg_qnum/msg_qbytes typesMike Frysinger2015-07-212-4/+18
| | | | | These two fields have dedicated types, so change the ia64 header to match all the other arches. This fixes the conform test for msg.h.
* ia64: stat.h: rename pad0 to __glibc_reserved0Mike Frysinger2015-07-212-2/+8
| | | | | This fixes the conform test for the stat.h header and makes it match all the other arches.
* ia64: sifaction.h: change sa_flags to an intMike Frysinger2015-07-212-1/+8
| | | | | This fixes the conform test for the sigaction.h header and makes it match all the other arches.
* ia64: siginfo.h: delete siginfo nameMike Frysinger2015-07-212-1/+6
| | | | | This fixes the conform test for the siginfo.h header and makes it match all the other arches.
* NaCl: Use only nacl_irt_dev_filename, never nacl_irt_filename.Roland McGrath2015-07-214-4/+7
|
* Add abilist files and NEWS item for arm-nacl port.Roland McGrath2015-07-2112-0/+2538
|
* tile: Fix BZ #18508 (makecontext yield infinite backtrace)Chris Metcalf2015-07-213-4/+13
| | | | | | | | | | | | | | | It turns out tile suffered from the same problem as S390. However, disabling CFI information for the __startcontext on tile was not sufficient to fix the problem; I think the backtracer will just blindly try to follow the link register (lr) in that case. Instead, the change adds a cfi_undefined directive for "lr" and then arranges to call __startcontext directly when the new context starts, rather than just synthesizing a return to it. In addition to being a bit easier now to understand the control flow, this also allows the cfi_undefined directive to be placed in a way that causes it to be in force at the address that the "lr" from the called function points to.
* locale: Remove obsolete repertoire map referencesMarko Myllynen2015-07-2184-96/+87
| | | | | | | | repertoire maps and character mnemonics were used early in the glibc i18n/l10n effort but were quickly deprecated in favor of Unicode code points. According to ChangeLog, the in-tree repertoire maps were removed 2000-07-07 but some stray references remain even today. The patch below removes them.
* locale: Do not define lang_ab for tcy_IN and bhb_INKhem Raj2015-07-213-2/+8
| | | | | | | | | After renaming localedef now complains and build fails LC_ADDRESS: field `lang_ab' must not be defined earlier the names were similar to lang_ab definitions 'tu' or 'bh' but after rename they are not.
* Reflect renaming of bh_IN and tu_IN in SUPPORTED file [BZ #17475]Khem Raj2015-07-204-6/+17
|
* sparc: fix sigaction for 32bit builds [BZ #18694]Mike Frysinger2015-07-203-1/+16
| | | | | | | | | | | Commit a059d359d86130b5fa74e04a978c8523a0293f77 changed the sigaction struct to pass conform tests, but it ended up also changing the ABI for 32 bit builds. For 64 bit builds, changing the long to two ints works, but for 32 bit builds, it inserts 4 extra bytes. This leads to many packages randomly failing like bash that spews things like: configure: line 471: wait_for: No record of process 0 Bracket the new member by a wordsize check to fix the ABI for 32bit.
* Remove Linuxism from tst-tls-atexitSiddhesh Poyarekar2015-07-213-43/+64
| | | | | | | | | | | | | | | | | | | | | | The tst-tls-atexit test case searches for its module in /proc/PID/maps to verify that it is unloaded, which is a Linux-specific test. This patch makes the test generic by looking for the library in the link map list in the _r_debug structure. Verified that the test continues to succeed on x86_64. There is a bug in the test case where it calls dlclose once again, which is actually incorrect but still manages to unload the DSO thanks to an existing bug in __tls_call_dtors. This will be fixed in a later patch which also fixes up the __cxa_thread_atexit_impl implementation. I have added a FIXME comment to that call momentarily, which I will remove when I fix the problem. * stdlib/tst-tls-atexit-lib.c (do_foo): Rename to reg_dtor. * stdlib/tst-tls-atexit.c: (is_loaded): New function. (spawn_thread): New function. (load): Rename to reg_dtor_and_close. Move dlopen to... (do_test): ... here. Use IS_LOADED to test for its availability.
* m68k: update libm test ULPsAndreas Schwab2015-07-212-133/+315
|
* tst-leaks: raise timeout to 5 secondsChris Metcalf2015-07-202-0/+5
| | | | | This test takes about 2.3 seconds on my tilegx system, and so times out. Bump it up to 5 seconds instead.
* Add si_addr_bnd to _sigfault in x86 struct siginfoH.J. Lu2015-07-203-1/+16
| | | | | | | | | | | | | | | | | | | | | | X86 struct siginfo in kernel 3.19 has been changed by commit ee1b58d36aa1b5a79eaba11f5c3633c88231da83 Author: Qiaowei Ren <qiaowei.ren@intel.com> Date: Fri Nov 14 07:18:19 2014 -0800 mpx: Extend siginfo structure to include bound violation information This patch adds new fields about bound violation into siginfo structure. si_lower and si_upper are respectively lower bound and upper bound when bound violation is caused. This patch updates x86 struct siginfo to enable GDB with MPX support. [BZ #18696] * sysdeps/unix/sysv/linux/x86/bits/siginfo.h (_sigfault): Add si_addr_bnd. (si_lower): New. (si_upper): Likewise.
* Regenerate SPARC ULPs.David S. Miller2015-07-162-239/+393
| | | | * sysdeps/sparc/fpu/libm-test-ulps: Regenerated.
* libio: Fix fmemopen 'w' mode with provided bufferAdhemerval Zanella2015-07-163-5/+12
| | | | | | | | | | | | | If 'w' mode is used with a provided buffer the fmemopen will try to find the first null byte to set as maximum internal stream size. It should be done only for append mode ('a'). Kudos for Stefan Liebler for finding this error on s390-32. * libio/fmemopen.c (__fmemopen): Fix 'w' openmode with provided buffer. * stdio-common/tst-fmemopen2.c (do_test_with_buffer): Fix typo and fail output information.
* powerpc: strstr optimizationRajalakshmi Srinivasaraghavan2015-07-167-1/+636
| | | | | | | | | | | | | | | | This patch optimizes strstr function for power >= 7 systems. Performance gain is obtained using aligned memory access and usage of cmpb instruction for quicker comparison. The average improvement of this optimization is ~40%. Tested on ppc64 and ppc64le. 2015-07-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> * sysdeps/powerpc/powerpc64/multiarch/Makefile: Add strstr(). * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise. * sysdeps/powerpc/powerpc64/power7/strstr.S: New File. * sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S: New File. * sysdeps/powerpc/powerpc64/multiarch/strstr-ppc64.c: New File. * sysdeps/powerpc/powerpc64/multiarch/strstr.c: New File.
* hppa/ia64: _dl_unmap: make it hiddenMike Frysinger2015-07-165-4/+11
| | | | | | | This symbol is only used by DL_UNMAP which in turn is only used by _dl_close_worker in dl-close.c, and _dl_close_worker itself is marked hidden as it is only used by the ldso. That means _dl_unmap should be marked hidden. Without this, the elf/check-localplt test fails.
* hppa/ia64: _dl_symbol_address: add PLT bypass for rtldMike Frysinger2015-07-164-0/+10
| | | | | | | | | | This symbol is defined in the ldso, and is used both there and libc.so. There is no hidden symbol for it though which leads to relocations in the ldso and the elf/check-localplt test failing. Add a hidden def for rtld to fix all of that. This function/file is only used by hppa & ia64, so no testing is needed for other arches.
* Add comment to clarify how the test can failSiddhesh Poyarekar2015-07-162-0/+5
|
* Whitespace fixup in cxa_thread_atexit_impl.cSiddhesh Poyarekar2015-07-162-1/+3
|
* Set NODELETE flag when opening already open objects with RTLD_NODELETESiddhesh Poyarekar2015-07-166-8/+106
| | | | | | | | | | | | | | | | The DF_1_NODELETE flag is set too late when opening a DSO, due to which, if a DSO is already open, subsequently opening it with RTLD_NODELETE fails to set the DF_1_NODELETE flag. This patch fixes this by setting the flag immediately after bumping the opencount. Verified on x86_64. [BZ #18676] * elf/tst-nodelete-opened.c: New test case. * elf/tst-nodelete-opened-lib.c: New test case module. * elf/Makefile (tests, modules-names): Use them. * elf/dl-open.c (dl_open_worker): Set DF_1_NODELETE flag early.
* Fix sparc build.David S. Miller2015-07-156-2/+23
| | | | | | | | | | * sysdeps/sparc/nptl/pthread_barrier_init.c: Include futex-intenal.h * sysdeps/sparc/sparc32/sparcv9/Makefile (nscd): Add cpu_relax. * sysdeps/sparc/sparc64/Makefile: Likewise. * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h (atomic_spin_nop): Remove space from macro define. * sysdeps/sparc/sparc64/bits/atomic.h (atomic_spin_nop): Likewise.
* Sort NEWSH.J. Lu2015-07-151-3/+3
|
* Correcting language code for Bhili and Tulu locales (bug 17475)Pravin Satpute2015-07-156-41/+53
| | | | | | | | | | | | | | | | | | | | | | | | Bhili [1] and Tulu [2] language does not have iso-639-1 codes. Patch moves locale file with correct code and also fix iso-639.def. 1. http://www-01.sil.org/iso639-3/documentation.asp?id=bhb 2. http://www-01.sil.org/iso639-3/documentation.asp?id=tcy localedata/ChangeLog: 2015-07-02 Pravin Satpute <psatpute@redhat.com> [BZ #17475] * locales/tu_IN: renamed to tcy_IN * locales/bh_IN: renamed to bhb_IN Changelog: 2015-03-05 Pravin Satpute <psatpute@redhat.com> [BZ #17475] * locale/iso-639.def: Update Bhili and Tulu language codes as per iso639-3.
* Modify several tests to use test-skeleton.cArjun Shankar2015-07-159-16/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These tests were skipped by the use-test-skeleton conversion done in commit 29955b5d because they were reused in other tests via the #include directive, and so deemed worth an inspection before they were modified. This has now been done. ChangeLog: 2015-07-09 Arjun Shankar <arjun.is@lostca.se> * elf/tst-leaks1.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c. * localedata/tst-langinfo.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c. * math/test-fpucw.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c. * math/test-tgmath.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c. * math/test-tgmath2.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c. * setjmp/tst-setjmp.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c. * stdio-common/tst-sscanf.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c. * sysdeps/x86_64/tst-audit6.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c.
* Modify elf/tst-audit9.c to use test-skeleton.cArjun Shankar2015-07-152-1/+12
| | | | | | | | | | | | | | | This test was skipped by the use-test-skeleton conversion script [29955b5d] because the definition of `main' did not begin according to the GNU formatting style that the script assumed. ChangeLog: 2015-07-09 Arjun Shankar <arjun.is@lostca.se> * elf/tst-audit9.c (main): Converted to ... (do_test): ... this. (TEST_FUNCTION): New macro. Include test-skeleton.c.
* tst-tzset: raise timeout to 5 secondsMike Frysinger2015-07-152-0/+5
| | | | | This test is reliably taking 2.3 seconds on my system, and the default is 2 seconds, so it always times out. Bump it up to 5 seconds instead.
* i686: Mark stdlib/tst-makecontext as XFAIL.Stefan Liebler2015-07-152-0/+11
| | | | | | | | | | | The testcase stdlib/tst-makecontext fails on i686 because _Unwind_Backtrace from libgcc produces a segmentation fault if it was called within a context created by makecontext. See Bug 18635. ChangeLog: * sysdeps/i386/i686/Makefile (test-xfail-tst-makecontext): New variable.
* S390: Regenerate ULPsStefan Liebler2015-07-152-28/+32
| | | | | | | | I've regenerated the ulps for s390 from scratch. ChangeLog: * sysdeps/s390/fpu/libm-test-ulps: Regenerated.
* Factor file identity rules out of generic rtld code.Roland McGrath2015-07-146-12/+125
|
* Fix up typo in tst-tls-atexitSiddhesh Poyarekar2015-07-142-1/+5
|
* Avoid C++ tests when the C++ cannot be linkedAdhemerval Zanella2015-07-143-5/+15
| | | | | | | | | * elf/Makefile [ifeq (yes,$(build-shared)) (tests)] (tst-nodelete): Add iff $CXX is set. [ifeq (yes,$(build-shared)) (modules-names)] (tst-nodelete-rtldmod): Likewise. (tst-nodelete-zmodiff): Likewise. * nptl/Makefile [[ifeq (,$(CXX))] (tests-unsupported)]: Add tst-once5.
* Fix up ChangeLogSiddhesh Poyarekar2015-07-141-1/+1
|
* Whitespace fix in tst-tls-atexit.cSiddhesh Poyarekar2015-07-142-1/+5
|
* Add AArch64 versions of math_opt_barrier and math_force_eval that avoid ↵Wilco Dijkstra2015-07-132-0/+11
| | | | going via memory.
* Optimize the strlen implementation by using a page cross check and a fast checkWilco Dijkstra2015-07-132-65/+169
| | | | | | for nul bytes which reverts to separate loop when a non-ASCII char is encountered. Speedup on test-strlen is ~10%, long ASCII strings are processed ~60% faster, and on random tests it is ~80% better.
* Replace %ld with %jd and cast to intmax_tH.J. Lu2015-07-112-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | On x32, GCC 5.1 complains: tst-fmemopen2.c: In function ‘do_test_without_buffer’: tst-fmemopen2.c:124:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: first ftello returned %ld, expected %zu\n", o, nstr); ^ tst-fmemopen2.c:135:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: second ftello returned %ld, expected %zu\n", o, nbuf); ^ tst-fmemopen2.c:148:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: third ftello returned %ld, expected %zu\n", o, nstr2); ^ tst-fmemopen2.c: In function ‘do_test_length_zero’: tst-fmemopen2.c:183:15: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘off_t {aka long long int}’ [-Werror=format=] printf ("FAIL: first ftello returned %ld, expected 0\n", o); ^ This patch silences GCC. * stdio-common/tst-fmemopen2.c (do_test_without_buffer): Replace %ld with %jd and cast to intmax_t. (do_test_length_zero): Likewise.
* NaCl: Make pthread_condattr_setclock reject CLOCK_MONOTONIC.Roland McGrath2015-07-102-0/+46
|
* tile: Regenerate ULPs.Chris Metcalf2015-07-102-89/+96
| | | | Regenerated from scratch on tilegx.
* math/test-fenvinline: avoid compiler warningChris Metcalf2015-07-102-2/+7
| | | | | | | | On tile (and any other machine with no FP exceptions) the feenable_test() function will generate a "function defined but not used" warning because all of the callers are commented out. We already were ifdef'ing out the body of the function, so instead just ifdef out the entire function if FE_ALL_EXCEPT == 0.
* Remove unnecessary mutex locks from tst-tls-atexit test caseSiddhesh Poyarekar2015-07-102-3/+3
| | | | | | The locks don't synchronize with anything - they were likely introduced initially to synchronize with some main thread code, but that is no longer evident.
* Avoid boolean coercion in tst-tls-atexit test caseSiddhesh Poyarekar2015-07-102-2/+6
|
* Clean up semaphore EINTR handling after Linux futex docs clarification.Torvald Riegel2015-07-102-30/+12
| | | | | | | The Linux kernel futex documentation now states that since Linux 2.6.22, FUTEX_WAIT does return EINTR only when interrupted by a signal, and not spuriously anymore. We only support more recent kernels, so clean up EINTR handling in the semaphore and update the comments.
* Add and use new glibc-internal futex API.Torvald Riegel2015-07-1040-492/+963
| | | | | | | | | | | | | | | | | | | | This adds new functions for futex operations, starting with wait, abstimed_wait, reltimed_wait, wake. They add documentation and error checking according to the current draft of the Linux kernel futex manpage. Waiting with absolute or relative timeouts is split into separate functions. This allows for removing a few cases of code duplication in pthreads code, which uses absolute timeouts; also, it allows us to put platform-specific code to go from an absolute to a relative timeout into the platform-specific futex abstractions.. Futex operations that can be canceled are also split out into separate functions suffixed by "_cancelable". There are separate versions for both Linux and NaCl; while they currently differ only slightly, my expectation is that the separate versions of lowlevellock-futex.h will eventually be merged into futex-internal.h when we get to move the lll_ functions over to the new futex API.
* The patch committed to fix bug #18435 caused regressions on aarch64Martin Sebor2015-07-094-6/+28
| | | | | | | | | | | | | and also powerpc64 and powerpc64le. See the discussion in the thread below for details. This change reverts the problematic bits leaving the added test in place and marking XFAIL in anticipation of fixing the bug in the near future. https://sourceware.org/ml/libc-alpha/2015-07/msg00141.html [BZ #18435] * nptl/pthreadP.h (pthread_cleanup_push, pthread_cleanup_pop): Revert commit ed225df3ad9cbac3c22ec3f0fbbed1f9c61d1c54. * nptl/Makefile (test-xfail-tst-once5): Define.
* Provide __libc_fatal for rtld.Roland McGrath2015-07-093-17/+29
|