aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-05-13Consolidate NPTL configury for ARM/Linux.Roland McGrath
2014-05-13Consolidate NPTL vs non clone.S for ARM.Roland McGrath
2014-05-13Clean up __exit_thread.Roland McGrath
2014-05-13Fix typo in assertionAndreas Schwab
2014-05-12Clean up kernel version conditionals for pre-2.6.32 kernels.Joseph Myers
This patch does some initial cleanup, following the move to 2.6.32 minimum kernel version, by removing __LINUX_KERNEL_VERSION conditionals that are now always-true or always-false. In the case of __ASSUME_ARG_MAX_STACK_BASED, where the conditional used a kernel version that was itself in a macro, the associated sysconf.c code is also cleaned up and __ASSUME_ARG_MAX_STACK_BASED removed completely. Tested x86_64 that disassembly of installed shared libraries is unchanged by the patch. * sysdeps/unix/sysv/linux/kernel-features.h [__s390__] (__ASSUME_UTIMES): Do not condition on kernel version. (__ASSUME_PSELECT): Define unconditionally. (__ASSUME_PPOLL): Likewise. (__ASSUME_ATFCTS): Likewise. (__ASSUME_SET_ROBUST_LIST): Do not condition on kernel version. (__ASSUME_COMPLETE_READV_WRITEV): Define unconditionally. (__ASSUME_FUTEX_LOCK_PI): Do not condition on kernel version. (__ASSUME_UTIMENSAT): Define unconditionally. (__ASSUME_PRIVATE_FUTEX): Likewise. (__ASSUME_FALLOCATE): Likewise. (__ASSUME_O_CLOEXEC): Likewise. (__LINUX_ARG_MAX_STACK_BASED_MIN_KERNEL): Remove. (__ASSUME_ARG_MAX_STACK_BASED): Likewise. (__ASSUME_ADJ_OFFSET_SS_READ): Define unconditionally. (__ASSUME_SOCK_CLOEXEC): Do not condition on kernel version. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. [__x86_64__ || __sparc__] (__ASSUME_ACCEPT4_SYSCALL): Likewise. (__ASSUME_FUTEX_CLOCK_REALTIME): Define unconditionally. (__ASSUME_AT_RANDOM): Likewise. (__ASSUME_PREADV): Likewise. (__ASSUME_PWRITEV): Likewise. (__ASSUME_REQUEUE_PI): Do not condition on kernel version. (__ASSUME_F_GETOWN_EX): Define unconditionally. (__ASSUME_XFS_RESTRICTED_CHOWN): Likewise. * sysdeps/unix/sysv/linux/sysconf.c (__sysconf) [!__ASSUME_ARG_MAX_STACK_BASED]: Remove conditional code. * sysdeps/unix/sysv/linux/alpha/kernel-features.h (__ASSUME_O_CLOEXEC): Define unconditionally. (__ASSUME_PSELECT): Do not undefine conditionally. (__ASSUME_PPOLL): Likewise. (__ASSUME_ATFCTS): Likewise. (__ASSUME_SET_ROBUST_LIST): Likewise. (__ASSUME_UTIMENSAT): Likewise. (__ASSUME_FDATASYNC): Define unconditionally. * sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_SIGFRAME_V2): Likewise. )__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_PSELECT): Do not undefine conditionally. (__ASSUME_PPOLL): Likewise. * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_PSELECT): Define unconditionally. (__ASSUME_PPOLL): Likewise. (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. * sysdeps/unix/sysv/linux/m68k/kernel-features.h (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. * sysdeps/unix/sysv/linux/mips/kernel-features.h (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_ACCEPT4_SYSCALL): Likewise.
2014-05-12Fix unbound stack use in NIS NSS moduleAndreas Schwab
2014-05-12malloc: Add mallopt test.Will Newton
ChangeLog: 2014-05-12 Will Newton <will.newton@linaro.org> * malloc/Makefile (tests): Add tst-mallopt. * malloc/tst-mallopt.c: New file.
2014-05-09Make armv7 strcmp assembly compatible with ARM mode and SFI.Roland McGrath
2014-05-09Fix elf/tst-tls9-static buildAdhemerval Zanella
This patch fixes the tst-tlsmod[5/6].so build in system that uses -Wl,--as-needed as default in linker option. Without this option the testing shared library that does not have libc.so in DT_NEEDED and the tst-tls9-static fails in architecture that use the ./sysdeps/unix/sysv/linux/<arch>/dl-static.c trick.
2014-05-09Silence a missing-noreturn warning for _Unwind_Resume.Roland McGrath
2014-05-09Include SSE state in i386 fenv_t (bug 16064).Joseph Myers
This patch fixes bug 16064, i386 fenv_t not including SSE state, using the technique suggested there of storing the state in the existing __eip field of fenv_t to avoid needing to increase the size of fenv_t and add new symbol versions. The included testcase, which previously failed for i386 (but passed for x86_64), illustrates how the previous state was buggy. This patch causes the SSE state to be included *to the extent it is on x86_64*. Where some state should logically be included but isn't for x86_64 (see bug 16068), this patch does not cause it to be included for i386 either. The idea is that any patch fixing that bug should fix it for both x86_64 and i386 at once. Tested i386 and x86_64. (I haven't tested the case of a CPU without SSE2 disabling the test.) [BZ #16064] * sysdeps/i386/fpu/fegetenv.c: Include <unistd.h>, <ldsodefs.h> and <dl-procinfo.h>. (__fegetenv): Save SSE state in envp->__eip if supported. * sysdeps/i386/fpu/feholdexcpt.c (feholdexcept): Save SSE state in envp->__eip if supported. * sysdeps/i386/fpu/fesetenv.c: Include <unistd.h>, <ldsodefs.h> and <dl-procinfo.h>. (__fesetenv): Always set __eip, __cs_selector, __opcode, __data_offset and __data_selector in environment to 0. Set SSE state if supported. * sysdeps/x86/fpu/Makefile [$(subdir) = math] (tests): Add test-fenv-sse. [$(subdir) = math] (CFLAGS-test-fenv-sse.c): Add -msse2 -mfpmath=sse. * sysdeps/x86/fpu/test-fenv-sse.c: New file.
2014-05-09ARM: Allow auto-detection of linker relro featureWill Newton
Set values for libc_commonpagesize and libc_relro_required for the ARM port to enable relro by default and suppress a warning at configure time. ChangeLog: 2014-05-09 Will Newton <will.newton@linaro.org> * sysdeps/arm/preconfigure.ac: Set libc_commonpagesize and libc_relro_required for ARM. * sysdeps/arm/preconfigure: Regenerate.
2014-05-09S/390: Port of lock elision to System/zDominik Vogt
Added support for TX lock elision of pthread mutexes on s390 and s390x. This may improve lock scaling of existing programs on TX capable systems. The lock elision code is only built with --enable-lock-elision=yes and then requires a GCC version supporting the TX builtins. With lock elision default mutexes are elided via __builtin_tbegin, if the cpu supports transactions. By default lock elision is not enabled and the elision code is not built.
2014-05-09ARM: Add optimized ARMv7 strcmp implementationWill Newton
Add an optimized implementation of strcmp for ARMv7-A cores. This implementation is significantly faster than the current generic C implementation, particularly for strings of 16 bytes and longer. Tested with the glibc string tests for arm-linux-gnueabihf and armeb-linux-gnueabihf. The code was written by ARM, who have agreed to assign the copyright to the FSF for integration into glibc. ChangeLog: 2014-05-09 Will Newton <will.newton@linaro.org> * sysdeps/arm/armv7/strcmp.S: New file. * NEWS: Mention addition of ARMv7 optimized strcmp.
2014-05-08Some configure-related decrufting.Roland McGrath
2014-05-08Fix -Wundef for _UTSNAME_DOMAIN_LENGTH.Roland McGrath
2014-05-07Add 16922 to list of bugs fixed.Steve Ellcey
2014-05-072014-05-07 Steve Ellcey <sellcey@mips.com>Steve Ellcey
[BZ# 16922] * sysdeps/mips/sys/asm.h (INT_SUB): Fix definition. (LONG_SUB): Ditto. (PTR_SUB): Ditto.
2014-05-07Fix parsing of getai result from nscd for IPv6-only requestAndreas Schwab
2014-05-07Fix typo in nscd/selinux.cOndřej Bílka
2014-05-07Fix typo in nptl/sockperf.cOndřej Bílka
2014-05-06Move ARM internal unwind.h header to the right sysdeps directory.Roland McGrath
2014-05-07SPARC: add EFD_SEMAPHORE in <bits/eventfd.h> (BZ #16916)Aurelien Jarno
EFD_SEMAPHORE has been added in the main <bits/eventfd.h>, but not in the SPARC specific version. Fix that.
2014-05-06PowerPC: strncpy/stpncpy optimization for PPC64/POWER7Vidya Ranganathan
The optimization is achieved by following techniques: > data alignment [gain from aligned memory access on read/write] > POWER7 gains performance with loop unrolling/unwinding [gain by reduction of branch penalty]. > zero padding done by calling optimized memset
2014-05-06Don't use catomic functions in mcount (BZ #16912)Andreas Schwab
mcount cannot use catomic functions since it is called by __libc_start_main before TLS is set up. This reverts the change made by commit 8099361.
2014-05-05Move rules for Linux-specific pldd program to Linux-specific Makefile.Roland McGrath
2014-05-05Fix -Wundef issues in generated errlist.c.Roland McGrath
2014-05-05PowerPC: ifunc improvement for internal callsAdhemerval Zanella
This patch changes de default symbol redirection for internal call of memcpy, memset, memchr, and strlen to the IFUNC resolved ones. The performance improvement is noticeable in algorithms that uses these symbols extensible, like the regex functions.
2014-05-03Revert incorrect removal of the XDR currency from locale/iso-4217.defAdam Conrad
In 7447ccd98ee3944a95247ae23284dfac1de6c2aa, the XDR currency was removed from locale/iso-4217.def, despite the fact that it's both still a part of the standard, according to the official table: http://www.currency-iso.org/dam/downloads/table_a1.xml ... and, more importantly, is referenced from localedata/i18n, so any quick-and-dirty locale definition that uses "copy i18n" for LC_MONETARY wouldn't work anymore.
2014-05-04Update Esperanto translationsAllan McRae
2014-05-03Fix -Wundef warning for FEATURE_INDEX_1.Carlos O'Donell
Define FEATURE_INDEX_1 and FEATURE_INDEX_MAX as macros for use by both assembly and C code. This fixes the -Wundef error for cases where FEATURE_INDEX_1 was not defined but used the correct value of 0 for an undefined macro.
2014-05-012014-05-01 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* iconvdata/ansi_x3.110.c (ONE_DIRECTION): Define. * iconvdata/armscii-8.c (ONE_DIRECTION): Define. * iconvdata/big5.c (ONE_DIRECTION): Define. * iconvdata/big5hkscs.c (ONE_DIRECTION): Define. * iconvdata/cp1255.c (ONE_DIRECTION): Define. * iconvdata/cp1258.c (ONE_DIRECTION): Define. * iconvdata/cp932.c (ONE_DIRECTION): Define. * iconvdata/euc-cn.c (ONE_DIRECTION): Define. * iconvdata/euc-jisx0213.c (ONE_DIRECTION): Define. * iconvdata/euc-jp-ms.c (ONE_DIRECTION): Define. * iconvdata/euc-jp.c (ONE_DIRECTION): Define. * iconvdata/euc-kr.c (ONE_DIRECTION): Define. * iconvdata/euc-tw.c (ONE_DIRECTION): Define. * iconvdata/gb18030.c (ONE_DIRECTION): Define. * iconvdata/gbbig5.c (ONE_DIRECTION): Define. * iconvdata/gbgbk.c (ONE_DIRECTION): Define. * iconvdata/gbk.c (ONE_DIRECTION): Define. * iconvdata/ibm1364.c (ONE_DIRECTION): Define. * iconvdata/ibm930.c (ONE_DIRECTION): Define. * iconvdata/ibm932.c (ONE_DIRECTION): Define. * iconvdata/ibm933.c (ONE_DIRECTION): Define. * iconvdata/ibm935.c (ONE_DIRECTION): Define. * iconvdata/ibm937.c (ONE_DIRECTION): Define. * iconvdata/ibm939.c (ONE_DIRECTION): Define. * iconvdata/ibm943.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-cn-ext.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-cn.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-jp-3.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-jp.c (ONE_DIRECTION): Define. * iconvdata/iso-2022-kr.c (ONE_DIRECTION): Define. * iconvdata/iso646.c (ONE_DIRECTION): Define. * iconvdata/iso8859-1.c (ONE_DIRECTION): Define. * iconvdata/iso_11548-1.c (ONE_DIRECTION): Define. * iconvdata/iso_6937-2.c (ONE_DIRECTION): Define. * iconvdata/iso_6937.c (ONE_DIRECTION): Define. * iconvdata/johab.c (ONE_DIRECTION): Define. * iconvdata/shift_jisx0213.c (ONE_DIRECTION): Define. * iconvdata/sjis.c (ONE_DIRECTION): Define. * iconvdata/t.61.c (ONE_DIRECTION): Define. * iconvdata/tcvn5712-1.c (ONE_DIRECTION): Define. * iconvdata/tscii.c (ONE_DIRECTION): Define. * iconvdata/uhc.c (ONE_DIRECTION): Define. * iconvdata/unicode.c (ONE_DIRECTION): Define. * iconvdata/utf-16.c (ONE_DIRECTION): Define. * iconvdata/utf-32.c (ONE_DIRECTION): Define. * iconvdata/utf-7.c (ONE_DIRECTION): Define.
2014-05-01NEWS: Add 16885 to fixed bug list.David S. Miller
2014-05-01Fix -Wundef warnings for _IO_JUMPS_OFFSET.Roland McGrath
2014-05-01Deconditionalize use of LLL_LOCK_INITIALIZER in bits/libc-lock.h.Roland McGrath
2014-05-01Fix implicit declarationAndreas Schwab
2014-05-01Fix v9/64-bit strcmp when string ends in multiple zero bytes.David S. Miller
[BZ #16885] * sysdeps/sparc/sparc64/strcmp.S: Fix end comparison handling when multiple zero bytes exist at the end of a string. Reported by Aurelien Jarno <aurelien@aurel32.net> * string/test-strcmp.c (check): Add explicit test for situations where there are multiple zero bytes after the first.
2014-05-01Correctly handle %p in wprintf (BZ #16890)Andreas Schwab
2014-05-012014-05-01 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* intl/iconv/skeleton.c (ONE_DIRECTION): Remove define. * iconv/gconv_simple.c (ONE_DIRECTION): Define. * iconvdata/8bit-gap.c (ONE_DIRECTION): Ditto. * iconvdata/8bit-generic.c (ONE_DIRECTION): Ditto.
2014-05-012014-05-01 Steve Ellcey <sellcey@mips.com>Steve Ellcey
* stdlib/longlong.h: Updated from GCC.
2014-05-01NEWS: Add 15119 to fixed bug listWill Newton
2014-05-01ARM: Remove lowlevellock.cWill Newton
lowlevellock.c for arm differs from the generic lowlevellock.c only in insignificant ways, so can be removed. Happily, this fixes BZ 15119 (unnecessary busy loop in __lll_timedlock_wait on arm). The notable differences between the arm and generic implementations are: 1) arm __lll_timedlock_wait has a fast path out if futex has been set to 0 between since the function was called. This seems unlikely to happen very often, so it seems at worst harmless to lose this fast path. 2) Some function in arm's lowlevellock.c set futex to 2 if it was 1. The generic version always sets the futex to 2. As futex can only be 0, 1 or 2 on entry into these functions, the behaviour is equivalent. (If the futex manages to be 0 on entry then we've just lost another unlikely fast path out.) There are no test suite regressions. Note that hppa and sparc also have their own lowlevellock.c. I believe hppa can also be removed, so I'll send a separate patch for that shortly. sparc's seems to be genuinely needed as it uses a different locking structure. Also note that the analysis at https://sourceware.org/ml/libc-ports/2013-02/msg00021.html indicates a further locking performance bug to fix - I've got a partial patch for that which I can submit once I've finished testing. 2014-05-01 Bernard Ogden <bernie.ogden@linaro.org> [BZ #15119] * sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c: Remove file.
2014-04-30Add round-mode context support to sparc.David S. Miller
* sysdeps/sparc/fpu/fenv_private.h (HAVE_RM_CTX): Define. (libc_feholdexcept_setround_sparc_ctx): New function. (libc_fesetenv_sparc_ctx): Likewise. (libc_feupdateenv_sparc_ctx): Likewise. (libc_feholdsetround_sparc_ctx): Likewise. (libc_feholdexcept_setround_ctx): Define. (libc_feholdexcept_setroundf_ctx): Likewise. (libc_feholdexcept_setroundl_ctx): Likewise. (libc_fesetenv_ctx): Likewise. (libc_fesetenvf_ctx): Likewise. (libc_fesetenvl_ctx): Likewise. (libc_feupdateenv_ctx): Likewise. (libc_feupdateenvf_ctx): Likewise. (libc_feupdateenvl_ctx): Likewise. (libc_feresetround_ctx): Likewise. (libc_feresetroundf_ctx): Likewise. (libc_feresetroundl_ctx): Likewise. (libc_feholdsetround_ctx): Likewise. (libc_feholdsetroundf_ctx): Likewise. (libc_feholdsetroundl_ctx): Likewise.
2014-04-30Correct sparc CPP guards for EMT_TAGOVF.David S. Miller
* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (EMT_TAGOVF): Protect with __USE_GNU instead of XOPEN cpp guards.
2014-04-30Fix some sparc -Wundef build warnings.David S. Miller
* sysdeps/sparc/bits/string.h (_STRING_ARCH_unaligned): Define to 0.
2014-04-30Fix some sparc conform test failures in siginfo.hDavid S. Miller
* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (EMT_TAGOVF): Protect with XOPEN cpp guards.
2014-04-30Move ports/ChangeLog* files to ChangeLog.old-ports*, remove ports/ directory.Roland McGrath
2014-04-30Add deprecation header text to remaining ports/ChangeLog* files.Roland McGrath
2014-04-30ARM: Fix R_ARM_IRELATIVE RELA relocations.Julian Brown
This patch fixes what I believe to be a bug in the handling of R_ARM_IRELATIVE RELA relocations. At present, these are handled the same as REL relocations: i.e. the addend is loaded from the relocation address. Most of the time this isn't a problem because RELA relocations aren't used on ARM (GNU/Linux at least) anyway, but it causes problems with prelink, which uses RELA on all targets for its conflict table. (Support for ifunc prelinking requires a prelink patch, not yet posted.) Anyway, this patch works, though I'm not 100% sure if it is correct: I notice that this code path received attention last year: https://sourceware.org/ml/libc-ports/2013-07/msg00000.html I'm not sure under what circumstances that patch would have had an effect, nor if my patch conflicts with that case. No regressions using Mentor's usual glibc cross-testing infrastructure. [BZ #16888] * sysdeps/arm/dl-machine.h (elf_machine_rela): Fix R_ARM_IRELATIVE handling.
2014-04-30Increase minimum Linux kernel version to 2.6.32.Joseph Myers
This patch increases the minimum Linux kernel version for glibc to 2.6.32, as discussed in the thread starting at <https://sourceware.org/ml/libc-alpha/2014-01/msg00511.html>. This patch just does the minimal change to arch_minimum_kernel settings (and LIBC_LINUX_VERSION, which determines the minimum kernel headers version, as it doesn't make sense for that to be older than the minimum kernel that can be used at runtime). Followups would be expected to do, roughly and not necessarily precisely in this order: * Remove __LINUX_KERNEL_VERSION checks in kernel-features.h files where those checks are always true / always false for kernels 2.6.32 and above. * Otherwise simplify/improve conditionals in those files (for example, where defining once in the main file then undefining in architecture-specific files makes things clearer than having lots of separate definitions of the same macro), possibly fixing in the process cases where a macro should optimally have been defined for a given architecture but wasn't. (In the review in preparation for this version increase I checked what the right conditions should be for all macros in the main kernel-features.h whose definitions there would have been affected by the increase - but I only fixed that subset of the issues found where --enable-kernel=2.6.32 would have caused a kernel feature to be wrongly assumed to be present, not any cases where a feature is not assumed but could be assumed.) * Remove conditionals on __ASSUME_* where they can now be taken to be always-true, and the definitions when the macros are only used in Linux-specific files. * Split more architectures out of the main kernel-features.h (like ex-ports architectures), once various of the architecture conditionals there have been eliminated so the new architecture-specific files are no larger than actually necessary. Tested x86_64. 2014-03-27 Joseph Myers <joseph@codesourcery.com> [BZ #9894] * sysdeps/unix/sysv/linux/configure.ac (LIBC_LINUX_VERSION): Change to 2.6.32. (arch_minimum_kernel): Change all 2.6.16 settings to 2.6.32. * sysdeps/unix/sysv/linux/configure: Regenerated. * sysdeps/unix/sysv/linux/microblaze/configure.ac: Remove file. * sysdeps/unix/sysv/linux/microblaze/configure: Likewise. * sysdeps/unix/sysv/linux/tile/configure.ac: Likewise. * sysdeps/unix/sysv/linux/tile/configure: Likewise. * README: Update reference to required Linux kernel version. * manual/install.texi (Linux): Update reference to required Linux kernel headers version. * INSTALL: Regenerated.