external/glibc.git
9 years agopowerpc: multiarch Makefile cleanup for powerpc64
Adhemerval Zanella [Tue, 20 Jan 2015 20:41:38 +0000 (15:41 -0500)]
powerpc: multiarch Makefile cleanup for powerpc64

This patch cleanups the multiarch Makefile by putting the wide chars
implementation to correct wcsmbs rule.

9 years agoFix value of O_TMPFILE for architectures with non-default O_DIRECTORY (bug 17912)
Andreas Schwab [Sun, 1 Feb 2015 13:04:15 +0000 (14:04 +0100)]
Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (bug 17912)

9 years agohurd: fix unwind-resume.c build
Samuel Thibault [Sun, 8 Feb 2015 17:46:00 +0000 (18:46 +0100)]
hurd: fix unwind-resume.c build

9 years agohurd: fix unwind-resume.c build
Samuel Thibault [Sun, 8 Feb 2015 17:35:54 +0000 (18:35 +0100)]
hurd: fix unwind-resume.c build

9 years agoadd hurd/hurdsocket.h file missing from a5eb23d
Samuel Thibault [Sun, 8 Feb 2015 16:49:16 +0000 (17:49 +0100)]
add hurd/hurdsocket.h file missing from a5eb23d

9 years agoFix time/getdate.c build.
Samuel Thibault [Sun, 8 Feb 2015 16:45:25 +0000 (17:45 +0100)]
Fix time/getdate.c build.

9 years agohurd: Fix abi-tag, following ba90e05
Samuel Thibault [Sun, 8 Feb 2015 04:38:03 +0000 (05:38 +0100)]
hurd: Fix abi-tag, following ba90e05

9 years agohurd: fix tls.h build
Samuel Thibault [Sun, 8 Feb 2015 04:06:17 +0000 (05:06 +0100)]
hurd: fix tls.h build

9 years agohurd: Ignore bytes beyond sockaddr length for AF_UNIX
Samuel Thibault [Sun, 8 Feb 2015 03:25:12 +0000 (04:25 +0100)]
hurd: Ignore bytes beyond sockaddr length for AF_UNIX

9 years agoAdd ersatz _Static_assert on older C hosts
Paul Eggert [Thu, 5 Feb 2015 23:52:20 +0000 (15:52 -0800)]
Add ersatz _Static_assert on older C hosts

* misc/sys/cdefs.h (_Static_assert): Define a substitute, if on a
pre-C11 C platform that is not known to support _Static_assert.

9 years agohurd: fix compilation of signal.h in C++
Samuel Thibault [Sat, 7 Feb 2015 21:39:38 +0000 (22:39 +0100)]
hurd: fix compilation of signal.h in C++

9 years agohurd: fix compilation of signal.h in C++
Samuel Thibault [Sat, 7 Feb 2015 21:35:35 +0000 (22:35 +0100)]
hurd: fix compilation of signal.h in C++

9 years agohurd: add basic types for ioctls
Samuel Thibault [Sat, 7 Feb 2015 21:26:09 +0000 (22:26 +0100)]
hurd: add basic types for ioctls

9 years agohurd: support mmap with PROT_NONE
Samuel Thibault [Sat, 7 Feb 2015 21:22:40 +0000 (22:22 +0100)]
hurd: support mmap with PROT_NONE

9 years agohurdselect: remove dead code.
Samuel Thibault [Sat, 7 Feb 2015 21:18:03 +0000 (22:18 +0100)]
hurdselect: remove dead code.

This removes code which actually never happens, and is already taken
care of in the function.

This is in the second part of select, when the __mach_msg() function
over the portset has returned something else than MACH_MSG_SUCCESS. I
guess in the past the value returned by __mach_msg() was stored in err,
so this code was necessary to set back err to 0, but now it is stored in
msgerr, so err is already still 0 by default. It can thus never contain
MACH_RCV_TIMED_OUT, i.e. the code is dead. The first case mentioned in
the comment is already handled: on time out with no message, err is
already still the default 0. On time out due to poll, err would still be
0, unless some of the io_select RPCs has returned EINTR, in which case
it contains EINTR. If any other io_select RPCs had returned a proper
answer, got!=0, and thus err is set to 0 just below. The code is thus
indeed not useful any more.

9 years agohurd: fix sigstate locking
Samuel Thibault [Sat, 7 Feb 2015 21:16:19 +0000 (22:16 +0100)]
hurd: fix sigstate locking

It looks like _hurd_thread_sigstate used to return with the sigstate
lock held long ago, but since that's no longer the case, don't unlock
something that isn't locked.

Note that it's unlikely this change fixes anything in practice since
its current implementation (on i386) makes this call a nop.

9 years agohurdselect: Let select get interrupted by signals
Samuel Thibault [Sat, 7 Feb 2015 21:13:46 +0000 (22:13 +0100)]
hurdselect: Let select get interrupted by signals

We need to set MACH_RCV_INTERRUPT to avoid __mach_msg just looping on signals,
and then we can handle the interruption.

9 years agohurd: map nice levels 1-to-1 with Mach prio levels
Samuel Thibault [Sat, 7 Feb 2015 21:09:09 +0000 (22:09 +0100)]
hurd: map nice levels 1-to-1 with Mach prio levels

9 years agohurd: allow poll() array bigger than FD_SETSIZE
Samuel Thibault [Sat, 7 Feb 2015 21:07:38 +0000 (22:07 +0100)]
hurd: allow poll() array bigger than FD_SETSIZE

9 years agohurd: fix f?chflags prototypes, declare them and their flags
Samuel Thibault [Sat, 7 Feb 2015 20:56:15 +0000 (21:56 +0100)]
hurd: fix f?chflags prototypes, declare them and their flags

9 years agohurd: fix build with pthread aio
Samuel Thibault [Sat, 7 Feb 2015 20:45:59 +0000 (21:45 +0100)]
hurd: fix build with pthread aio

9 years agoARM: Add missing sfi_breg in LDR_GLOBAL macro.
Roland McGrath [Fri, 6 Feb 2015 22:42:18 +0000 (14:42 -0800)]
ARM: Add missing sfi_breg in LDR_GLOBAL macro.

9 years agoNPTL: Conditionalize some sanity tests for SIGCANCEL/SIGSETXID.
Roland McGrath [Fri, 6 Feb 2015 20:31:11 +0000 (12:31 -0800)]
NPTL: Conditionalize some sanity tests for SIGCANCEL/SIGSETXID.

9 years agoConditionalize use of SIGRTMIN in nptl/tst-locale1.c.
Roland McGrath [Fri, 6 Feb 2015 20:30:58 +0000 (12:30 -0800)]
Conditionalize use of SIGRTMIN in nptl/tst-locale1.c.

9 years agoDon't set unused field in rt/tst-timer2.
Roland McGrath [Fri, 6 Feb 2015 20:30:38 +0000 (12:30 -0800)]
Don't set unused field in rt/tst-timer2.

9 years agoNPTL: Build tests using clone directly only for Linux.
Roland McGrath [Fri, 6 Feb 2015 20:30:23 +0000 (12:30 -0800)]
NPTL: Build tests using clone directly only for Linux.

9 years agoUse signal rather than sigaction in nptl/tst-cleanup2.
Roland McGrath [Fri, 6 Feb 2015 20:30:05 +0000 (12:30 -0800)]
Use signal rather than sigaction in nptl/tst-cleanup2.

9 years agoConditionalize some tests' use of SA_SIGINFO.
Roland McGrath [Fri, 6 Feb 2015 20:29:50 +0000 (12:29 -0800)]
Conditionalize some tests' use of SA_SIGINFO.

9 years agoDo not use SA_NOCLDWAIT in tst-pselect.
Roland McGrath [Fri, 6 Feb 2015 20:29:39 +0000 (12:29 -0800)]
Do not use SA_NOCLDWAIT in tst-pselect.

9 years agoMove tst-getlogin to login/ subdirectory.
Roland McGrath [Fri, 6 Feb 2015 20:29:27 +0000 (12:29 -0800)]
Move tst-getlogin to login/ subdirectory.

9 years agoFix libio/tst-atime not to presume ST_NOATIME exists.
Roland McGrath [Fri, 6 Feb 2015 20:24:16 +0000 (12:24 -0800)]
Fix libio/tst-atime not to presume ST_NOATIME exists.

9 years agoFix dirent/tst-fdopendir not to presume O_NOATIME exists.
Roland McGrath [Fri, 6 Feb 2015 20:23:35 +0000 (12:23 -0800)]
Fix dirent/tst-fdopendir not to presume O_NOATIME exists.

9 years agoFix nptl/tst-kill5 not to presume SIGRTMAX exists.
Roland McGrath [Fri, 6 Feb 2015 20:22:23 +0000 (12:22 -0800)]
Fix nptl/tst-kill5 not to presume SIGRTMAX exists.

9 years agoClean up nptl/tst-join5 use of nanosleep.
Roland McGrath [Fri, 6 Feb 2015 20:21:38 +0000 (12:21 -0800)]
Clean up nptl/tst-join5 use of nanosleep.

9 years agoClean up NPTL system to be compat-only.
Roland McGrath [Fri, 6 Feb 2015 18:53:38 +0000 (10:53 -0800)]
Clean up NPTL system to be compat-only.

9 years agoClean up NPTL longjmp to be compat-only.
Roland McGrath [Fri, 6 Feb 2015 18:53:27 +0000 (10:53 -0800)]
Clean up NPTL longjmp to be compat-only.

9 years agoClean up NPTL fork to be compat-only.
Roland McGrath [Fri, 6 Feb 2015 18:53:07 +0000 (10:53 -0800)]
Clean up NPTL fork to be compat-only.

9 years agox86: Clean up __vdso_clock_gettime variable.
Roland McGrath [Fri, 6 Feb 2015 18:44:11 +0000 (10:44 -0800)]
x86: Clean up __vdso_clock_gettime variable.

9 years agoExclude rpcent functions and NSS backends for rpc, key when excluding sunrpc.
Roland McGrath [Fri, 6 Feb 2015 18:43:19 +0000 (10:43 -0800)]
Exclude rpcent functions and NSS backends for rpc, key when excluding sunrpc.

9 years agoClean up sysdep-dl-routines variable.
Roland McGrath [Fri, 6 Feb 2015 18:42:08 +0000 (10:42 -0800)]
Clean up sysdep-dl-routines variable.

9 years agoNEWS: Fix spelling.
Carlos O'Donell [Fri, 6 Feb 2015 17:59:37 +0000 (12:59 -0500)]
NEWS: Fix spelling.

9 years agoNEWS: Also mention CVE-2015-1473
Florian Weimer [Fri, 6 Feb 2015 15:28:24 +0000 (16:28 +0100)]
NEWS: Also mention CVE-2015-1473

9 years agosoft-fp: Fix _FP_FMA when product is zero and third argument is finite (bug 17932).
Joseph Myers [Fri, 6 Feb 2015 15:44:07 +0000 (15:44 +0000)]
soft-fp: Fix _FP_FMA when product is zero and third argument is finite (bug 17932).

soft-fp's _FP_FMA fails to set the result's exponent for cases where
the result of the multiplication is 0, yielding incorrect (arbitrary,
depending on uninitialized values) results for those cases.  This
affects libm for architectures using soft-fp to implement fma.  This
patch adds the exponent setting and tests for this case.

Tested for ARM soft-float (which uses soft-fp fma), x86_64 and x86 (to
verify not introducing new libm test failures there).

(This bug showed up in testing my patch to move the Linux kernel to
current soft-fp.  math/Makefile has "override CFLAGS +=
-Wno-uninitialized" which would have stopped compiler warnings from
showing up this problem, although I wouldn't be surprised if removing
that shows spurious warnings from this code, if the compiler fails to
follow that various cases where the exponent is uninitialized don't
need it initialized because the class is set to a value meaning the
uninitialized exponent isn't used.)

[BZ #17932]
* soft-fp/op-common.h (_FP_FMA): Set exponent of result in case
where multiplication results in zero and third argument is finite
and nonzero.
* math/auto-libm-test-in: Add more tests of fma.
* math/auto-libm-test-out: Regenerated.

9 years agosoft-fp: Refine FP_EX_DENORM handling for comparisons.
Joseph Myers [Fri, 6 Feb 2015 15:41:49 +0000 (15:41 +0000)]
soft-fp: Refine FP_EX_DENORM handling for comparisons.

In <https://sourceware.org/ml/libc-alpha/2014-09/msg00488.html>, I
noted that comparisons in soft-fp did not set FP_EX_DENORM unless
denormal operands were flushed to zero.

This patch fixes soft-fp to check for denormal operands for
comparisons and set that exception whenever FP_EX_DENORM is not zero.
In particular, for the one architecture for which the Linux kernel
defines FP_EX_DENORM (alpha), this corresponds to the existing logic
for comparisons and so allows that logic to be replaced by a simple
call to FP_CMP_D when soft-fp is updated in the kernel.

Tested for powerpc (e500) that installed stripped shared libraries are
unchanged by this patch.

* soft-fp/op-common.h (_FP_CMP_CHECK_DENORM): New macro.
(_FP_CMP_CHECK_FLUSH_ZERO): Likewise.
(_FP_CMP): Use_FP_CMP_CHECK_DENORM and _FP_CMP_CHECK_FLUSH_ZERO.
(_FP_CMP_EQ): Likewise.
(_FP_CMP_UNORD): Use _FP_CMP_CHECK_DENORM.

9 years agosoft-fp: Support floating-point extensions without quieting sNaNs.
Joseph Myers [Fri, 6 Feb 2015 15:39:17 +0000 (15:39 +0000)]
soft-fp: Support floating-point extensions without quieting sNaNs.

One special case needed in soft-fp to replace the old version in the
Linux kernel is extending from a narrower floating-point format to a
wider one without quieting signaling NaNs.  (This is for
arch/powerpc/math-emu/lfs.c, where previously it used the old FP_CONV
which didn't do anything special for NaNs, then handled packing
specially for NaNs to avoid quieting at packing time, and discarded
the exceptions from unpacking.)

This patch accordingly refactors FP_EXTEND, creating a separate
_FP_EXTEND_CNAN that offers a choice of how NaNs are handled, with
FP_EXTEND reimplemented as a wrapper that provides the common case of
the IEEE operation that does quiet signaling NaNs and raise exceptions
for them.

Tested for powerpc (e500) that installed stripped shared libraries are
unchanged by this patch.

* soft-fp/op-common.h (FP_EXTEND): Rename to _FP_EXTEND_CNAN with
extra argument CHECK_NAN.  Redefine as wrapper around
_FP_EXTEND_CNAN.

9 years agoFix missing ChangeLog attribution.
Carlos O'Donell [Fri, 6 Feb 2015 07:04:37 +0000 (02:04 -0500)]
Fix missing ChangeLog attribution.

9 years agoOpen development for 2.22.
Carlos O'Donell [Fri, 6 Feb 2015 07:03:41 +0000 (02:03 -0500)]
Open development for 2.22.

9 years agoUpdate version.h and include/features.h for 2.21 release
Carlos O'Donell [Fri, 6 Feb 2015 06:19:42 +0000 (01:19 -0500)]
Update version.h and include/features.h for 2.21 release

9 years agohppa: Sync with pthread.h.
Carlos O'Donell [Fri, 6 Feb 2015 06:56:35 +0000 (01:56 -0500)]
hppa: Sync with pthread.h.

This reverts part of the previous commit to refactor pthread.h.
The refactoring must be done by having pthread.h include arch
bits headers, not the other way around. Then hppa provides the
arch bits header. For now we synchronzie again with pthread.h
and include the entire contents in the hppa copy.

9 years agoCVE-2015-1472: wscanf allocates too little memory
Paul Pluzhnikov [Fri, 6 Feb 2015 05:30:42 +0000 (00:30 -0500)]
CVE-2015-1472: wscanf allocates too little memory

BZ #16618

Under certain conditions wscanf can allocate too little memory for the
to-be-scanned arguments and overflow the allocated buffer.  The
implementation now correctly computes the required buffer size when
using malloc.

A regression test was added to tst-sscanf.

9 years agoglibc 2.21 pre-release update.
Carlos O'Donell [Fri, 6 Feb 2015 03:56:00 +0000 (22:56 -0500)]
glibc 2.21 pre-release update.

Update all translations.

Update contributions in the manual.

Update installation notes with information about newest working tools.

Reconfigure using exactly autoconf 2.69.

Regenerate INSTALL.

9 years agohppa: Remove warnings and fix conformance errors.
Carlos O'Donell [Fri, 6 Feb 2015 02:33:03 +0000 (21:33 -0500)]
hppa: Remove warnings and fix conformance errors.

(1) Fix warnings.

This is a bulk update to fix all the warnings that were causing
build failures with -Werror on hppa.

The most egregious problems are in dl-fptr.c which needs to be
entirely rewritten, thus I've used -Wno-error for that.

(2) Fix conformance errors.

The sysdep.c file had __syscall_error and syscall in one file
which caused conformance issues by including syscall when
__syscall_error was linked to. The fix is obviously to split
the file and use syscall.c to implement syscall.

9 years agoFunction name typo error in non-PIC case, fixed in this patch.
Chung-Lin Tang [Thu, 5 Feb 2015 14:19:36 +0000 (06:19 -0800)]
Function name typo error in non-PIC case, fixed in this patch.

9 years agoFix two bugs in sparc atomics.
David S. Miller [Sun, 1 Feb 2015 03:07:28 +0000 (19:07 -0800)]
Fix two bugs in sparc atomics.

* sysdeps/sparc/sparc32/bits/atomic.h
(__sparc32_atomic_do_unlock24): Put the memory barrier before the
unlock not after it.
(__v9_compare_and_exchange_val_32_acq): Use unions to avoid getting
volatile register usage warnings from the compiler.

9 years agoFix sparc semaphore implementation after recent changes.
David S. Miller [Sun, 1 Feb 2015 02:59:40 +0000 (18:59 -0800)]
Fix sparc semaphore implementation after recent changes.

* sysdeps/sparc/nptl/sem_init.c: Delete.
* sysdeps/sparc/nptl/sem_post.c: Delete.
* sysdeps/sparc/nptl/sem_timedwait.c: Delete.
* sysdeps/sparc/nptl/sem_wait.c: Delete.
* sysdeps/sparc/sparc32/sem_init.c: New file.
* sysdeps/sparc/sparc32/sem_waitcommon.c: New file.
* sysdeps/sparc/sparc32/sem_open.c: Generic nptl version with
padding explicitly initialized.
* sysdeps/sparc/sparc32/sem_post.c: Generic nptl version using
padding for in-semaphore spinlock.
* sysdeps/sparc/sparc32/sem_wait.c: Likewise.
* sysdeps/sparc/sparc32/sem_trywait.c: Delete.
* sysdeps/sparc/sparc32/sem_timedwait.c: Delete.
* sysdeps/sparc/sparc32/sparcv9/sem_init.c: New file.
* sysdeps/sparc/sparc32/sparcv9/sem_open.c: New file.
* sysdeps/sparc/sparc32/sparcv9/sem_post.c: New file.
* sysdeps/sparc/sparc32/sparcv9/sem_waitcommon.c: New file.
* sysdeps/sparc/sparc32/sparcv9/sem_wait.c: Redirect to nptl
version.
* sysdeps/sparc/sparc32/sparcv9/sem_timedwait.c: Delete.
* sysdeps/sparc/sparc32/sparcv9/sem_trywait.c: Delete.

9 years agoUse AVX unaligned memcpy only if AVX2 is available
H.J. Lu [Fri, 30 Jan 2015 14:50:20 +0000 (06:50 -0800)]
Use AVX unaligned memcpy only if AVX2 is available

memcpy with unaligned 256-bit AVX register loads/stores are slow on older
processorsl like Sandy Bridge.  This patch adds bit_AVX_Fast_Unaligned_Load
and sets it only when AVX2 is available.

[BZ #17801]
* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
Set the bit_AVX_Fast_Unaligned_Load bit for AVX2.
* sysdeps/x86_64/multiarch/init-arch.h (bit_AVX_Fast_Unaligned_Load):
New.
(index_AVX_Fast_Unaligned_Load): Likewise.
(HAS_AVX_FAST_UNALIGNED_LOAD): Likewise.
* sysdeps/x86_64/multiarch/memcpy.S (__new_memcpy): Check the
bit_AVX_Fast_Unaligned_Load bit instead of the bit_AVX_Usable bit.
* sysdeps/x86_64/multiarch/memcpy_chk.S (__memcpy_chk): Likewise.
* sysdeps/x86_64/multiarch/mempcpy.S (__mempcpy): Likewise.
* sysdeps/x86_64/multiarch/mempcpy_chk.S (__mempcpy_chk): Likewise.
* sysdeps/x86_64/multiarch/memmove.c (__libc_memmove): Replace
HAS_AVX with HAS_AVX_FAST_UNALIGNED_LOAD.
* sysdeps/x86_64/multiarch/memmove_chk.c (__memmove_chk): Likewise.

9 years agoInclude <signal.h> in sysdeps/nptl/allocrtsig.c
Andreas Schwab [Sun, 25 Jan 2015 10:05:53 +0000 (11:05 +0100)]
Include <signal.h> in sysdeps/nptl/allocrtsig.c

Architectures which don't use hp-timing-common.h don't include <signal.h>
via <sys/param.h>.

9 years agoFix up ChangeLog formatting
Siddhesh Poyarekar [Thu, 29 Jan 2015 05:01:10 +0000 (10:31 +0530)]
Fix up ChangeLog formatting

9 years agoInitialize nscd stats data [BZ #17892]
Siddhesh Poyarekar [Thu, 29 Jan 2015 05:00:09 +0000 (10:30 +0530)]
Initialize nscd stats data [BZ #17892]

The padding bytes in the statsdata struct are not initialized, due to
which valgrind throws a warning:

==11384== Memcheck, a memory error detector
==11384== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==11384== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==11384== Command: nscd -d
==11384==
Fri 25 Apr 2014 10:34:53 AM CEST - 11384: handle_request: request received (Version = 2) from PID 11396
Fri 25 Apr 2014 10:34:53 AM CEST - 11384:       GETSTAT
==11384== Thread 6:
==11384== Syscall param socketcall.sendto(msg) points to uninitialised byte(s)
==11384==    at 0x4E4ACDC: send (in /lib64/libpthread-2.12.so)
==11384==    by 0x11AF6B: send_stats (in /usr/sbin/nscd)
==11384==    by 0x112F75: nscd_run_worker (in /usr/sbin/nscd)
==11384==    by 0x4E439D0: start_thread (in /lib64/libpthread-2.12.so)
==11384==    by 0x599AB6C: clone (in /lib64/libc-2.12.so)
==11384==  Address 0x15708395 is on thread 6's stack

Fix the warning by initializing the structure.

9 years agoClarify math/README.libm-test. Add "How to read the test output."
Martin Sebor [Thu, 29 Jan 2015 04:07:01 +0000 (21:07 -0700)]
Clarify math/README.libm-test. Add "How to read the test output."

9 years agotilegx32: set __HAVE_64B_ATOMICS to 0
Chris Metcalf [Wed, 28 Jan 2015 19:51:21 +0000 (14:51 -0500)]
tilegx32: set __HAVE_64B_ATOMICS to 0

This is because of alignment issues in the sem_t support.
tilegx32 does in fact support 64-bit atomics and we will need
to revisit this after the 2.21 freeze.

9 years agoDisable 64-bit atomics for MIPS n32.
Joseph Myers [Wed, 28 Jan 2015 18:40:35 +0000 (18:40 +0000)]
Disable 64-bit atomics for MIPS n32.

This patch disables use of 64-bit atomics for MIPS n32 to fix the
problems with unaligned semaphores.

Before 64-bit atomics are used for anything for which such alignment
issues do not arise, and before the addition of any new ILP32 ports
with 64-bit semaphores for which the ABI can be set to have the
greater alignment (AARCH64?), a better approach will need to be
established that allows architectures to declare their 64-bit atomics
availability accurately, without doing so causing inappropriate use of
such atomics on unaligned semaphores.

Tested for MIPS n32 that this fixes the nptl/tst-sem3 failure.

* sysdeps/mips/bits/atomic.h [_MIPS_SIM == _ABIN32]
(__HAVE_64B_ATOMICS): Define to 0.

9 years agopowerpc: Fix fesetexceptflag [BZ#17885]
Adhemerval Zanella [Tue, 27 Jan 2015 12:37:10 +0000 (06:37 -0600)]
powerpc: Fix fesetexceptflag [BZ#17885]

This patch fixes a bug introduced by 18f2945ae9216cfc, where it optimizes
the FPSCR set by just issuing a mtfs instruction if new flag is different
from older one.  The issue is a typo, where the new flag should the the
new value, instead of the old one.

It fixes BZ#17885.

9 years agopowerpc: Fix fsqrt build in libm [BZ#16576]
Adhemerval Zanella [Tue, 27 Jan 2015 18:16:39 +0000 (13:16 -0500)]
powerpc: Fix fsqrt build in libm [BZ#16576]

Some powerpc64 processors (e5500 core for instance) does not provide the
fsqrt instruction, however current check to use in math_private.h is
__WORDSIZE and _ARCH_PWR4 (ISA 2.02).  This is patch change it to use
the compiler flag _ARCH_PPCSQ (which is the same condition GCC uses to
decide whether to generate fsqrt instruction).

It fixes BZ#16576.

9 years agoiconv: Suppress array out of bounds warning.
Andreas Krebbel [Tue, 27 Jan 2015 08:37:04 +0000 (09:37 +0100)]
iconv: Suppress array out of bounds warning.

9 years agoia64: avoid set-but-not-used warning
Andreas Schwab [Sun, 25 Jan 2015 21:31:29 +0000 (22:31 +0100)]
ia64: avoid set-but-not-used warning

9 years agom68k/coldfire: avoid warning about volatile register variables
Andreas Schwab [Sun, 25 Jan 2015 21:09:05 +0000 (22:09 +0100)]
m68k/coldfire: avoid warning about volatile register variables

9 years agom68k: fix missing definition of __feraiseexcept
Andreas Schwab [Sun, 25 Jan 2015 10:49:50 +0000 (11:49 +0100)]
m68k: fix missing definition of __feraiseexcept

9 years agom68k: force inlining bswap functions
Andreas Schwab [Sun, 25 Jan 2015 09:08:04 +0000 (10:08 +0100)]
m68k: force inlining bswap functions

9 years agoFix segmentation fault when LD_LIBRARY_PATH contains only non-existings paths
Bram [Thu, 18 Apr 2013 14:50:49 +0000 (16:50 +0200)]
Fix segmentation fault when LD_LIBRARY_PATH contains only non-existings paths

9 years agopowerpc: Fix powerpc64 build failure with binutils 2.22
Adhemerval Zanella [Fri, 23 Jan 2015 16:31:49 +0000 (11:31 -0500)]
powerpc: Fix powerpc64 build failure with binutils 2.22

GLIBC memset optimization for POWER8 uses the '.machine power8'
directive, which is only supported officially on binutils 2.24+.  This
causes a build failure on older binutils.

Since the requirement of .machine power8 is to correctly assembly the
'mtvsrd' instruction and it is already handled by the MTVSRD_V1_R4
macro, there is no really needed of using it.

The patch replaces the power8 with power7 for .machine directive.

It fixes BZ#17869.

9 years agopowerpc: Fix ifuncmain6pie failure with GCC 4.9
Adhemerval Zanella [Fri, 23 Jan 2015 16:16:49 +0000 (11:16 -0500)]
powerpc: Fix ifuncmain6pie failure with GCC 4.9

This patch fix the elf/ifuncmain6pie failure when building with GCC
4.9+.  For some reason, the compiler removes the branch taken code at
resolve_ifunc (sysdeps/powerpc/powerpc64/dl-machine.h) as dead-code
and thus the testcase fails because the ifunc resolves branches to an
invalid memory location.  It fixes by explicit adding a dependency of
value based on odp variable to avoid compiler optimization.

It fixes BZ#17868.

9 years agoAlso treat model numbers 0x5a/0x5d as Silvermont
H.J. Lu [Sat, 24 Jan 2015 02:52:45 +0000 (18:52 -0800)]
Also treat model numbers 0x5a/0x5d as Silvermont

9 years agoTreat model numbers 0x4a/0x4d as Silvermont
H.J. Lu [Sat, 24 Jan 2015 01:27:09 +0000 (17:27 -0800)]
Treat model numbers 0x4a/0x4d as Silvermont

* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
Treat model numbers 0x4a/0x4d as Intel Silvermont architecture.

9 years agoAlso use uint64_t in __new_sem_wait_fast
H.J. Lu [Sat, 24 Jan 2015 00:21:07 +0000 (16:21 -0800)]
Also use uint64_t in __new_sem_wait_fast

9 years agoUse uint64_t and (uint64_t) 1 for 64-bit int
H.J. Lu [Fri, 23 Jan 2015 22:48:40 +0000 (14:48 -0800)]
Use uint64_t and (uint64_t) 1 for 64-bit int

This patch replaces unsigned long int and 1UL with uint64_t and
(uint64_t) 1 to support ILP32 targets like x32.

[BZ #17870]
* nptl/sem_post.c (__new_sem_post): Replace unsigned long int
with uint64_t.
* nptl/sem_waitcommon.c (__sem_wait_cleanup): Replace 1UL with
(uint64_t) 1.
(__new_sem_wait_slow): Replace unsigned long int with uint64_t.
Replace 1UL with (uint64_t) 1.
* sysdeps/nptl/internaltypes.h (new_sem): Replace unsigned long
int with uint64_t.

9 years agoAdd missing libc_hidden_weak to stub if_nameindex, if_freenameindex.
Roland McGrath [Fri, 23 Jan 2015 19:29:02 +0000 (11:29 -0800)]
Add missing libc_hidden_weak to stub if_nameindex, if_freenameindex.

9 years agoAdd missing libc_hidden_def to stub getrlimit64.
Roland McGrath [Fri, 23 Jan 2015 18:41:37 +0000 (10:41 -0800)]
Add missing libc_hidden_def to stub getrlimit64.

9 years agosoft-fp: Use __label__ for all labels within macros.
Joseph Myers [Thu, 22 Jan 2015 22:39:26 +0000 (22:39 +0000)]
soft-fp: Use __label__ for all labels within macros.

soft-fp has various macros containing labels and goto statements.
Because label names are function-scoped, this is problematic for using
the same macro more than once within a function, which some
architectures do in the Linux kernel (the soft-fp version there
predates the addition of any of these labels and gotos).  This patch
fixes this by using __label__ to make the labels local to the block
with the __label__ declaration.

Tested for powerpc-nofpu that installed stripped shared libraries are
unchanged by this patch.

* soft-fp/op-common.h (_FP_ADD_INTERNAL): Declare labels with
__label__.
(_FP_FMA): Likewise.
(_FP_TO_INT_ROUND): Likewise.
(_FP_FROM_INT): Likewise.

9 years agoBZ #16418: Fix powerpc get_clockfreq raciness
Adhemerval Zanella [Mon, 24 Nov 2014 21:18:26 +0000 (16:18 -0500)]
BZ #16418: Fix powerpc get_clockfreq raciness

This patch fix powerpc __get_clockfreq racy and cancel-safe issues by
dropping internal static cache and by using nocancel file operations.
The vDSO failure check is also removed, since kernel code does not
return an error (it cleans cr0.so bit on function return) and the static
code (to read value /proc) now uses non-cancellable calls.

9 years agoUpdate copyright year to 2015 for new files.
Carlos O'Donell [Wed, 21 Jan 2015 15:35:31 +0000 (10:35 -0500)]
Update copyright year to 2015 for new files.

9 years agotst-getpw: Rewrite.
Carlos O'Donell [Wed, 21 Jan 2015 15:08:18 +0000 (10:08 -0500)]
tst-getpw: Rewrite.

The test is rewritten to look for the testable conditions and
exit once they are all detected. This prevents the test from
iterating over 2000 UIDs and looking up each one. It speeds up
the test and prevents it from failing if the system under test
has an NSS-based passwd that is slower than the test timeout.

See:
https://sourceware.org/ml/libc-alpha/2015-01/msg00394.html

9 years agoFix tst_wcscpy.c test.
Marek Polacek [Wed, 21 Jan 2015 11:30:42 +0000 (12:30 +0100)]
Fix tst_wcscpy.c test.

9 years agoFix recursive dlopen.
Carlos O'Donell [Wed, 21 Jan 2015 06:51:10 +0000 (01:51 -0500)]
Fix recursive dlopen.

The ability to recursively call dlopen is useful for malloc
implementations that wish to load other dynamic modules that
implement reentrant/AS-safe functions to use in their own
implementation.

Given that a user malloc implementation may be called by an
ongoing dlopen to allocate memory the user malloc
implementation interrupts dlopen and if it calls dlopen again
that's a reentrant call.

This patch fixes the issues with the ld.so.cache mapping
and the _r_debug assertion which prevent this from working
as expected.

See:
https://sourceware.org/ml/libc-alpha/2014-12/msg00446.html

9 years agoFix semaphore destruction (bug 12674).
Carlos O'Donell [Wed, 21 Jan 2015 05:46:16 +0000 (00:46 -0500)]
Fix semaphore destruction (bug 12674).

This commit fixes semaphore destruction by either using 64b atomic
operations (where available), or by using two separate fields when only
32b atomic operations are available.  In the latter case, we keep a
conservative estimate of whether there are any waiting threads in one
bit of the field that counts the number of available tokens, thus
allowing sem_post to atomically both add a token and determine whether
it needs to call futex_wake.

See:
https://sourceware.org/ml/libc-alpha/2014-12/msg00155.html

9 years agoRegenerate INSTALL.
Carlos O'Donell [Wed, 21 Jan 2015 03:25:38 +0000 (22:25 -0500)]
Regenerate INSTALL.

9 years agoUpdate libc.pot:
Carlos O'Donell [Wed, 21 Jan 2015 03:18:11 +0000 (22:18 -0500)]
Update libc.pot:

In preparation for providing a tarball to the translation project.

        * po/libc.pot: Regenerated.

9 years agoCommit nios2 port to master.
Chung-Lin Tang [Sun, 18 Jan 2015 06:29:12 +0000 (22:29 -0800)]
Commit nios2 port to master.

9 years agoS390: Get rid of linknamespace failures for utmp functions.
Stefan Liebler [Fri, 16 Jan 2015 08:18:58 +0000 (09:18 +0100)]
S390: Get rid of linknamespace failures for utmp functions.

9 years agoS390: Get rid of linknamespace failures for string functions.
Stefan Liebler [Fri, 16 Jan 2015 08:17:32 +0000 (09:17 +0100)]
S390: Get rid of linknamespace failures for string functions.

9 years agoFix powerpc-nofpu fesetenv namespace (bug 17748).
Joseph Myers [Wed, 14 Jan 2015 21:35:40 +0000 (21:35 +0000)]
Fix powerpc-nofpu fesetenv namespace (bug 17748).

When fixing namespace issues for <fenv.h> functions I missed one call
to fesetenv for powerpc-nofpu.  This patch changes this to a call to
__fesetenv.

Tested for powerpc-nofpu; it fixes the previously observed math.h
linknamespace test failures.

[BZ #17748]
* sysdeps/powerpc/nofpu/feholdexcpt.c (__feholdexcept): Call
__fesetenv instead of fesetenv.

9 years ago[s390] Define a __tls_get_addr macro to avoid declaring it again
Siddhesh Poyarekar [Wed, 14 Jan 2015 15:56:50 +0000 (21:26 +0530)]
[s390] Define a __tls_get_addr macro to avoid declaring it again

commit 050f7298e1ecc39887c329037575ccd972071255 added an extern
declaration for __tls_get_addr that conflicts with the one in s390
dl-tls.h, based on whether __tls_get_addr is defined as a macro.  The
rationale seems to be based on the assumption that __tls_get_addr is
exported for every architecture and hence an internal non-plt alias is
needed.  This is not true for s390 though, since it exports
__tls_get_offset and not __tls_get_addr.  This results in tst-audit9
being stuck in an infinite loop.

This patch fixes this by defining a __tls_get_addr macro to itself so
as to not use the conflicting declaration.

9 years agopowerpc: Fix POWER7/PPC64 performance regression on LE
Adhemerval Zanella [Mon, 12 Jan 2015 01:33:17 +0000 (19:33 -0600)]
powerpc: Fix POWER7/PPC64 performance regression on LE

This patch fixes a performance regression on the POWER7/PPC64 memcmp
porting for Little Endian.  The LE code uses 'ldbrx' instruction to read
the memory on byte reversed form, however ISA 2.06 just provide the indexed
form which uses a register value as additional index, instead of a fixed value
enconded in the instruction.

And the port strategy for LE uses r0 index value and update the address
value on each compare loop interation.  For large compare size values,
it adds 8 more instructions plus some more depending of trailing
size.  This patch fixes it by adding pre-calculate indexes to remove the
address update on loops and tailing sizes.

For large sizes it shows a considerable gain, with double performance
pairing with BE.

9 years agopowerpc: Optimized strncmp for POWER8/PPC64
Adhemerval Zanella [Fri, 9 Jan 2015 21:04:26 +0000 (16:04 -0500)]
powerpc: Optimized strncmp for POWER8/PPC64

This patch adds an optimized POWER8 strncmp.  The implementation focus
on speeding up unaligned cases follwing the ideas of power8 strcmp.

The algorithm first check the initial 16 bytes, then align the first
function source and uses unaligned loads on second argument only.
Aditional checks for page boundaries are done for unaligned cases
(where sources alignment are different).

9 years agopowerpc: Optimize POWER7 strcmp trailing checks
Rajalakshmi Srinivasaraghavan [Fri, 9 Jan 2015 16:56:35 +0000 (11:56 -0500)]
powerpc: Optimize POWER7 strcmp trailing checks

This patch optimized the POWER7 trailing check by avoiding using byte
read operations and instead use the doubleword already readed with
bitwise operations.

9 years agoFix scanf15.c testsuite build on sparc.
David S. Miller [Tue, 13 Jan 2015 19:28:17 +0000 (11:28 -0800)]
Fix scanf15.c testsuite build on sparc.

* include/signal.h (__sigreturn): Guard with __USE_MISC.

9 years agoRemove some references to bcopy/bcmp/bzero.
Roland McGrath [Tue, 13 Jan 2015 19:12:55 +0000 (11:12 -0800)]
Remove some references to bcopy/bcmp/bzero.

9 years agopowerpc: Optimized strcmp for POWER8/PPC64
Adhemerval Zanella [Wed, 7 Jan 2015 12:18:30 +0000 (07:18 -0500)]
powerpc: Optimized strcmp for POWER8/PPC64

This patch adds an optimized POWER8 strcmp using unaligned accesses.
The algorithm first check the initial 16 bytes, then align the first
function source and uses unaligned loads on second argument only.
Aditional checks for page boundaries are done for unaligned cases

9 years agopowerpc: Optimized st{r,p}ncpy for POWER8/PPC64
Adhemerval Zanella [Wed, 31 Dec 2014 16:47:41 +0000 (11:47 -0500)]
powerpc: Optimized st{r,p}ncpy for POWER8/PPC64

This patch adds an optimized POWER8 st{r,p}ncpy using unaligned accesses.
It shows 10%-80% improvement over the optimized POWER7 one that uses
only aligned accesses, specially on unaligned inputs.

The algorithm first read and check 16 bytes (if inputs do not cross a 4K
page size).  The it realign source to 16-bytes and issue a 16 bytes read
and compare loop to speedup null byte checks for large strings.  Also,
different from POWER7 optimization, the null pad is done inline in the
implementation using possible unaligned accesses, instead of realying on
a memset call.  Special case is added for page cross reads.

9 years agopowerpc: Optimized strncat for POWER7/PPC64
Adhemerval Zanella [Tue, 23 Dec 2014 18:39:23 +0000 (13:39 -0500)]
powerpc: Optimized strncat for POWER7/PPC64

With 3eb38795dbbbd816 (Simplify strncat) the generic algorithms uses
strlen, strnlen, and memcpy.  This is faster than POWER7 current
implementation, especially for unaligned strings (where POWER7 code
uses byte-byte operations).

This patch removes the assembly implementation and uses a multiarch
specialization based on default algorithm calling optimized POWER7
symbols.