external/glibc.git
10 years agoIA64: Consolidate NPTL/non versions of vfork
Roland McGrath [Fri, 4 Jul 2014 05:09:33 +0000 (22:09 -0700)]
IA64: Consolidate NPTL/non versions of vfork

10 years agoIA64: Consolidate NPTL/non versions of clone
Roland McGrath [Fri, 4 Jul 2014 04:50:50 +0000 (21:50 -0700)]
IA64: Consolidate NPTL/non versions of clone

10 years agoFix missing <math_private.h> in ldbl-96 fma
Andreas Schwab [Mon, 4 Aug 2014 08:20:03 +0000 (10:20 +0200)]
Fix missing <math_private.h> in ldbl-96 fma

10 years agoadd ChangeLog for previous commit
Mike Frysinger [Sun, 3 Aug 2014 15:12:35 +0000 (11:12 -0400)]
add ChangeLog for previous commit

10 years agotst-setcontext: fix style
Mike Frysinger [Sun, 3 Aug 2014 12:55:20 +0000 (08:55 -0400)]
tst-setcontext: fix style

10 years agoRemove sysdeps/unix/sysv/linux/arm/lowlevellock.h
Roland McGrath [Sat, 2 Aug 2014 01:59:48 +0000 (18:59 -0700)]
Remove sysdeps/unix/sysv/linux/arm/lowlevellock.h

10 years agoForce eval for fma implementations
Richard Henderson [Fri, 1 Aug 2014 22:13:50 +0000 (12:13 -1000)]
Force eval for fma implementations

10 years agoARM: Move PTR_MANGLE et al out of Linux-specific file.
Roland McGrath [Fri, 1 Aug 2014 18:28:49 +0000 (11:28 -0700)]
ARM: Move PTR_MANGLE et al out of Linux-specific file.

10 years agoFix -Wundef warnings in regex_internal.h
Siddhesh Poyarekar [Fri, 1 Aug 2014 09:00:43 +0000 (14:30 +0530)]
Fix -Wundef warnings in regex_internal.h

10 years agoCheck if DEBUG is defined in regex_internal.c
Siddhesh Poyarekar [Fri, 1 Aug 2014 08:54:41 +0000 (14:24 +0530)]
Check if DEBUG is defined in regex_internal.c

The DEBUG macro is checked for its value in one place and if it is
defined in another.  Make this consistent across the two cases and use
the same style that we did in mktime.c, which is to check if the macro
is defined and it is set.

10 years agoFix -Wundef warnings in fnmatch.c
Siddhesh Poyarekar [Fri, 1 Aug 2014 08:53:38 +0000 (14:23 +0530)]
Fix -Wundef warnings in fnmatch.c

Fixes -Wundef warnings for MBSTATE_T and HAVE_STRING_H.  The
HAVE_STRING_H bit is a merge from the gnulib fnmatch.c and the
MBSTATE_T fix has been posted to gnulib for inclusion.

10 years agoNEWS: Explain the s390 jmp_buf / ucontext_t ABI change reversal.
Stefan Liebler [Fri, 1 Aug 2014 07:48:17 +0000 (09:48 +0200)]
NEWS: Explain the s390 jmp_buf / ucontext_t ABI change reversal.

10 years agoAdd __safe_fatal and use it in __pthread_unwind forwarder fallback.
Roland McGrath [Thu, 31 Jul 2014 21:00:33 +0000 (14:00 -0700)]
Add __safe_fatal and use it in __pthread_unwind forwarder fallback.

10 years agoUse __builtin_trap for ABORT_INSTRUCTION.
Roland McGrath [Thu, 31 Jul 2014 20:07:19 +0000 (13:07 -0700)]
Use __builtin_trap for ABORT_INSTRUCTION.

10 years agoSplit nptl-signals.h out from pthreadP.h
Roland McGrath [Thu, 31 Jul 2014 18:37:48 +0000 (11:37 -0700)]
Split nptl-signals.h out from pthreadP.h

10 years ago[PATCH] S390: Fix remaining ONE_DIRECTION warning messages
Stefan Liebler [Thu, 31 Jul 2014 18:10:47 +0000 (20:10 +0200)]
[PATCH] S390: Fix remaining ONE_DIRECTION warning messages

This patch fixes the remaining ONE_DIRECTION warnings for s390 specific conversions.
It defines ONE_DIRECTION to 0 like the patch from Steve Ellcey:
https://www.sourceware.org/ml/libc-alpha/2014-05/msg00039.html

    Changelog:
    * sysdeps/s390/s390-64/utf16-utf32-z9.c
    (ONE_DIRECTION): Define.
    * sysdeps/s390/s390-64/utf8-utf16-z9.c
    (ONE_DIRECTION): Define.
    * sysdeps/s390/s390-64/utf8-utf32-z9.c
    (ONE_DIRECTION): Define.

10 years agoS/390: Revert the jmp_buf/ucontext_t ABI change.
Stefan Liebler [Thu, 31 Jul 2014 18:04:54 +0000 (20:04 +0200)]
S/390: Revert the jmp_buf/ucontext_t ABI change.

10 years agoFix -Wundef warning for HAVE_IFUNC
Andreas Schwab [Thu, 31 Jul 2014 10:46:14 +0000 (12:46 +0200)]
Fix -Wundef warning for HAVE_IFUNC

10 years agoImprove 64bit memcpy performance for Haswell CPU with AVX instruction
Ling Ma [Mon, 14 Jul 2014 04:02:52 +0000 (00:02 -0400)]
Improve 64bit memcpy performance for Haswell CPU with AVX instruction

In this patch we take advantage of HSW memory bandwidth, manage to
reduce miss branch prediction by avoiding using branch instructions and
force destination to be aligned with avx instruction.

The CPU2006 403.gcc benchmark indicates this patch improves performance
from 2% to 10%.

10 years agoPowerPC: Fix gprof entry point for LE
Adhemerval Zanella [Tue, 29 Jul 2014 18:56:44 +0000 (13:56 -0500)]
PowerPC: Fix gprof entry point for LE

This patch fixes the ELFv2 gprof entry point since the ABI
does not define function descriptors.  It fixes BZ#17213.

10 years agofcntl-linux.h: add new definitions and manual updates for open file description locks
Jeff Layton [Wed, 23 Jul 2014 18:21:05 +0000 (14:21 -0400)]
fcntl-linux.h: add new definitions and manual updates for open file description locks

Open file description locks have been merged into the Linux kernel for
v3.15.  Add the appropriate command-value definitions and an update to
the manual that describes their usage.

10 years agoUpdate Spanish translations
Allan McRae [Wed, 23 Jul 2014 07:06:01 +0000 (17:06 +1000)]
Update Spanish translations

10 years agoAdd fixed bug to NEWS
Allan McRae [Wed, 23 Jul 2014 06:55:16 +0000 (16:55 +1000)]
Add fixed bug to NEWS

Fixed in commit 7ee03f00.

10 years agoAdd missing changelog entry for commit ab7ac0f2
Allan McRae [Wed, 23 Jul 2014 06:52:13 +0000 (16:52 +1000)]
Add missing changelog entry for commit ab7ac0f2

10 years agoRevert "aarch64: Add hp-timing.h"
Marcus Shawcroft [Tue, 22 Jul 2014 09:43:52 +0000 (10:43 +0100)]
Revert "aarch64: Add hp-timing.h"

This reverts commit 4052993954d1dcb39cbd478ab59e75fe12903e9c.

Conflicts:
sysdeps/aarch64/hp-timing.h

10 years agom68k: use generic lowlevellock.h
Andreas Schwab [Fri, 18 Jul 2014 21:24:13 +0000 (23:24 +0200)]
m68k: use generic lowlevellock.h

10 years ago[BZ #17078] ARM: R_ARM_TLS_DESC prelinker support
Maciej W. Rozycki [Thu, 17 Jul 2014 18:22:05 +0000 (19:22 +0100)]
[BZ #17078] ARM: R_ARM_TLS_DESC prelinker support

This is a change to the dynamic linker to add prelinker support for the
R_ARM_TLS_DESC relocation.  Two cases can be considered here, the usual
one where lazy binding is in use and the less frequent one, where
immediate binding is requested via the use of the DF_BIND_NOW dynamic
flag (e.g. by using the GNU linker's "-z now" option).

This change only handles the first case.  In this scenario the prelinker
does what the dynamic linker would do, that is it preinitialises
R_ARM_TLS_DESC relocations with a pointer to the lazy specialization as
provided with the DT_TLSDESC_PLT dynamic tag.  A conflict is
additionally created and in the conflict resolution path the dynamic
linker complements the work by initialising the object's pointer as
indicated by the DT_TLSDESC_GOT dynamic tag to the linker's internal
lazy specialization worker function and also providing the associated
link map in the second entry of the GOT.  This step is required, because
if prelinking is successful at the run time, then the dynamic linker's
elf_machine_runtime_setup() function isn't called that would normally do
so.

The second case remains unresolved, because support for that scenario
has not been implemented in the prelinker.  In this case the lazy
specialization is unavailable and the DT_TLSDESC_PLT dynamic tag is not
present.

The prelinker could assume the common case of static specialization and
resolve the relocation, but that would require the exposure of dynamic
linker's specialization worker function.  Furthermore the dynamic linker
would have to handle the relocation in the conflict resolution path and
see if the dynamic specialization should be used instead.  This however
would require access to data structures currently not made available to
the conflict resolution path and therefore a redesign of this part of
the dynamic linker.

Alternatively the prelinker could defer all processing to the dynamic
linker's conflict resolution path, but that would require similar access
to the said data structures.

Therefore the prelinker issues an error instead and the dynamic linker
has assertions to check that DT_TLSDESC_PLT and DT_TLSDESC_GOT are in
use in its conflict resolution path.

This change resolves all TLS failures in the prelinker testsuite, as
noted in the bug report, as well as the small test case provided there.
Unfortunately we don't seem to have any hooks to factor in the prelinker
(if present on a system) to testing, so at this time this fix has to
rely on using the prelinker test suite and enabling TLS descriptors
there for coverage.

[BZ #17078]
* sysdeps/arm/dl-machine.h (elf_machine_rela)
[RESOLVE_CONFLICT_FIND_MAP]: Handle R_ARM_TLS_DESC relocation.
(elf_machine_lazy_rel): Handle prelinked R_ARM_TLS_DESC entries.

10 years agoFix fallback fesetenv and feupdateenv on FE_NOMASK_ENV (bug 17088).
Joseph Myers [Thu, 17 Jul 2014 17:56:43 +0000 (17:56 +0000)]
Fix fallback fesetenv and feupdateenv on FE_NOMASK_ENV (bug 17088).

This patch fixes bug 17088, fallback fesetenv and feupdateenv not
giving an error for an FE_NOMASK_ENV argument when it requires traps
to be enabled.  (This is the bug tested for by test-fenv-return.c.)

Tested mips64 soft-float.

[BZ #17088]
* math/fesetenv.c (__fesetenv)
[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Return 1 for FE_NOMASK_ENV.
* math/feupdateenv.c (__feupdateenv)
[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Likewise.

10 years ago[PATCH 6/6] Split s390 out of main Linux kernel-features.h.
Joseph Myers [Thu, 17 Jul 2014 17:55:44 +0000 (17:55 +0000)]
[PATCH 6/6] Split s390 out of main Linux kernel-features.h.

This patch splits s390 out of the main Linux kernel-features.h.

Not tested.

* sysdeps/unix/sysv/linux/s390/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__s390__]
(__ASSUME_SOCKETCALL): Do not define.

10 years ago[PATCH 5/6] Split sh out of main Linux kernel-features.h.
Joseph Myers [Thu, 17 Jul 2014 17:54:43 +0000 (17:54 +0000)]
[PATCH 5/6] Split sh out of main Linux kernel-features.h.

This patch splits sh out of the main Linux kernel-features.h.

Not tested.

* sysdeps/unix/sysv/linux/sh/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__sh__]
(__ASSUME_SOCKETCALL): Do not define.
(__ASSUME_ST_INO_64_BIT): Define unconditionally.
[__LINUX_KERNEL_VERSION >= 0x020625 && __sh__]
(__ASSUME_ACCEPT4_SYSCALL): Do not define.
[__LINUX_KERNEL_VERSION >= 0x020625 && __sh__]
(__ASSUME_RECVMMSG_SYSCALL): Likewise.
[__LINUX_KERNEL_VERSION >= 0x030000 && __sh__]
(__ASSUME_SENDMMSG_SYSCALL): Likewise.
[__sh__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.

10 years ago[PATCH 4/6] Split powerpc out of main Linux kernel-features.h.
Joseph Myers [Thu, 17 Jul 2014 17:53:52 +0000 (17:53 +0000)]
[PATCH 4/6] Split powerpc out of main Linux kernel-features.h.

This patch splits powerpc out of the main Linux kernel-features.h.

Not tested.

* sysdeps/unix/sysv/linux/powerpc/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__powerpc__]
(__ASSUME_SOCKETCALL): Do not define.
(__ASSUME_IPC64): Define unconditionally.
[__LINUX_KERNEL_VERSION >= 0x020625 && __powerpc__]
(__ASSUME_ACCEPT4_SYSCALL): Do not define.
[__LINUX_KERNEL_VERSION >= 0x020625 && __powerpc__]
(__ASSUME_RECVMMSG_SYSCALL): Likewise.
[__LINUX_KERNEL_VERSION >= 0x030000 && __powerpc__]
(__ASSUME_SENDMMSG_SYSCALL): Likewise.
[__powerpc__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL):
Likewise.

10 years ago[PATCH 3/6] Split sparc out of main Linux kernel-features.h.
Joseph Myers [Thu, 17 Jul 2014 17:52:58 +0000 (17:52 +0000)]
[PATCH 3/6] Split sparc out of main Linux kernel-features.h.

This patch splits sparc out of the main Linux kernel-features.h.

Not tested.

* sysdeps/unix/sysv/linux/sparc/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__sparc__]
(__ASSUME_SOCKETCALL): Do not define.
(__ASSUME_SET_ROBUST_LIST): Define unconditionally.
(__ASSUME_FUTEX_LOCK_PI): Likewise.
[__sparc__] (__ASSUME_ACCEPT4_SYSCALL): Do not define.
[__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
(__ASSUME_REQUEUE_PI): Define unconditionally.
[__LINUX_KERNEL_VERSION >= 0x020621 && __sparc__]
(__ASSUME_RECVMMSG_SYSCALL): Do not define.
[__sparc__] (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
[__LINUX_KERNEL_VERSION >= 0x030000 && __sparc__]
(__ASSUME_SENDMMSG_SYSCALL): Likewise.
[__sparc__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.

10 years ago[PATCH 2/6] Split i386 out of main Linux kernel-features.h.
Joseph Myers [Thu, 17 Jul 2014 17:51:35 +0000 (17:51 +0000)]
[PATCH 2/6] Split i386 out of main Linux kernel-features.h.

This patch splits i386 out of the main Linux kernel-features.h.

Tested x86 that there are no changes to disassembly of installed
shared libraries.

* sysdeps/unix/sysv/linux/i386/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__i386__]
(__ASSUME_SOCKETCALL): Do not define.
[__LINUX_KERNEL_VERSION >= 0x020621 && __i386__]
(__ASSUME_RECVMMSG_SYSCALL): Likewise.
[__i386__] (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
[__LINUX_KERNEL_VERSION >= 0x030000 && __i386__]
(__ASSUME_SENDMMSG_SYSCALL): Likewise.
[__i386__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.

10 years ago[PATCH 1/6] Split x86_64 out of main Linux kernel-features.h.
Joseph Myers [Thu, 17 Jul 2014 17:49:45 +0000 (17:49 +0000)]
[PATCH 1/6] Split x86_64 out of main Linux kernel-features.h.

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.

10 years agoRefactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac.
Joseph Myers [Thu, 17 Jul 2014 14:35:48 +0000 (14:35 +0000)]
Refactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac.

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.

10 years agoMove architecture shlib-versions files to Linux-specific directories.
Joseph Myers [Thu, 17 Jul 2014 14:31:12 +0000 (14:31 +0000)]
Move architecture shlib-versions files to Linux-specific directories.

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.

10 years agoARM: Fix compiler warnings from atomic.h
Will Newton [Fri, 4 Jul 2014 15:10:15 +0000 (16:10 +0100)]
ARM: Fix compiler warnings from atomic.h

__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.

10 years agoiconv/loop.c: Fix -Wundef warning with !_STRING_ARCH_unaligned
Will Newton [Thu, 10 Jul 2014 08:18:03 +0000 (09:18 +0100)]
iconv/loop.c: Fix -Wundef warning with !_STRING_ARCH_unaligned

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.

10 years agoARM: Clean up EABI-related configury
Roland McGrath [Wed, 16 Jul 2014 22:18:36 +0000 (15:18 -0700)]
ARM: Clean up EABI-related configury

10 years agoAdd generic/stub implementations of pthread_{kill,sigmask,sigqueue}.
Roland McGrath [Tue, 15 Jul 2014 22:48:18 +0000 (15:48 -0700)]
Add generic/stub implementations of pthread_{kill,sigmask,sigqueue}.

10 years agoSeparate Linuxisms from lowlevellock.h, make a generic one
Roland McGrath [Tue, 15 Jul 2014 22:23:06 +0000 (15:23 -0700)]
Separate Linuxisms from lowlevellock.h, make a generic one

10 years agoRemove declarations of two nonexistent variables from nptl/pthreadP.h.
Roland McGrath [Tue, 15 Jul 2014 21:44:47 +0000 (14:44 -0700)]
Remove declarations of two nonexistent variables from nptl/pthreadP.h.

10 years agoEnable AVX2 optimized memset only if -mavx2 works
H.J. Lu [Mon, 14 Jul 2014 14:58:27 +0000 (07:58 -0700)]
Enable AVX2 optimized memset only if -mavx2 works

* 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.

10 years agoCorrect DT_PPC64_NUM
Alan Modra [Mon, 14 Jul 2014 11:44:50 +0000 (21:14 +0930)]
Correct DT_PPC64_NUM

[BZ #17153]
* elf/elf.h (DT_PPC64_NUM): Correct value.
* NEWS: Add to fixed bug list.

10 years agoChangeLog fix
Andreas Schwab [Mon, 14 Jul 2014 08:48:33 +0000 (10:48 +0200)]
ChangeLog fix

10 years agoregex: don't deref NULL upon heap allocation failure
Jim Meyering [Sun, 13 Jul 2014 00:07:21 +0000 (17:07 -0700)]
regex: don't deref NULL upon heap allocation failure

* 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+++++++++++++++++++++ )

10 years agom68k: update libm test ULPs
Andreas Schwab [Sun, 13 Jul 2014 09:20:44 +0000 (11:20 +0200)]
m68k: update libm test ULPs

10 years agoaarch64: Update libm-test-ulps
Richard Henderson [Fri, 11 Jul 2014 17:56:42 +0000 (10:56 -0700)]
aarch64: Update libm-test-ulps

10 years agonptl: Fix abort in case of set*id failure [BZ #17135]
Florian Weimer [Thu, 10 Jul 2014 15:34:46 +0000 (17:34 +0200)]
nptl: Fix abort in case of set*id failure [BZ #17135]

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).

10 years agoPowerPC: Fix build due missing lll_robust_trylock
Adhemerval Zanella [Thu, 10 Jul 2014 21:42:51 +0000 (16:42 -0500)]
PowerPC: Fix build due missing lll_robust_trylock

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.

10 years agoChangeLog fixup for last commit.
Roland McGrath [Thu, 10 Jul 2014 18:30:38 +0000 (11:30 -0700)]
ChangeLog fixup for last commit.

10 years agoGet rid of lll_robust_dead.
Roland McGrath [Thu, 10 Jul 2014 18:21:54 +0000 (11:21 -0700)]
Get rid of lll_robust_dead.

10 years agoGet rid of lll_robust_trylock.
Roland McGrath [Thu, 10 Jul 2014 17:57:57 +0000 (10:57 -0700)]
Get rid of lll_robust_trylock.

10 years agomanual: Update the locale documentation
Florian Weimer [Wed, 28 May 2014 12:05:03 +0000 (14:05 +0200)]
manual: Update the locale documentation

10 years ago_nl_find_locale: Improve handling of crafted locale names [BZ #17137]
Florian Weimer [Mon, 12 May 2014 13:24:12 +0000 (15:24 +0200)]
_nl_find_locale: Improve handling of crafted locale names [BZ #17137]

Prevent directory traversal in locale-related environment variables
(CVE-2014-0475).

10 years agosetlocale: Use the heap for the copy of the locale argument
Florian Weimer [Wed, 28 May 2014 12:41:52 +0000 (14:41 +0200)]
setlocale: Use the heap for the copy of the locale argument

This avoids alloca calls with potentially large arguments.

10 years agoSync up error.c with gnulib
Siddhesh Poyarekar [Thu, 10 Jul 2014 08:54:30 +0000 (14:24 +0530)]
Sync up error.c with gnulib

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

10 years agoFix -Wundef warning for HAVE_LOCALTIME_R
Siddhesh Poyarekar [Thu, 10 Jul 2014 08:51:27 +0000 (14:21 +0530)]
Fix -Wundef warning for HAVE_LOCALTIME_R

Define it to 0.  There is a gnulib copy for this, but it is out of
sync with our copy.

10 years agoFix Wundef warning for HAVE_STRFTIME
Siddhesh Poyarekar [Thu, 10 Jul 2014 08:50:42 +0000 (14:20 +0530)]
Fix Wundef warning for HAVE_STRFTIME

Define it to 0

10 years agoFix -Wundef warning for HAVE_SYS_PARAM_H
Siddhesh Poyarekar [Thu, 10 Jul 2014 08:49:21 +0000 (14:19 +0530)]
Fix -Wundef warning for HAVE_SYS_PARAM_H

Include sys/param.h unconditionally

10 years agoFix -Wundef warning for HAVE_OBSTACK
Siddhesh Poyarekar [Thu, 10 Jul 2014 08:48:13 +0000 (14:18 +0530)]
Fix -Wundef warning for HAVE_OBSTACK

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.

10 years agoFix crash when system has no ipv6 address [BZ #17125]
Siddhesh Poyarekar [Thu, 10 Jul 2014 08:45:16 +0000 (14:15 +0530)]
Fix crash when system has no ipv6 address [BZ #17125]

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.

10 years agoGet rid of sparc specific NPTL internaltypes.h header.
David S. Miller [Tue, 24 Jun 2014 20:31:04 +0000 (13:31 -0700)]
Get rid of sparc specific NPTL internaltypes.h header.

* 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.

10 years agoAdd comment about SIZE initialization in xdr.c
Siddhesh Poyarekar [Thu, 10 Jul 2014 05:02:29 +0000 (10:32 +0530)]
Add comment about SIZE initialization in xdr.c

10 years agoUpdate sparc ULPS.
David S. Miller [Thu, 10 Jul 2014 00:20:01 +0000 (17:20 -0700)]
Update sparc ULPS.

* sysdeps/sparc/fpu/libm-test-ulps: Update.

10 years agoFix missing newline in test output
Andreas Schwab [Wed, 9 Jul 2014 09:06:00 +0000 (11:06 +0200)]
Fix missing newline in test output

10 years agoUpdate i386 libm test ULPs
Andreas Schwab [Wed, 9 Jul 2014 08:52:47 +0000 (10:52 +0200)]
Update i386 libm test ULPs

10 years agoFix -Wundef warnings for SHARED
Will Newton [Mon, 7 Jul 2014 14:14:26 +0000 (15:14 +0100)]
Fix -Wundef warnings for SHARED

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.

10 years agoFix -Wmaybe-uninitialized warning in xdr.c
Siddhesh Poyarekar [Wed, 9 Jul 2014 05:06:50 +0000 (10:36 +0530)]
Fix -Wmaybe-uninitialized warning in xdr.c

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.

10 years agoFix Wundef warning for __cplusplus
Siddhesh Poyarekar [Wed, 9 Jul 2014 05:06:23 +0000 (10:36 +0530)]
Fix Wundef warning for __cplusplus

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.

10 years agoCheck value at resplen2 if it is not NULL
Siddhesh Poyarekar [Tue, 8 Jul 2014 11:10:24 +0000 (16:40 +0530)]
Check value at resplen2 if it is not NULL

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.

10 years agoFix Wundef warning for ELF_MACHINE_NO_REL on i386
Siddhesh Poyarekar [Tue, 8 Jul 2014 10:49:55 +0000 (16:19 +0530)]
Fix Wundef warning for ELF_MACHINE_NO_REL on i386

10 years agoPowerPC: Cleanup powerpc memmove
Adhemerval Zanella [Tue, 8 Jul 2014 13:54:09 +0000 (08:54 -0500)]
PowerPC: Cleanup powerpc memmove

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.

10 years agoPowerPC: Fix compiler warnings
Adhemerval Zanella [Tue, 8 Jul 2014 13:49:54 +0000 (08:49 -0500)]
PowerPC: Fix compiler warnings

This patch fixes some compiler due trailing data in #undef directives
and due missing prototypes.

10 years agoPowerPC: Add ifunc tests for memmove
Adhemerval Zanella [Tue, 8 Jul 2014 13:35:44 +0000 (08:35 -0500)]
PowerPC: Add ifunc tests for memmove

This patch add the missing ifunc tests definition for memmove ppc32
optimization patch (commit 07aedd7).

10 years agoFix Wundef warning with SHOJI_IS_RIGHT
Siddhesh Poyarekar [Tue, 8 Jul 2014 09:32:58 +0000 (15:02 +0530)]
Fix Wundef warning with SHOJI_IS_RIGHT

The macro is not defined anywhere, so it looks like we're convinced
that Shoji is wrong :)

10 years agoPowerPC: Align power7 memcpy using VSX to quadword
Adhemerval Zanella [Wed, 25 Jun 2014 16:54:31 +0000 (11:54 -0500)]
PowerPC: Align power7 memcpy using VSX to quadword

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).

10 years agoPowerPC: optimized memmove for POWER7/PPC32
Adhemerval Zanella [Tue, 24 Jun 2014 13:47:52 +0000 (08:47 -0500)]
PowerPC: optimized memmove for POWER7/PPC32

This patch adds a optimized memmove for power7 by using the optimized
power7 memcpy for forward copying.

10 years agoPowerPC: optimized memmove for POWER7/PPC64
Adhemerval Zanella [Fri, 20 Jun 2014 17:55:16 +0000 (12:55 -0500)]
PowerPC: optimized memmove for POWER7/PPC64

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.

10 years agoPowerPC: memmove default implementation cleanup
Adhemerval Zanella [Tue, 24 Jun 2014 11:42:31 +0000 (06:42 -0500)]
PowerPC: memmove default implementation cleanup

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.

10 years agoPowerPC: Guard CALL_ELF check for ppc64 only in link.h
Adhemerval Zanella [Tue, 24 Jun 2014 11:41:46 +0000 (06:41 -0500)]
PowerPC: Guard CALL_ELF check for ppc64 only in link.h

This patch fixes powerpc32 undef compiler warnings for _CALL_ELF,
since it is defined only for powerpc64.

10 years agoRemove old stub lowlevellock.h file. It is not even useful as documentation.
Roland McGrath [Mon, 7 Jul 2014 16:29:34 +0000 (09:29 -0700)]
Remove old stub lowlevellock.h file.  It is not even useful as documentation.

10 years agoNPTL is no longer an add-on!
Roland McGrath [Mon, 7 Jul 2014 16:29:06 +0000 (09:29 -0700)]
NPTL is no longer an add-on!

10 years agoGet rid of nptl/sysdeps/ entirely!
Roland McGrath [Mon, 7 Jul 2014 16:28:38 +0000 (09:28 -0700)]
Get rid of nptl/sysdeps/ entirely!

10 years agoAdd comment for MEMCPY_OK_FOR_FWD_MEMMOVE
Siddhesh Poyarekar [Fri, 4 Jul 2014 19:39:15 +0000 (01:09 +0530)]
Add comment for MEMCPY_OK_FOR_FWD_MEMMOVE

10 years agostring/memchr.c: Merge from gnulib
Will Newton [Thu, 26 Jun 2014 15:00:44 +0000 (16:00 +0100)]
string/memchr.c: Merge from gnulib

Merge most of the gnulib implementation of memchr. The changes that
remain are:

 - copyright header
 - bp-sym.h removed
 - reg_char removed
 - allow MEMCHR to be redefined
 - non-conforming whitespace changes

The merged code fixes a number of -Wundef warnings and also introduces
an optimized algorithm. I haven't detected any performance difference
in the new code which I believe is down to the quite specific
circumstances required to hit it. However the new code is approximately
half the size of the old code on AArch64 (which uses generic memchr).

ChangeLog:

2014-07-04  Will Newton  <will.newton@linaro.org>

* string/memchr.c: Merge from gnulib.
[_LIBC]: Remove conditionals.
(__ptr_t): Remove define.
(LONG_MAX_32_BITS): Likewise.
(LONG_MAX): Likewise.
(MEMCHR): Use ANSI prototype and optimize algorithm.

10 years agoARM: Define ELF_MACHINE_NO_REL
Will Newton [Thu, 3 Jul 2014 09:50:50 +0000 (10:50 +0100)]
ARM: Define ELF_MACHINE_NO_REL

Fix a -Wundef warning on ARM.

ChangeLog:

2014-07-04  Will Newton  <will.newton@linaro.org>

* sysdeps/arm/dl-machine.h (ELF_MACHINE_NO_REL): Define.

10 years agoFix ia64 build error in lll_futex_timed_wait_bitset
Roland McGrath [Fri, 4 Jul 2014 05:03:14 +0000 (22:03 -0700)]
Fix ia64 build error in lll_futex_timed_wait_bitset

10 years agoFix unwind.h configure check for bare environment.
Roland McGrath [Fri, 4 Jul 2014 04:46:59 +0000 (21:46 -0700)]
Fix unwind.h configure check for bare environment.

10 years agoAdd missing #include in sysdeps/alpha/fpu/s_nearbyint.c
Roland McGrath [Fri, 4 Jul 2014 04:15:56 +0000 (21:15 -0700)]
Add missing #include in sysdeps/alpha/fpu/s_nearbyint.c

10 years agoRobustify Linux kernel headers configure checks
Roland McGrath [Fri, 4 Jul 2014 03:35:42 +0000 (20:35 -0700)]
Robustify Linux kernel headers configure checks

10 years agoS390: Quash unused variable warning due to no-op THREAD_SET_POINTER_GUARD.
Roland McGrath [Fri, 4 Jul 2014 02:17:00 +0000 (19:17 -0700)]
S390: Quash unused variable warning due to no-op THREAD_SET_POINTER_GUARD.

10 years agoRestore subdir conditional for tst-timer dependency.
Siddhesh Poyarekar [Fri, 4 Jul 2014 01:52:51 +0000 (18:52 -0700)]
Restore subdir conditional for tst-timer dependency.

10 years agoalpha: Remove nearbyint and nearbyintf implementations
Richard Henderson [Thu, 3 Jul 2014 17:37:59 +0000 (10:37 -0700)]
alpha: Remove nearbyint and nearbyintf implementations

The original implementation was written for EV5, which does not
record inexact in the status register for /SU (but no /I) insns.
But EV6 does record the inexact status; the lack of /I simply
means that the exception is suppressed.

Adding feholdexcept becomes the bulk of the overhead, so we might
as well use the default implementation.

10 years agoalpha: Implement math_opt_barrier and math_force_eval
Richard Henderson [Thu, 3 Jul 2014 15:56:55 +0000 (08:56 -0700)]
alpha: Implement math_opt_barrier and math_force_eval

10 years agoalpha: Fix lround implementations
Richard Henderson [Thu, 3 Jul 2014 15:52:45 +0000 (08:52 -0700)]
alpha: Fix lround implementations

Use chopped rounding to add 0.5.

10 years agoalpha: Remove round and roundf implementations
Richard Henderson [Thu, 3 Jul 2014 15:45:57 +0000 (08:45 -0700)]
alpha: Remove round and roundf implementations

Two bugs in these implementations: First is that the add of 0.5
was not done in chopped rounding mode (easily fixable).  Second
is that the method generates incorrect inexact exceptions for
small integral values (not easily fixable).

10 years agoChangelog for last 8 patches
Richard Henderson [Thu, 3 Jul 2014 15:37:55 +0000 (08:37 -0700)]
Changelog for last 8 patches

10 years agoRely on HP_TIMING_AVAIL implies HP_SMALL_TIMING_AVAIL
Richard Henderson [Tue, 1 Jul 2014 17:30:18 +0000 (10:30 -0700)]
Rely on HP_TIMING_AVAIL implies HP_SMALL_TIMING_AVAIL

10 years agoAlways provide HP_SMALL_TIMING_AVAIL
Richard Henderson [Tue, 1 Jul 2014 17:20:14 +0000 (10:20 -0700)]
Always provide HP_SMALL_TIMING_AVAIL