about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH 1/6] Split x86_64 out of main Linux kernel-features.h.Joseph Myers2014-07-173-9/+52
| | | | | | | | | | | | | | | | | This patch splits x86_64 out of the main Linux kernel-features.h. Tested x86_64 that there are no changes to disassembly of installed shared libraries. * sysdeps/unix/sysv/linux/x86_64/kernel-features.h: New file. * sysdeps/unix/sysv/linux/kernel-features.h [__x86_64__] (__ASSUME_ACCEPT4_SYSCALL): Do not define. [__LINUX_KERNEL_VERSION >= 0x020621 && __x86_64__] (__ASSUME_RECVMMSG_SYSCALL): Likewise. [__LINUX_KERNEL_VERSION >= 0x030000 && __x86_64__] (__ASSUME_SENDMMSG_SYSCALL): Likewise. [__x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_GETCPU_SYSCALL): Likewise.
* Refactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac.Joseph Myers2014-07-1718-132/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch continues removing architecture-specific cases from non-architecture-specific files by moving the logic to use directories such as /lib64 out of sysdeps/gnu/configure.ac. A new macro LIBC_SLIBDIR_RTLDDIR is created that sysdeps configure scripts can use to declare the library directories to be used; the logic was previously duplicated in configure fragments for aarch64, mips and x32 as well as in sysdeps/gnu/configure.ac. This macro is used directly in sysdeps/gnu/configure.ac only to provide the /lib default (the logic saying that with --prefix=/usr shared libraries go in /lib not /usr/lib); the architecture cases formerly there are moved into various new or existing configure.ac files. The new macro is also used in the various architecture fragments that already had such logic. In the x32 there was previously a configure fragment, but it was a directly written one without a .ac file; now a .ac file is used there instead to generate configure. Tested x86_64 that the installed shared libraries, and the directory structure of the installation, are unchanged by this patch. There is an old bug report - bug 6441 - about library directories changing after reconfiguring. If this is still applicable - and I haven't attempted to confirm it or review the old patch pointed to in that bug - then this patch should reduce the number of places needing changing in any fix. * aclocal.m4 (LIBC_SLIBDIR_RTLDDIR): New macro. * sysdeps/gnu/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. Remove cases for individual architectures. * sysdeps/gnu/configure: Regenerated. * sysdeps/unix/sysv/linux/aarch64/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. * sysdeps/unix/sysv/linux/aarch64/configure: Regenerated. * sysdeps/unix/sysv/linux/mips/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. * sysdeps/unix/sysv/linux/mips/configure: Regenerated. * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure: Regenerated. * sysdeps/unix/sysv/linux/s390/s390-64/configure.ac: New file. * sysdeps/unix/sysv/linux/s390/s390-64/configure: New generated file. * sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/configure: New generated file. * sysdeps/unix/sysv/linux/x86_64/64/configure.ac: New file. * sysdeps/unix/sysv/linux/x86_64/64/configure: New generated file. * sysdeps/unix/sysv/linux/x86_64/x32/configure.ac: New file. * sysdeps/unix/sysv/linux/x86_64/x32/configure: Generate.
* Move architecture shlib-versions files to Linux-specific directories.Joseph Myers2014-07-1718-17/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various architectures have files such as sysdeps/<arch>/shlib-versions whose contents are in fact entirely Linux-specific, relating only to the symbol / shared library versions for the port to Linux on that architecture, when any future port to a different OS on that architecture would use the symbol version of the glibc release it goes in, as standard for new ports. This patch moves such files under sysdeps/unix/sysv/linux/, merging in the contents of sysdeps/<arch>/nptl/shlib-versions in the process. The only bits not moved are those relating to libgcc_s versions, which don't appear OS-specific in the same way that glibc's symbol versions so. It deliberately does not change the regular expressions given for matching configurations in each file; some match only Linux although not Linux-specific, or match other OSes although Linux-specific. It is with a view to at least the following further cleanups: * Move architecture-specific content from the toplevel shlib-versions and nptl/shlib-versions into sysdeps shlib-versions files, so eliminating another difference between ex-ports and non-ex-ports architectures. * Likewise, for OS-specific content in shlib-versions files. * At that point, the first field in shlib-versions files (the regular expression matching a configuration triplet) should be redundant, so eliminate that field and leave shlib-versions selection working purely on a sysdeps basis (with limited use of %ifdef in shlib-versions files when needed) rather than having its own separate mechanism to select what configuration information is relevant. * Move the build of gnu/lib-names.h to a similar mechanism to that used for gnu/stubs.h (each library build installing a version of the header specifically for that build), so we can eliminate the duplication of soname information in the makefiles and get it purely from shlib-versions files again. There may be other cleanups possible as well (in particular, I'm not sure that all cases where the same "Earliest symbol set" information is repeated for many different libraries actually should need to repeat it rather than specifying it just once for DEFAULT for the given configuration, and separately specifying any non-default choices of soname). Tested x86_64 that the installed shared libraries are unchanged by this patch. * sysdeps/aarch64/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/aarch64/shlib-versions: ... here. * sysdeps/alpha/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/alpha/shlib-versions: ... here. * sysdeps/arm/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/arm/shlib-versions: ... here. * sysdeps/hppa/shlib-versions: Move all contents except for libgcc_s entry to ... * sysdeps/unix/sysv/linux/hppa/shlib-versions: ... here. Merge in entry from ... * sysdeps/hppa/nptl/shlib-versions: ... here. Remove file. * sysdeps/ia64/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/ia64/shlib-versions: ... here. Merge in entry from ... * sysdeps/ia64/nptl/shlib-versions: ... here. Remove file. * sysdeps/m68k/coldfire/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: ... here. * sysdeps/microblaze/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/microblaze/shlib-versions: ... here. * sysdeps/mips/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/mips/shlib-versions: ... here. Merge in entry from ... * sysdeps/mips/nptl/shlib-versions: ... here. Remove file. * sysdeps/tile/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/tile/shlib-versions: ... here. * sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Merge in entry from ... * sysdeps/x86_64/64/shlib-versions: ... here. Remove file. * sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Merge in entry from ... * sysdeps/x86_64/x32/shlib-versions: ... here. Remove file.
* ARM: Fix compiler warnings from atomic.hWill Newton2014-07-172-3/+8
| | | | | | | | | | | | | | | | __arch_compare_and_exchange_bool_*_int return a boolean so in the dummy implementations for 8, 16 and 64 bits return zero rather than oldval. Zero is used rather than TRUE or FALSE to avoid needing to including any headers for these dummy functions. ChangeLog: 2014-07-17 Will Newton <will.newton@linaro.org> * sysdeps/arm/bits/atomic.h (__arch_compare_and_exchange_bool_8_int): Evaluate to zero. (__arch_compare_and_exchange_bool_16_int): Likewise. (__arch_compare_and_exchange_bool_64_int): Likewise.
* iconv/loop.c: Fix -Wundef warning with !_STRING_ARCH_unalignedWill Newton2014-07-172-30/+34
| | | | | | | | | | | | | | | | | | If code is required to handle the unaligned case then loop.c includes itself and relies on the #undefs at the end of the file to avoid outputting two copies of LOOPFCT and gconv_btowc. However MAX_NEEDED_INPUT is tested with #if so this causes a warning. Reorder the code so that the function definitions are in an #else block to make the behaviour clearer and fix the warning. Verified that code is unchanged on x86_64 and arm. ChangeLog: 2014-07-17 Will Newton <will.newton@linaro.org> * iconv/loop.c: Move definition of LOOPFCT and gconv_btowc into an #else block.
* ARM: Clean up EABI-related configuryRoland McGrath2014-07-167-53/+74
|
* Add generic/stub implementations of pthread_{kill,sigmask,sigqueue}.Roland McGrath2014-07-154-0/+111
|
* Separate Linuxisms from lowlevellock.h, make a generic oneRoland McGrath2014-07-154-0/+414
|
* Remove declarations of two nonexistent variables from nptl/pthreadP.h.Roland McGrath2014-07-152-5/+5
|
* Enable AVX2 optimized memset only if -mavx2 worksH.J. Lu2014-07-1410-14/+111
| | | | | | | | | | | | | | | | | * config.h.in (HAVE_AVX2_SUPPORT): New #undef. * sysdeps/i386/configure.ac: Set HAVE_AVX2_SUPPORT and config-cflags-avx2. * sysdeps/x86_64/configure.ac: Likewise. * sysdeps/i386/configure: Regenerated. * sysdeps/x86_64/configure: Likewise. * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add memset-avx2 only if config-cflags-avx2 is yes. * sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list): Tests for memset_chk and memset only if HAVE_AVX2_SUPPORT is defined. * sysdeps/x86_64/multiarch/memset.S: Define multiple versions only if HAVE_AVX2_SUPPORT is defined. * sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
* Correct DT_PPC64_NUMAlan Modra2014-07-143-2/+8
| | | | | | [BZ #17153] * elf/elf.h (DT_PPC64_NUM): Correct value. * NEWS: Add to fixed bug list.
* ChangeLog fixAndreas Schwab2014-07-141-1/+0
|
* regex: don't deref NULL upon heap allocation failureJim Meyering2014-07-132-0/+12
| | | | | | | | * posix/regcomp.c: (parse_dup_op): Handle duplicate_tree failure in one more place. To trigger the segfault, configure grep -with-included-regex, build it, and run these commands: ( ulimit -v 300000; echo a|src/grep -E a+++++++++++++++++++++ )
* m68k: update libm test ULPsAndreas Schwab2014-07-132-16/+92
|
* aarch64: Update libm-test-ulpsRichard Henderson2014-07-112-6/+124
|
* nptl: Fix abort in case of set*id failure [BZ #17135]Florian Weimer2014-07-118-6/+149
| | | | | | | | | | If a call to the set*id functions fails in a multi-threaded program, the abort introduced in commit 13f7fe35ae2b0ea55dc4b9628763aafdc8bdc30c was triggered. We address by checking that all calls to set*id on all threads give the same result, and only abort if we see success followed by failure (or vice versa).
* PowerPC: Fix build due missing lll_robust_trylockAdhemerval Zanella2014-07-102-2/+24
| | | | | | | Commit 887865f remove the lll_robust_trylock definition on all architectures, however for powerpc both __lll_trylock and __lll_cond_trylock were based on lll_robust_trylock definition. This patch restore it with a different name.
* ChangeLog fixup for last commit.Roland McGrath2014-07-101-0/+1
|
* Get rid of lll_robust_dead.Roland McGrath2014-07-1017-158/+21
|
* Get rid of lll_robust_trylock.Roland McGrath2014-07-1017-139/+25
|
* manual: Update the locale documentationFlorian Weimer2014-07-102-32/+127
|
* _nl_find_locale: Improve handling of crafted locale names [BZ #17137]Florian Weimer2014-07-106-15/+292
| | | | | Prevent directory traversal in locale-related environment variables (CVE-2014-0475).
* setlocale: Use the heap for the copy of the locale argumentFlorian Weimer2014-07-102-2/+17
| | | | This avoids alloca calls with potentially large arguments.
* Sync up error.c with gnulibSiddhesh Poyarekar2014-07-102-10/+103
| | | | | | | | | | | | | Summary of changes: - Use of !_LIBC instead of HAVE_CONFIG_H - Code changes in [!_LIBC] that don't affect us - Minor formatting changes - Use __builtin_expect in shared code - Define some macros in [_LIBC] that are used in gnulib but never defined in glibc - Flip macro check for STRERROR_R_CHAR_P so that it does not throw a warning
* Fix -Wundef warning for HAVE_LOCALTIME_RSiddhesh Poyarekar2014-07-102-0/+3
| | | | | Define it to 0. There is a gnulib copy for this, but it is out of sync with our copy.
* Fix Wundef warning for HAVE_STRFTIMESiddhesh Poyarekar2014-07-102-0/+3
| | | | Define it to 0
* Fix -Wundef warning for HAVE_SYS_PARAM_HSiddhesh Poyarekar2014-07-102-3/+3
| | | | Include sys/param.h unconditionally
* Fix -Wundef warning for HAVE_OBSTACKSiddhesh Poyarekar2014-07-102-5/+3
| | | | | | Remove the HAVE_OBSTACK macro check and include obstack check in include path order since we don't have a copy of obstack.h in the current directory.
* Fix crash when system has no ipv6 address [BZ #17125]Siddhesh Poyarekar2014-07-103-2/+13
| | | | | | | | | | | Here's an updated patch to fix the crash in bug-ga2 when the system has no configured ipv6 address. I have taken a different approach of using libc_freeres_fn instead of the libc_freeres_ptr since the former gives better control over what is freed; we need that since cache may or may not be allocated using malloc. Verified that bug-ga2 works correctly in both cases and does not have memory leaks in either of them.
* Get rid of sparc specific NPTL internaltypes.h header.David S. Miller2014-07-0913-8/+26
| | | | | | | | | | | | | | | | * sysdeps/sparc/nptl/internaltypes.h: Delete. * sysdeps/sparc/nptl/sparc-nptl.h: New file. * sysdeps/sparc/nptl/pthread_barrier_destroy.c: Include it. * sysdeps/sparc/nptl/pthread_barrier_init.c: Likewise. * sysdeps/sparc/nptl/pthread_barrier_wait.c: Likewise. * sysdeps/sparc/nptl/sem_init.c: Likewise. * sysdeps/sparc/nptl/sem_post.c: Likewise. * sysdeps/sparc/nptl/sem_timedwait.c: Likewise. * sysdeps/sparc/nptl/sem_wait.c: Likewise. * sysdeps/sparc/sparc32/nptl/pthread_barrier_wait.c: Likewise. * sysdeps/sparc/sparc32/nptl/sem_post.c: Likewise. * sysdeps/sparc/sparc32/nptl/sem_timedwait.c: Likewise. * sysdeps/sparc/sparc32/nptl/sem_wait.c: Likewise.
* Add comment about SIZE initialization in xdr.cSiddhesh Poyarekar2014-07-102-0/+7
|
* Update sparc ULPS.David S. Miller2014-07-092-6/+100
| | | | * sysdeps/sparc/fpu/libm-test-ulps: Update.
* Fix missing newline in test outputAndreas Schwab2014-07-093-2/+7
|
* Update i386 libm test ULPsAndreas Schwab2014-07-092-8/+36
|
* Fix -Wundef warnings for SHAREDWill Newton2014-07-096-5/+13
| | | | | | | | | | | | | | | | | The definition of SHARED is tested with #ifdef pretty much everywhere apart from these few places. The tlsdesc.c code seems to be copy and pasted to a few architectures and there is one instance in the hppa startup code. ChangeLog: 2014-07-09 Will Newton <will.newton@linaro.org> * sysdeps/aarch64/tlsdesc.c (_dl_unmap): Test SHARED with #ifdef. * sysdeps/arm/tlsdesc.c (_dl_unmap): Likewise. * sysdeps/i386/tlsdesc.c (_dl_unmap): Likewise. * sysdeps/x86_64/tlsdesc.c (_dl_unmap): Likewise. * sysdeps/hppa/start.S (_start): Likewise.
* Fix -Wmaybe-uninitialized warning in xdr.cSiddhesh Poyarekar2014-07-092-1/+3
| | | | | | | | | | While we're at fixing build warnings, here's one unnecessary warning that can be fixed fairly easily. The SIZE variable is never actually use uninitialized, but the compiler cannot make that out and thinks (correctly) that there is a potential for accessing SIZE without initializing it. Make this safe by initializing SIZE to 0. Tested on x86_64.
* Fix Wundef warning for __cplusplusSiddhesh Poyarekar2014-07-092-1/+6
| | | | | All current uses of the __cplusplus macro only check if it is defined or not. Fix this #if to use $ifdef like the rest of the code.
* Check value at resplen2 if it is not NULLSiddhesh Poyarekar2014-07-082-4/+8
| | | | | | | There was a typo in the previous patch due to which resplen2 was checked for non-zero instead of the value at resplen2. Fix that and improve the condition by checking resplen2 for non-NULL (instead of answerp2) and also adding the check in a third place.
* Fix Wundef warning for ELF_MACHINE_NO_REL on i386Siddhesh Poyarekar2014-07-082-0/+5
|
* PowerPC: Cleanup powerpc memmoveAdhemerval Zanella2014-07-086-25/+15
| | | | | | | Now that MEMCPY_OK_FOR_FWD_MEMMOVE should be define on memcopy.h there is no need to specialized powerpc memmove implementation. This patch moves the define set to powerpc memcopy and cleanup its definition on powerpc code.
* PowerPC: Fix compiler warningsAdhemerval Zanella2014-07-084-3/+12
| | | | | This patch fixes some compiler due trailing data in #undef directives and due missing prototypes.
* PowerPC: Add ifunc tests for memmoveAdhemerval Zanella2014-07-082-0/+11
| | | | | This patch add the missing ifunc tests definition for memmove ppc32 optimization patch (commit 07aedd7).
* Fix Wundef warning with SHOJI_IS_RIGHTSiddhesh Poyarekar2014-07-0818-468/+37
| | | | | The macro is not defined anywhere, so it looks like we're convinced that Shoji is wrong :)
* PowerPC: Align power7 memcpy using VSX to quadwordAdhemerval Zanella2014-07-073-20/+10
| | | | | | This patch changes power7 memcpy to use VSX instructions only when memory is aligned to quardword. It is to avoid unaligned kernel traps on non-cacheable memory (for instance, memory-mapped I/O).
* PowerPC: optimized memmove for POWER7/PPC32Adhemerval Zanella2014-07-075-1/+109
| | | | | This patch adds a optimized memmove for power7 by using the optimized power7 memcpy for forward copying.
* PowerPC: optimized memmove for POWER7/PPC64Adhemerval Zanella2014-07-0711-2/+1037
| | | | | | | | | | | This patch adds an optimized memmove optimization for POWER7/powerpc64. Basically the idea is to use the memcpy for POWER7 on non-overlapped memory regions and a optimized backward memcpy for memory regions that overlap (similar to the idea of string/memmove.c). The backward memcpy algorithm used is similar the one use for memcpy for POWER7, with adjustments done for alignment. The difference is memory is always aligned to 16 bytes before using VSX/altivec instructions.
* PowerPC: memmove default implementation cleanupAdhemerval Zanella2014-07-072-97/+5
| | | | | | | | This patch removes the powerpc specific logic in memmove and instead include default implementation with MEMCPY_OK_FOR_FWD_MEMMOVE defined. This lead in a increase performance, since the constraints to use memcpy in powerpc code are too restrictive and memcpy can be used for any forward memmove.
* PowerPC: Guard CALL_ELF check for ppc64 only in link.hAdhemerval Zanella2014-07-072-2/+9
| | | | | This patch fixes powerpc32 undef compiler warnings for _CALL_ELF, since it is defined only for powerpc64.
* Remove old stub lowlevellock.h file. It is not even useful as documentation.Roland McGrath2014-07-072-83/+2
|
* NPTL is no longer an add-on!Roland McGrath2014-07-0731-165/+62
|