external/glibc.git
10 years agoAdd correct variable names for _POSIX_IPV6 and _POSIX_RAW_SOCKETS
Siddhesh Poyarekar [Mon, 15 Sep 2014 04:38:38 +0000 (10:08 +0530)]
Add correct variable names for _POSIX_IPV6 and _POSIX_RAW_SOCKETS

getconf only recognizes IPV6 and RAW_SOCKETS, when the standard
requires it to recognize the actual configuration variable name[1].  I
have not removed the earlier names for compatibility.

* posix/getconf.c (vars): Add _POSIX_IPV6 and
_POSIX_RAW_SOCKETS.

[1] http://pubs.opengroup.org/onlinepubs/007904875/functions/sysconf.html

10 years agoUpdate Russian translation
Allan McRae [Sat, 13 Sep 2014 05:41:54 +0000 (15:41 +1000)]
Update Russian translation

10 years agoMinor cleanup in locale.c
Roland McGrath [Fri, 12 Sep 2014 23:07:23 +0000 (16:07 -0700)]
Minor cleanup in locale.c

10 years agoMinor cleanup in ld-ctype.c
Roland McGrath [Fri, 12 Sep 2014 22:59:10 +0000 (15:59 -0700)]
Minor cleanup in ld-ctype.c

10 years agoDon't use a nested function in rpmatch.
Roland McGrath [Fri, 12 Sep 2014 21:58:55 +0000 (14:58 -0700)]
Don't use a nested function in rpmatch.

10 years agoRemove configuration name patterns from shlib-versions.
Joseph Myers [Fri, 12 Sep 2014 12:28:47 +0000 (12:28 +0000)]
Remove configuration name patterns from shlib-versions.

This patch removes the first column (patterns matching configuration
names) from shlib-versions, leaving shlib-versions entry selection
based purely on sysdeps directories.

An implication of this removal is that the default for any non-Linux
ports using NPTL will be the same SONAMEs for NPTL libraries as for
Linux (as those defaults, previously limited to .*-.*-linux.*, are
left in nptl/shlib-versions and nptl_db/shlib-versions).

Special host_os handling in configure.ac that was purely for
shlib-versions is removed.  (The host_os setting is still used for
libc-abis - see
<https://sourceware.org/ml/libc-alpha/2014-01/msg00375.html> regarding
that - but no entries there are affected by this change.)

Tested on x86_64 and x86 that the installed shared libraries are
unchanged by this patch.

* scripts/soversions.awk: Do not handle configuration names.
* Makeconfig ($(common-objpfx)soversions.i): Do not pass cpu,
vendor and os variables to soversions.awk.
* configure.ac: Do not modify gnu-* host_os.
* configure: Regenerated
* shlib-versions: Remove first column with configuration names.
* nptl/shlib-versions: Likewise.
* nptl_db/shlib-versions: Likewise.
* sysdeps/hppa/shlib-versions: Likewise.
* sysdeps/m68k/shlib-versions: Likewise.
* sysdeps/mach/hurd/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/aarch64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/alpha/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/arm/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/hppa/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/ia64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/microblaze/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/mips/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/tile/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.

libidn/ChangeLog:
* shlib-versions: Remove first column with configuration names.

10 years agoUse %ifdef in sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions.
Joseph Myers [Fri, 12 Sep 2014 12:25:36 +0000 (12:25 +0000)]
Use %ifdef in sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions.

This patch makes
sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions use %ifdef
conditionals around the different symbol version definitions for big
and little endian.  (It doesn't actually change the host patterns used
for those definitions; the point is to make it possible to remove the
first column from shlib-versions by eliminating the last case where it
would be harmful for it to be treated as .*-.*-.*.)  The conditional
is based on the ELFv1/ELFv2 distinction rather than BE/LE, since
that's what's already tested in configure and used for the ld.so
soname in the Makefiles.  (Of course if BE ELFv2 were supported in
future, it would get new symbol versions and so need new
conditionals.)

* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
(HAVE_ELFV2_ABI): AC_DEFINE in ELFv2 case.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure:
Regenerated.
* config.h.in (HAVE_ELFV2_ABI): New macro undefine.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:
Condition symbol version definitions on [HAVE_ELFV2_ABI].

10 years agoMove OS-specific shlib-versions entries to sysdeps files.
Joseph Myers [Fri, 12 Sep 2014 12:24:00 +0000 (12:24 +0000)]
Move OS-specific shlib-versions entries to sysdeps files.

This patch moves OS-specific entries in the top-level shlib-versions
file to appropriate sysdeps directories.  I left the entries in
nptl/shlib-versions and nptl_db/shlib-versions unchanged; I think it
can be for those doing non-Linux NPTL-using ports to figure out
whether those entries should actually be OS-independent or should move
to sysdeps.

Given these two patches, I think the only further change needed before
the first column of shlib-versions can be eliminated will be changing
sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions to use %ifdef
to distinguish BE and LE configurations, instead of relying on the
powerpc64-.*-linux.* and powerpc.*le-.*-linux.* patterns.

Tested on x86_64 that the installed shared libraries are unchanged by
this patch.

* shlib-versions: Remove OS-specific entries.  Moved to files in
sysdeps.
* sysdeps/mach/hurd/shlib-versions: New file.
* sysdeps/unix/sysv/linux/shlib-versions: Likewise.

10 years agoMove architecture-specific shlib-versions entries to sysdeps files.
Joseph Myers [Fri, 12 Sep 2014 12:22:27 +0000 (12:22 +0000)]
Move architecture-specific shlib-versions entries to sysdeps files.

This patch eliminates another way in which ex-ports and non-ex-ports
architectures differ, by moving architecture-specific entries from the
top-level shlib-versions file and that in nptl/ to appropriate sysdeps
directories.  As with my previous patch
<https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>, I do not
change the regular expressions used; even where the present
expressions seem more general, I believe they are in fact specific to
the chosen sysdeps directory, because any port that matches the
expression but not the sysdeps directory does not currently exist, and
so would use different symbol versions if added in future (and an
intended goal of these changes is to eliminate the first column in
shlib-versions completely rather than having two different mechanisms
in use for system-specific configuration).

Tested on x86_64 that this does not change the installed shared
libraries.  (x86_64 of course does not provide much test coverage for
this patch - what should be architecture-specific contents in
shlib-versions for x86_64 is currently abi-*-ld-soname Makefile
settings, until gnu/lib-names.h is generated more like gnu/stubs.h so
those can move back to shlib-versions.)

* nptl/shlib-versions: Remove architecture-specific entries.
Moved to files in sysdeps.
* shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.

10 years agoAdd new Linux 3.16 constants to netinet/udp.h.
Joseph Myers [Fri, 12 Sep 2014 12:13:08 +0000 (12:13 +0000)]
Add new Linux 3.16 constants to netinet/udp.h.

This patch adds the new constants UDP_NO_CHECK6_TX and
UDP_NO_CHECK6_RX from Linux 3.16 to sysdeps/gnu/netinet/udp.h.  (I
believe the existing constants there are already Linux-specific,
possibly with the intention that other OSes should adopt the same
values if possible if adopting the features in question.)

Tested on x86_64.

* sysdeps/gnu/netinet/udp.h (UDP_NO_CHECK6_TX): New macro.
(UDP_NO_CHECK6_RX): Likewise.

10 years agoFix typo in macro names in sysconf.c
Siddhesh Poyarekar [Fri, 12 Sep 2014 11:07:31 +0000 (16:37 +0530)]
Fix typo in macro names in sysconf.c

Spell _POSIX_DEVICE_SPECIFIC and _POSIX_DEVICE_SPECIFIC_R correctly.
Found when trying to make the getconf environment variables
typo-proof.

* sysdeps/posix/sysconf.c (__sysconf): Spell
_POSIX_DEVICE_SPECIFIC and _POSIX_DEVICE_SPECIFIC_R correctly.

10 years agoComplete the removal of __gconv_translit_find
Florian Weimer [Fri, 12 Sep 2014 07:17:32 +0000 (09:17 +0200)]
Complete the removal of __gconv_translit_find

Prior to the 2.20 release, the function was just changed to fail
unconditionally, in commit a1a6a401ab0a3c9f15fb7eaebbdcee24192254e8.
This commit removes the function completely, including gconv bits
which depend on it.

This changes the gconv ABI, which is not a public interface.

10 years agoEnhance tst-xmmymm.sh to detect zmm register usage in ld.so (BZ #16194)
Siddhesh Poyarekar [Fri, 12 Sep 2014 07:01:05 +0000 (12:31 +0530)]
Enhance tst-xmmymm.sh to detect zmm register usage in ld.so (BZ #16194)

2d63a517e4084ec80403cd9f278690fa8b676cc4 added support to save and
restore zmm register in the dynamic linker, but did not enhance
test-xmmymm.sh to detect accidental usage of these registers.  The
patch below adds that check.

The script has also been renamed to tst-ld-sse-use.sh.  To see the
minimal changes, run `git show -M`.

[BZ #16194]
* sysdeps/x86/tst-xmmymm.sh: Rename file to...
* sysdeps/x86/tst-ld-sse-use.sh: ... this.  Check for zmm
register usage.
* sysdeps/x86/Makefile: Adjust.

10 years agoMove findidx nested functions to top-level.
Roland McGrath [Thu, 11 Sep 2014 23:02:17 +0000 (16:02 -0700)]
Move findidx nested functions to top-level.

10 years agomalloc: additional unlink hardening for non-small bins [BZ #17344]
Florian Weimer [Wed, 10 Sep 2014 18:29:15 +0000 (20:29 +0200)]
malloc: additional unlink hardening for non-small bins [BZ #17344]

Turn two asserts into a conditional call to malloc_printerr.  The
memory locations are accessed later anyway, so the performance
impact is minor.

10 years agoFix memory leak in libio/wfileops.c do_ftell_wide [BZ #17370]
Tim Lammens [Thu, 11 Sep 2014 05:05:54 +0000 (10:35 +0530)]
Fix memory leak in libio/wfileops.c do_ftell_wide [BZ #17370]

10 years agotile: remove linux lowlevellock.h
Chris Metcalf [Wed, 10 Sep 2014 20:57:29 +0000 (16:57 -0400)]
tile: remove linux lowlevellock.h

10 years agoReturn failure in getnetgrent only when all netgroups have been searched (#17363)
Siddhesh Poyarekar [Wed, 10 Sep 2014 16:21:50 +0000 (21:51 +0530)]
Return failure in getnetgrent only when all netgroups have been searched (#17363)

The netgroups lookup code fails when one of the groups in the search
tree is empty.  In such a case it only returns the leaves of the tree
after the blank netgroup.  This is because the line parser returns a
NOTFOUND status when the netgroup exists but is empty.  The
__getnetgrent_internal implementation needs to be fixed to try
remaining groups if the current group is entry.  This patch implements
this fix.  Tested on x86_64.

[BZ #17363]
* inet/getnetgrent_r.c (__internal_getnetgrent_r): Try next
group if the current group is empty.

10 years agoPowerPC: memset optimization for POWER8/PPC64
Adhemerval Zanella [Tue, 15 Jul 2014 16:19:09 +0000 (12:19 -0400)]
PowerPC: memset optimization for POWER8/PPC64

This patch adds an optimized memset implementation for POWER8.  For
sizes from 0 to 255 bytes, a word/doubleword algorithm similar to
POWER7 optimized one is used.

For size higher than 255 two strategies are used:

1. If the constant is different than 0, the memory is written with
   altivec vector instruction;

2. If constant is 0, dbcz instructions are used.  The loop is unrolled
   to clear 512 byte at time.

Using vector instructions increases throughput considerable, with a
double performance for sizes larger than 1024.  The dcbz loops unrolls
also shows performance improvement, by doubling throughput for sizes
larger than 8192 bytes.

10 years agoPowerPC: multiarch bzero cleanup for PPC64
Adhemerval Zanella [Tue, 15 Jul 2014 20:54:46 +0000 (16:54 -0400)]
PowerPC: multiarch bzero cleanup for PPC64

This patch cleanups the multiarch bzero for powerpc64 by remove
the multiarch objects and use instead the the memset embedded
implementation presented in each multiarch optimization.  The
code generate is essentially the same, but the TB_TOCLESS (which
is not essential).

10 years agoTurn on -Werror=implicit-function-declaration
Florian Weimer [Mon, 8 Sep 2014 11:49:36 +0000 (13:49 +0200)]
Turn on -Werror=implicit-function-declaration

GCC 4.4, the minimum compiler version, supports this option.  Unlike
other warnings, -Wimplicit-function-declaration warnings should be
independent of compiler versions, so this change should not cause
compiler-specific build failures.

10 years agoPut mips preconfigure code inside mips* case statement.
Steve Ellcey [Tue, 9 Sep 2014 17:58:00 +0000 (10:58 -0700)]
Put mips preconfigure code inside mips* case statement.
Fix capitalization of error message.

10 years agoModify ABI tests in MIPS preconfigure.
Steve Ellcey [Tue, 9 Sep 2014 17:01:51 +0000 (10:01 -0700)]
Modify ABI tests in MIPS preconfigure.

10 years agoHPPA: Add c++-types.data.
Carlos O'Donell [Mon, 8 Sep 2014 02:09:49 +0000 (22:09 -0400)]
HPPA: Add c++-types.data.

Added c++-types.data to baseline for HPPA. At this point `make check`
completes without error, and the full testing results are summarized.

10 years agoHPPA: Transition to new non-addon NPTL.
Carlos O'Donell [Sun, 7 Sep 2014 20:18:06 +0000 (16:18 -0400)]
HPPA: Transition to new non-addon NPTL.

Merge roland/nptl-hppa to master, update and test for hppa-linux-gnu.

This commit squashes and commits the work done by Roland McGrath on
roland/nptl-hppa to migrate hppa to the new non-addon NPTL. Some
additional tweaks were required for tcb-offsets.sym to work correctly
along with clone.S (unique to hppa).

10 years agoOpen development for 2.21
Allan McRae [Sun, 7 Sep 2014 23:22:55 +0000 (09:22 +1000)]
Open development for 2.21

10 years agoUpdate version.h and include/features.h for 2.20 release
Allan McRae [Sun, 7 Sep 2014 08:09:09 +0000 (18:09 +1000)]
Update version.h and include/features.h for 2.20 release

10 years agoUpdate contrib.texi
Allan McRae [Sun, 7 Sep 2014 06:07:10 +0000 (16:07 +1000)]
Update contrib.texi

Add entries for Wilco Dijkstra and Stefan Liebler.

10 years agoUpdate Korean translation
Allan McRae [Sun, 7 Sep 2014 05:50:34 +0000 (15:50 +1000)]
Update Korean translation

10 years ago[BZ #17354] tile: Fix up corner cases with signed relocations
Chris Metcalf [Fri, 5 Sep 2014 18:40:23 +0000 (14:40 -0400)]
[BZ #17354] tile: Fix up corner cases with signed relocations

Some types of relocations technically need to be signed rather than
unsigned: in particular ones that are used with moveli or movei,
or for jump and branch.  This is almost never a problem.  Jump and
branch opcodes are pretty much uniformly resolved by the static linker
(unless you omit -fpic for a shared library, which is not recommended).
The moveli and movei opcodes that need to be sign-extended generally
are for positive displacements, like the construction of the address of
main() from _start().  However, tst-pie1 ends up with main below _start
(in a different module) and the test failed due to signedness issues in
relocation handling.

This commit treats the value as signed when shifting (to preserve the
high bit) and also sign-extends the value generated from the updated
bundle when comparing with the desired bundle, which we do to make sure
no overflow occurred.  As a result, the tst-pie1 test now passes.

10 years agoCVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325]
Florian Weimer [Wed, 3 Sep 2014 17:45:43 +0000 (19:45 +0200)]
CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325]

These changes are based on the fix for BZ #14134 in commit
6e230d11837f3ae7b375ea69d7905f0d18eb79e5.

10 years agoDefine __GI_fegetenv for e500 libm
Khem Raj [Tue, 2 Sep 2014 21:39:04 +0000 (21:39 +0000)]
Define __GI_fegetenv for e500 libm

generic HAVE_RM_CTX implementation which is used for ppc/e500 as well
has introduced calls to fegetenv which should be resolved internally
with in libm

Signed-off-by: Khem Raj <raj.khem@gmail.com>
* sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c (fegetenv): Add
libm_hidden_ver.

10 years agoUpdate Esperanto translation
Allan McRae [Mon, 1 Sep 2014 00:48:22 +0000 (10:48 +1000)]
Update Esperanto translation

10 years agoUpdate Catalan translation
Allan McRae [Mon, 1 Sep 2014 00:47:30 +0000 (10:47 +1000)]
Update Catalan translation

10 years agoFix hang on fork
Samuel Thibault [Thu, 28 Aug 2014 20:08:39 +0000 (22:08 +0200)]
Fix hang on fork

If e.g. a signal is being received while we are running fork(), the signal
thread may be having our SS lock when we make the space copy, and thus in the
child we can not take the SS lock any more.

* sysdeps/mach/hurd/fork.c (__fork): Lock SS->lock around __proc_dostop call.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
10 years agoi386 TLS_INIT_TP might produce bogus asm changing stack pointer [BZ #17319]
Mark Wielaard [Wed, 27 Aug 2014 15:07:58 +0000 (17:07 +0200)]
i386 TLS_INIT_TP might produce bogus asm changing stack pointer [BZ #17319]

TLS_INIT_TP in sysdeps/i386/nptl/tls.h uses some hand written asm to
generate a set_thread_area that might result in exchanging ebx and esp
around the syscall causing introspection tools like valgrind to loose
track of the user stack. Just use INTERNAL_SYSCALL which makes sure
esp isn't changed arbitrarily.

Before the patch the code would generate:

mov    $0xf3,%eax
movl   $0xfffff,0x8(%esp)
movl   $0x51,0xc(%esp)
xchg   %esp,%ebx
int    $0x80
xchg   %esp,%ebx

Using INTERNAL_SYSCALL instead will generate:

movl   $0xfffff,0x8(%esp)
movl   $0x51,0xc(%esp)
xchg   %ecx,%ebx
mov    $0xf3,%eax
int    $0x80
xchg   %ecx,%ebx

Thanks to Florian Weimer for analysing why the original code generated
the bogus esp usage:

  _segdescr.desc happens to be at the top of the stack, so its address
  is in %esp.  The asm statement says that %3 is an input, so its value
  will not change, and GCC can use %esp as the input register for the
  expression &_segdescr.desc.  But the constraints do not fully describe
  the asm statement because the %3 register is actually modified, albeit
  only temporarily.

[BZ #17319]
* sysdeps/i386/nptl/tls.h (TLS_INIT_TP): Use INTERNAL_SYSCALL
to call set_thread_area instead of hand written asm.
(__NR_set_thread_area): Removed define.
(TLS_FLAG_WRITABLE): Likewise.
(__ASSUME_SET_THREAD_AREA): Remove check.
(TLS_EBX_ARG): Remove define.
(TLS_LOAD_EBX): Likewise.

10 years agoSimplify atomicity of socket creation in bind.
Samuel Thibault [Wed, 27 Aug 2014 22:11:54 +0000 (00:11 +0200)]
Simplify atomicity of socket creation in bind.

10 years agoNEWS: Typo fix: s/wil /will /g
Carlos O'Donell [Wed, 27 Aug 2014 15:53:25 +0000 (11:53 -0400)]
NEWS: Typo fix: s/wil /will /g

10 years agoUpdate x86 ULPs
Allan McRae [Wed, 27 Aug 2014 03:36:02 +0000 (13:36 +1000)]
Update x86 ULPs

Using gcc-4.9, i7-2620M, i686 Linux.

10 years agoFix typo in CVE ID
Florian Weimer [Tue, 26 Aug 2014 18:43:07 +0000 (20:43 +0200)]
Fix typo in CVE ID

10 years ago__gconv_translit_find: Disable function [BZ #17187]
Florian Weimer [Tue, 26 Aug 2014 17:38:59 +0000 (19:38 +0200)]
__gconv_translit_find: Disable function [BZ #17187]

This functionality has never worked correctly, and the implementation
contained a security vulnerability (CVE-2014-5119).

10 years agoUpdate Vietnamese translation
Allan McRae [Tue, 26 Aug 2014 12:44:23 +0000 (22:44 +1000)]
Update Vietnamese translation

10 years agoUpdate Ukrainian translation
Allan McRae [Tue, 26 Aug 2014 12:43:31 +0000 (22:43 +1000)]
Update Ukrainian translation

10 years agoUpdate French translation
Allan McRae [Tue, 26 Aug 2014 12:42:36 +0000 (22:42 +1000)]
Update French translation

10 years agoUpdate Russian translation
Allan McRae [Tue, 26 Aug 2014 12:41:48 +0000 (22:41 +1000)]
Update Russian translation

10 years agoUpdate Polish translation
Allan McRae [Tue, 26 Aug 2014 12:41:00 +0000 (22:41 +1000)]
Update Polish translation

10 years agoUpdate Czech translation
Allan McRae [Tue, 26 Aug 2014 12:39:33 +0000 (22:39 +1000)]
Update Czech translation

10 years agoUpdate German translation
Allan McRae [Tue, 26 Aug 2014 12:38:47 +0000 (22:38 +1000)]
Update German translation

10 years agoUpdate Bulgarian translation
Allan McRae [Tue, 26 Aug 2014 12:36:52 +0000 (22:36 +1000)]
Update Bulgarian translation

10 years agoUpdate Sweedish translation
Allan McRae [Tue, 26 Aug 2014 12:33:50 +0000 (22:33 +1000)]
Update Sweedish translation

10 years agoUpdate Dutch translation
Allan McRae [Tue, 26 Aug 2014 12:32:32 +0000 (22:32 +1000)]
Update Dutch translation

10 years agoUpdate Spanish translation
Allan McRae [Tue, 26 Aug 2014 12:31:31 +0000 (22:31 +1000)]
Update Spanish translation

10 years agoRemove NOT_IN_libc definition for pthread_atfork
Siddhesh Poyarekar [Thu, 21 Aug 2014 05:00:55 +0000 (10:30 +0530)]
Remove NOT_IN_libc definition for pthread_atfork

pthread_atfork is already built in an extra-libs context, which gives
it NOT_IN_libc in its CPPFLAGS.  Adding the same definition to CFLAGS
is pointless.

Verified that the code is unchanged on x86_64.

10 years agoRemove redundant CPPFLAGS for some programs
Siddhesh Poyarekar [Thu, 21 Aug 2014 04:57:13 +0000 (10:27 +0530)]
Remove redundant CPPFLAGS for some programs

These programs get the NOT_IN_libc twice, once through the 'other'
target and another explicitly.  Remove the explicitly added CPFLAG.

* catgets/Makefile (CPPFLAGS-gencat): Remove.
* iconv/Makefile (CPPFLAGS-iconv_prog): Likewise.
(CPPFLAGS-iconvconfig): Likewise.
* timezone/Makefile (CPPFLAGS-zic): Likewise.

10 years agoRemove unnecessary uses of NOT_IN_libc
Siddhesh Poyarekar [Thu, 21 Aug 2014 04:56:46 +0000 (10:26 +0530)]
Remove unnecessary uses of NOT_IN_libc

If a IS_IN_* macro is defined, then NOT_IN_libc is always defined,
except obviously for IS_IN_libc.  There's no need to check for both.
Verified on x86_64 and i686 that the source is unchanged.

       * include/libc-symbols.h: Remove unnecessary check for
       NOT_IN_libc.
       * nptl/pthreadP.h: Likewise.
       * sysdeps/aarch64/setjmp.S: Likewise.
       * sysdeps/alpha/setjmp.S: Likewise.
       * sysdeps/arm/sysdep.h: Likewise.
       * sysdeps/i386/setjmp.S: Likewise.
       * sysdeps/m68k/setjmp.c: Likewise.
       * sysdeps/posix/getcwd.c: Likewise.
       * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
       * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise.
       * sysdeps/s390/s390-32/setjmp.S: Likewise.
       * sysdeps/s390/s390-64/setjmp.S: Likewise.
       * sysdeps/sh/sh3/setjmp.S: Likewise.
       * sysdeps/sh/sh4/setjmp.S: Likewise.
       * sysdeps/unix/alpha/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
       * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
       * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
       * sysdeps/x86_64/setjmp.S: Likewise.

10 years agoMention fixes for BZs 16194 and 16275 in NEWS
H.J. Lu [Wed, 13 Aug 2014 15:04:54 +0000 (08:04 -0700)]
Mention fixes for BZs 16194 and 16275 in NEWS

10 years agoFix powerpc32 __get_clockfreq for non-power4 (bug 17263).
Joseph Myers [Wed, 13 Aug 2014 16:06:18 +0000 (16:06 +0000)]
Fix powerpc32 __get_clockfreq for non-power4 (bug 17263).

In my powerpc32 testing I've observed misc/test-gettimebasefreq
failing.

This is a glibc build (soft-float, though that's not relevant here)
without any --with-cpu and without any special configuration of the
default CPU for GCC either.  In particular, it's one not using
sysdeps/powerpc/powerpc32/power4/hp-timing.h (although in fact the
processor I'm using for testing is POWER4-based), so hp_timing_t is
32-bit not 64-bit.  But the VDSO call being used by
INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK is generating a 64-bit result
(high part in r3, low part in r4).  The code extracting that result,
however, expects a result of the type hp_timing_t as passed to
INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK, meaning that only r3 (= 0) is
used and the value in r4 is ignored.  This patch fixes this by always
using uint64_t as the type in INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK -
reflecting the actual ABI (unconditional in the kernel) of that VDSO
call.  This is the minimal change for this issue - no check for
overflow, no change of the type of the timebase_freq variable or the
return type of __get_clockfreq to something other than hp_timing_t
(such a change would simply move the implicit conversions to the over
callers of that function), no change to hp_timing_t itself.

Tested for powerpc32 soft float.

[BZ #17263]
* sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Include
<stdint.h>.
(__get_clockfreq): Use uint64_t instead of hp_timing_t in
INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK call.

10 years agoFix comment error that Jakub pointed out but I forgot to fix
Siddhesh Poyarekar [Wed, 13 Aug 2014 13:16:41 +0000 (18:46 +0530)]
Fix comment error that Jakub pointed out but I forgot to fix

10 years agoDisable x87 inline functions for x86_64 and SSE [BZ #17262]
Siddhesh Poyarekar [Wed, 13 Aug 2014 08:35:15 +0000 (14:05 +0530)]
Disable x87 inline functions for x86_64 and SSE [BZ #17262]

Since:

commit 409e00bd69b8d8dd74d7327085351d26769ea6fc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jan 29 07:51:41 2014 -0800

    Disable x87 inline functions for SSE2 math

    When i386 and x86-64 mathinline.h was merged into a single mathinline.h,
    "gcc -m32" enables x87 inline functions on x86-64 even when -mfpmath=sse
    and SSE2 is enabled.  It is a regression on x86-64.  We should check
    __SSE2_MATH__ instead of __x86_64__ when disabling x87 inline functions.

gcc-3.2 is unable to correctly compile x86_64 routines for llrint
since it gets redefined.  This is because gcc 3.2 does not set
__SSE2_MATH__ for x86_64, thus exposing the duplicate definition.

The correct fix ought to be to check for both __SSE2_MATH__ and
__x86_64__ and enable those bits only when neither are defined.

Tested fix with the reproducer for
409e00bd69b8d8dd74d7327085351d26769ea6fc as well as with gcc-3.2.

10 years agoReplace cpuid asm statement with __cpuid_count
H.J. Lu [Wed, 13 Aug 2014 00:02:51 +0000 (17:02 -0700)]
Replace cpuid asm statement with __cpuid_count

The compiler doesn't know that the cpuid asm statement in intel_check_word
will trash RBX.  We are lucky that it doesn't cause any problems since
RBX is also used by compiler for other purposes so that RBX is saved and
restored.  This patch replaces it with __cpuid_count.

[BZ #17259]
* sysdeps/x86_64/cacheinfo.c (intel_check_word): Replace cpuid
asm statement with __cpuid_count.

10 years agodetect broken linker handling of __ehdr_start
Mike Frysinger [Thu, 7 Aug 2014 03:44:29 +0000 (23:44 -0400)]
detect broken linker handling of __ehdr_start

Older versions of ld on ia64 support __ehdr_start, but generate relocs
when they shouldn't.  This causes the ld.so to not run because it tries
to resolve the __ehdr_start symbol (but it's not exported).

10 years agoFix powerpc-nofpu __fe_enabled_env and __fe_nonieee_env (bug 17261).
Joseph Myers [Tue, 12 Aug 2014 20:31:54 +0000 (20:31 +0000)]
Fix powerpc-nofpu __fe_enabled_env and __fe_nonieee_env (bug 17261).

On powerpc, floating-point environment macros are defined as pointers
to constants in the library that contain the bit-patterns of the
desired environment, instead of being magic constants cast to pointer
type.

For soft-float, the bit-patterns used for fenv_t are not laid out the
same as for hard-float.  (e500 has a third layout used; that's not an
ABI issue because these values are only meaningful within a single
process, all of whose glibc libraries must come from the same build of
glibc.)  While the __fe_dfl_env value for soft-float was appropriate
for the soft-float fenv_t representation, the other two constants had
the same bit-patterns as for hard-float.  Those bit patterns had the
effect of having exceptions already raised, causing
math/test-fenv-return to fail; this patch fixes the patterns used.
(__fe_nonieee_env also had exceptions unmasked, though they should be
masked to match hard-float semantics.  Since there is no separate
non-IEEE mode for soft-float, it's most appropriate for
__fe_nonieee_env to be the same as __fe_dfl_env; this patch makes it
an alias.)

Tested for powerpc-nofpu.

[BZ #17261]
* sysdeps/powerpc/nofpu/fenv_const.c (__fe_enabled_env): Change
value to 0.
(__fe_nonieee_env): Define as an alias for __fe_dfl_env.

10 years agoNEWS: Mention x86-64 ld.so use of Intel MPX instructions.
Roland McGrath [Tue, 12 Aug 2014 16:49:58 +0000 (09:49 -0700)]
NEWS: Mention x86-64 ld.so use of Intel MPX instructions.

10 years agoAdd BZ #16892 to NEWS
Will Newton [Tue, 12 Aug 2014 12:01:13 +0000 (13:01 +0100)]
Add BZ #16892 to NEWS

10 years agoCheck value of futex before updating in __lll_timedlock
Bernard Ogden [Mon, 11 Aug 2014 14:26:48 +0000 (15:26 +0100)]
Check value of futex before updating in __lll_timedlock

2014-08-12  Bernard Ogden  <bernie.ogden@linaro.org>

[BZ #16892]
* sysdeps/nptl/lowlevellock.h (__lll_timedlock): Use
atomic_compare_and_exchange_bool_acq rather than atomic_exchange_acq.

10 years agomalloc: fix comment typo
Sean Anderson [Tue, 12 Aug 2014 09:23:41 +0000 (05:23 -0400)]
malloc: fix comment typo

10 years agoRegenerate libc.po
Allan McRae [Sat, 9 Aug 2014 07:14:35 +0000 (17:14 +1000)]
Regenerate libc.po

10 years agotst-gettext2: make setup more robust
Mike Frysinger [Mon, 4 Aug 2014 14:31:27 +0000 (10:31 -0400)]
tst-gettext2: make setup more robust

This test should be more robust about setting up its lang dirs.
I had two completely different systems (ia64 & x86_64) get wedged
in a way where the test just kept FAILing on me due to some of the
files missing.  This probably wasn't a big deal until the recent
commit which made checking of the locale dirs more robust (for
security reasons).

10 years agoThis patch adds new function libc_feholdsetround_noex_aarch64_ctx, enabling
Wilco Dijkstra [Thu, 7 Aug 2014 16:29:55 +0000 (16:29 +0000)]
This patch adds new function libc_feholdsetround_noex_aarch64_ctx, enabling
further optimization. libc_feholdsetround_aarch64_ctx now only needs to
read the FPCR in the typical case, avoiding a redundant FPSR read.
Performance results show a good improvement (5-10% on sin()) on cores with
expensive FPCR/FPSR instructions.

10 years agoFix performance issue in misaligned strcpy.
Wilco [Thu, 7 Aug 2014 14:30:31 +0000 (14:30 +0000)]
Fix performance issue in misaligned strcpy.

10 years agoPowerPC: Fix termios definitions
Adhemerval Zanella [Thu, 24 Jul 2014 12:28:57 +0000 (08:28 -0400)]
PowerPC: Fix termios definitions

This patch fixes the incorrect guard by __USE_MISC of struct winsize and
struct termio in powerpc termios header.  Current states leads to build
failures if the program defines _XOPEN_SOURCE, but not _DEFAULT_SOURCE
or either _BSD_SOURCE or _SVID_SOURCE.  Without any definition,
__USE_MISC will not be defined and neither the struct definitions.

This patch copies the default Linux ioctl-types.h by adjusting only the
character control field (c_cc) size in struct termio.

10 years agoalpha: Fix exception raising from soft-fp
Richard Henderson [Tue, 5 Aug 2014 20:36:36 +0000 (13:36 -0700)]
alpha: Fix exception raising from soft-fp

Use the SSI_IEEE_RAISE_EXCEPTION function as from feraiseexcept,
instead of __ieee_get+set_fp_status.  Always raise the FP exceptions
from float-to-integer conversion.

10 years agoalpha: Remove linux lowlevellock.h
Richard Henderson [Tue, 5 Aug 2014 16:06:36 +0000 (09:06 -0700)]
alpha: Remove linux lowlevellock.h

For real this time.

10 years agoalpha: Remove linux lowlevellock.h
Richard Henderson [Tue, 5 Aug 2014 15:31:47 +0000 (08:31 -0700)]
alpha: Remove linux lowlevellock.h

10 years agoMIPS - Remove mips lowlevellock.h.
Bernard Ogden [Mon, 4 Aug 2014 22:12:03 +0000 (22:12 +0000)]
MIPS - Remove mips lowlevellock.h.

* sysdeps/unix/sysv/linux/mips/lowlevellock.h: Remove file.

10 years agoAArch64: Remove lowlevellock.h
Will Newton [Mon, 4 Aug 2014 15:01:31 +0000 (16:01 +0100)]
AArch64: Remove lowlevellock.h

Remove lowlevellock.h in favour of the generic implementation. The
generic implementation was tested natively and introduces no
regressions.

ChangeLog:

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

* sysdeps/unix/sysv/linux/aarch64/lowlevellock.h: Remove
file.

10 years agoadd ChangeLog for previous commit
Mike Frysinger [Mon, 4 Aug 2014 14:31:01 +0000 (10:31 -0400)]
add ChangeLog for previous commit

10 years agoia64: define nocancel entry points in PSEUDO
Mike Frysinger [Sun, 3 Aug 2014 16:14:35 +0000 (16:14 +0000)]
ia64: define nocancel entry points in PSEUDO

The previous set of not-cancel.h headers (prior to the commit
2fbdf5339aaeaa423bd661524f7ec7af41fa2606) did not require the
arch to define nocancel entry points, so ia64 never did.
However, after the various files were merged, it became a hard
requirement for arches which mean ia64 failed to build.

Here we add dedicated entry points.  It'd be nice to merge
with the existing stubs like other arches do, but the ia64
asm does not lend itself to interleaving of functions.  If
someone has a suggestion on merging these, that'd be great,
but at least now we build & pass tests again.

10 years agoIA64: Consolidate nptl/ subdirectories under linux/...
Roland McGrath [Fri, 4 Jul 2014 05:19:41 +0000 (22:19 -0700)]
IA64: Consolidate nptl/ subdirectories under linux/...

10 years agoIA64: Move NPTL public headers to sysdeps/ia64/nptl/.
Roland McGrath [Fri, 4 Jul 2014 04:51:13 +0000 (21:51 -0700)]
IA64: Move NPTL public headers to sysdeps/ia64/nptl/.

10 years agoIA64: Define TLS_DEFINE_INIT_TP
Roland McGrath [Fri, 4 Jul 2014 04:51:01 +0000 (21:51 -0700)]
IA64: Define TLS_DEFINE_INIT_TP

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