Commit Graph

27744 Commits

Author SHA1 Message Date
Richard Henderson
a75b89b776 aarch64: Update libm-test-ulps 2014-07-11 10:57:48 -07:00
Florian Weimer
771eb1415f 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 13f7fe35ae
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).
2014-07-11 12:30:53 +02:00
Adhemerval Zanella
bc1da1765e 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.
2014-07-10 16:46:33 -05:00
Roland McGrath
6a42be57e8 ChangeLog fixup for last commit. 2014-07-10 11:30:38 -07:00
Roland McGrath
c0c6bac945 Get rid of lll_robust_dead. 2014-07-10 11:21:54 -07:00
Roland McGrath
887865fcfa Get rid of lll_robust_trylock. 2014-07-10 10:57:57 -07:00
Florian Weimer
5853672669 manual: Update the locale documentation 2014-07-10 16:30:40 +02:00
Florian Weimer
4e8f95a0df _nl_find_locale: Improve handling of crafted locale names [BZ #17137]
Prevent directory traversal in locale-related environment variables
(CVE-2014-0475).
2014-07-10 16:29:55 +02:00
Florian Weimer
d183645616 setlocale: Use the heap for the copy of the locale argument
This avoids alloca calls with potentially large arguments.
2014-07-10 16:29:34 +02:00
Siddhesh Poyarekar
888c679ba4 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
2014-07-10 14:24:30 +05:30
Siddhesh Poyarekar
180e0e4b29 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.
2014-07-10 14:21:27 +05:30
Siddhesh Poyarekar
d22f1fe2f3 Fix Wundef warning for HAVE_STRFTIME
Define it to 0
2014-07-10 14:20:42 +05:30
Siddhesh Poyarekar
12f2254b81 Fix -Wundef warning for HAVE_SYS_PARAM_H
Include sys/param.h unconditionally
2014-07-10 14:19:21 +05:30
Siddhesh Poyarekar
c3c7c3604f 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.
2014-07-10 14:18:13 +05:30
Siddhesh Poyarekar
d62aa75af1 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.
2014-07-10 14:15:16 +05:30
David S. Miller
7000d82e01 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.
2014-07-09 22:19:09 -07:00
Siddhesh Poyarekar
d69b7f5ac0 Add comment about SIZE initialization in xdr.c 2014-07-10 10:33:48 +05:30
David S. Miller
5efe06a176 Update sparc ULPS.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2014-07-09 17:20:01 -07:00
Andreas Schwab
4a2552c3eb Fix missing newline in test output 2014-07-09 11:07:24 +02:00
Andreas Schwab
c213442ddd Update i386 libm test ULPs 2014-07-09 10:53:46 +02:00
Will Newton
82374e65d7 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.
2014-07-09 09:26:07 +01:00
Siddhesh Poyarekar
6ee3eab429 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.
2014-07-09 10:36:50 +05:30
Siddhesh Poyarekar
6680738a18 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.
2014-07-09 10:36:23 +05:30
Siddhesh Poyarekar
e35c53e397 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.
2014-07-08 22:52:49 +05:30
Siddhesh Poyarekar
80b5c50588 Fix Wundef warning for ELF_MACHINE_NO_REL on i386 2014-07-08 22:52:45 +05:30
Adhemerval Zanella
27b75f56c9 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.
2014-07-08 09:16:15 -05:00
Adhemerval Zanella
e7f95bb5f0 PowerPC: Fix compiler warnings
This patch fixes some compiler due trailing data in #undef directives
and due missing prototypes.
2014-07-08 09:16:12 -05:00
Adhemerval Zanella
91f4b564bd PowerPC: Add ifunc tests for memmove
This patch add the missing ifunc tests definition for memmove ppc32
optimization patch (commit 07aedd7).
2014-07-08 09:16:09 -05:00
Siddhesh Poyarekar
7c33f1e52c Fix Wundef warning with SHOJI_IS_RIGHT
The macro is not defined anywhere, so it looks like we're convinced
that Shoji is wrong :)
2014-07-08 15:02:58 +05:30
Adhemerval Zanella
87868c2418 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).
2014-07-07 15:41:27 -05:00
Adhemerval Zanella
07aedd78b0 PowerPC: optimized memmove for POWER7/PPC32
This patch adds a optimized memmove for power7 by using the optimized
power7 memcpy for forward copying.
2014-07-07 15:41:27 -05:00
Adhemerval Zanella
17762f6625 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.
2014-07-07 15:41:21 -05:00
Adhemerval Zanella
d6f68bbef4 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.
2014-07-07 14:46:44 -05:00
Adhemerval Zanella
3f17b03b09 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.
2014-07-07 14:46:22 -05:00
Roland McGrath
f4c4021bc0 Remove old stub lowlevellock.h file. It is not even useful as documentation. 2014-07-07 09:29:34 -07:00
Roland McGrath
f083450f45 NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
Roland McGrath
08192659bb Get rid of nptl/sysdeps/ entirely! 2014-07-07 09:28:38 -07:00
Siddhesh Poyarekar
96baf6ffc5 Add comment for MEMCPY_OK_FOR_FWD_MEMMOVE 2014-07-05 01:09:15 +05:30
Will Newton
1570a72bb8 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.
2014-07-04 09:23:21 +01:00
Will Newton
6b7b14b26f 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.
2014-07-04 08:58:21 +01:00
Roland McGrath
3d9eb57c55 Fix ia64 build error in lll_futex_timed_wait_bitset 2014-07-03 22:03:14 -07:00
Roland McGrath
78b984ae2c Fix unwind.h configure check for bare environment. 2014-07-03 21:46:59 -07:00
Roland McGrath
2d5976a580 Add missing #include in sysdeps/alpha/fpu/s_nearbyint.c 2014-07-03 21:15:56 -07:00
Roland McGrath
c1f5acd4f4 Robustify Linux kernel headers configure checks 2014-07-03 20:35:42 -07:00
Roland McGrath
4d614fe5e0 S390: Quash unused variable warning due to no-op THREAD_SET_POINTER_GUARD. 2014-07-03 19:17:00 -07:00
Siddhesh Poyarekar
38851324d8 Restore subdir conditional for tst-timer dependency. 2014-07-03 18:52:51 -07:00
Richard Henderson
69862e2511 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.
2014-07-03 10:37:59 -07:00
Richard Henderson
d5e16ade14 alpha: Implement math_opt_barrier and math_force_eval 2014-07-03 08:56:55 -07:00
Richard Henderson
ca7b945c73 alpha: Fix lround implementations
Use chopped rounding to add 0.5.
2014-07-03 08:52:45 -07:00
Richard Henderson
cd1175a373 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).
2014-07-03 08:45:57 -07:00