Commit Graph

16090 Commits

Author SHA1 Message Date
Joseph Myers
94d0cea0ad Fix math/test-fpucw-*.c for sysdeps test-fpucw.c overrides.
ARM has an override of the test math/test-fpucw.c, to disable (for
soft-float testing) definitions of hard-float macros in fpu_control.h
that the header normally defines not only when building for
hard-float, but also when building for soft-float with _LIBC defined
so that libc code can dynamically test whether VFP hardware is
present.  (_LIBC is defined when building tests, although ideally it
wouldn't be.)

The override doesn't work for the derived tests test-fpucw-*.c because
they use #include "" instead of <> to include test-fpucw.c, so always
get the math/ version instead of the ARM sysdeps override.  This patch
changes them to use <> so the sysdeps override is effective.
(test-fpucw-ieee-static.c doesn't need a change because it includes
test-fpucw-ieee.c, which isn't itself being overridden, which in turn
includes test-fpucw.c with a #include changed by this patch.)

Tested for ARM (big-endian soft-float, non-VFP hardware).

	* math/test-fpucw-ieee.c: Use <> in #include of test-fpucw.c.
	* math/test-fpucw-static.c: Likewise.
2014-01-16 05:30:52 +00:00
Siddhesh Poyarekar
980cb5180e Don't use alloca in addgetnetgrentX (BZ #16453)
addgetnetgrentX has a buffer which is grown as per the needs of the
requested size either by using alloca or by falling back to malloc if
the size is larger than 1K.  There are two problems with the alloca
bits: firstly, it doesn't really extend the buffer since it does not
use the return value of the extend_alloca macro, which is the location
of the reallocated buffer.  Due to this the buffer does not actually
extend itself and hence a subsequent write may overwrite stuff on the
stack.

The second problem is more subtle - the buffer growth on the stack is
discontinuous due to block scope local variables.  Combine that with
the fact that unlike realloc, extend_alloca does not copy over old
content and you have a situation where the buffer just has garbage in
the space where it should have had data.

This could have been fixed by adding code to copy over old data
whenever we call extend_alloca, but it seems unnecessarily
complicated.  This code is not exactly a performance hotspot (it's
called when there is a cache miss, so factors like network lookup or
file reads will dominate over memory allocation/reallocation), so this
premature optimization is unnecessary.

Thanks Brad Hubbard <bhubbard@redhat.com> for his help with debugging
the problem.
2014-01-16 10:21:52 +05:30
Adhemerval Zanella
2393fc0119 PowerPC: sotruss-lib implementation
This patch add the missing sotruss-lib interfaces for PowerPC.
2014-01-15 12:14:06 -06:00
Ondřej Bílka
d359bcc2ad Add ChangeLog entry 2014-01-15 18:43:03 +01:00
Andreas Krebbel
7beb48cbb7 [BZ #16427] Fix ldbl-128 exp overflows.
Invoke the non-IEEE handling only for numbers special also in the IEEE
case.  This aligns the exp handling with the other ldbl variants.
2014-01-15 09:50:31 +01:00
Andreas Krebbel
c20d5bf509 S/390: Regenerate ULPs. 2014-01-15 09:49:54 +01:00
Carlos O'Donell
e732c5f049 Add BZ #15850 to ChangeLog. 2014-01-12 12:17:33 -05:00
Allan McRae
76d0ea6990 Update Bulgarian translations 2014-01-11 15:19:59 +10:00
Allan McRae
e83bd4eeba Update German translations 2014-01-11 15:02:34 +10:00
Roland McGrath
bc2ba20ae8 ARM: Disable compat mcount code when unneeded. 2014-01-10 13:32:35 -08:00
Siddhesh Poyarekar
649ecea212 Correct inputs for sin and cos
The inputs for the slowest path in asin and acos were incorrect and
had some fast path inputs there too.
2014-01-10 09:57:51 +05:30
Allan McRae
a46dab08ac Update Swedish translations 2014-01-10 12:25:59 +10:00
Allan McRae
421df74a00 Update Vietnamese translations 2014-01-10 12:24:43 +10:00
Allan McRae
d61c51a710 Update Esperanto translations 2014-01-10 12:23:21 +10:00
Allan McRae
0339a31917 Update Czech translations 2014-01-10 12:22:12 +10:00
Allan McRae
94ad3e991a Update Dutch translations 2014-01-10 12:20:48 +10:00
Allan McRae
e349ca71e5 Update Polish translations 2014-01-10 12:20:44 +10:00
Allan McRae
ddf930c169 Update Russian translations 2014-01-10 12:20:38 +10:00
Allan McRae
1b19c00628 Update Ukrainian translations 2014-01-10 12:20:26 +10:00
Brooks Moses
9f236c496a Obvious comment typo fix ("openened") in elf/dl-load.c. 2014-01-08 18:46:53 -08:00
Carlos O'Donell
cd6701cf9c Rename header.pot to pot.header.
The Translation Project has asked us to rename the
pot header file `header.pot' to something else. Their
scripts automatically look for pot files and the
file `header.pot' is not actually a pot file but a
header that we use when regenerating `libc.pot.'
This commit renames `header.pot' to `pot.header' to
avoid causing errors or complicating the TP project
scripts.
2014-01-08 17:17:48 -05:00
Yuriy Kaminskiy
66671c84d5 Fix a thinko/typo in i686's memmove (aka __memmove_ia32).
* sysdeps/i386/i686/memmove.S (memmove): Compare distance between
	SRC and DEST against LEN.
2014-01-09 09:49:54 +13:00
Adhemerval Zanella
38f3458175 PowerPC: remove wrong truncl implementation for PowerPC64
The truncl assembly implementation (sysdeps/powerpc/powerpc64/fpu/s_truncl.S)
returns wrong results for some inputs where first double is a exact integer
and the precision is determined by second long double.

Checking on implementation comments and history, I am very confident the
assembly implementation was based on a version before commit
5c68d40169 that fixes BZ#2423 (Errors in
long double (ldbl-128ibm) rounding functions in glibc-2.4).

By just removing the implementation and make the build select
sysdeps/ieee754/ldbl-128ibm/s_truncl.c instead it fixes tgammal
issues regarding wrong result sign.
2014-01-08 08:14:48 -06:00
Adhemerval Zanella
3ff6304ee7 Update powerpc-fpu ULPs. 2014-01-08 07:55:08 -06:00
Joseph Myers
4c327f2ad8 Fix ldbl-128ibm expm1l on large arguments (bug 16408).
This patch fixes bug 16408, ldbl-128ibm expm1l returning NaN for some
large arguments.

The basic problem is that the approach of converting the exponent to
the form n * log(2) + y, where -0.5 <= y <= 0.5, then computing 2^n *
expm1(y) + (2^n - 1) falls over when 2^n overflows (starting slightly
before the point where expm1 overflows, when y is negative and n is
the least integer for which 2^n overflows).  The ldbl-128 code, and
the x86/x86_64 code, make expm1l fall back to expl for large positive
arguments to avoid this issue.  This patch makes the ldbl-128ibm code
do the same.  (The problem appears for the particular argument in the
testsuite because the ldbl-128ibm code also uses an overflow threshold
that's for ldbl-128 and is too big for ldbl-128ibm, but the problem
described applies for large non-overflowing cases as well, although
during the freeze is not a suitable time for making the expm1 tests
cover cases close to overflow more thoroughly.)

This leaves some code for large positive arguments in expm1l that is
now dead.  To keep the code for ldbl-128 and ldbl-128ibm similar, and
to avoid unnecessary changes during the freeze, the patch doesn't
remove it; instead I propose to file a bug in Bugzilla as a reminder
that this code (for overflow, including errno setting, and for
arguments of +Inf) is no longer needed and should be removed from both
those expm1l implementations.

Tested powerpc32.

	* sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __expl
	for large positive arguments.
2014-01-08 13:32:39 +00:00
Joseph Myers
1f0f206719 Regenerate powerpc-nofpu ulps (again). 2014-01-07 23:32:04 +00:00
Joseph Myers
a5a326f660 Mark more libm tests with xfail-rounding:ldbl-128ibm.
This patch marks more libm tests as expected to fail for ldbl-128ibm
in non-default rounding modes.  Given this, my expm1l fix
<https://sourceware.org/ml/libc-alpha/2014-01/msg00135.html> and my
libgcc fix <http://gcc.gnu.org/ml/gcc-patches/2014-01/msg00157.html>
for spurious overflows, the remaining failures in test-ldouble.out
(for powerpc32 hard float) are small ulps, spurious underflow and
inexact exceptions (the former probably arising from libgcc bugs
though I haven't checked each case; the latter are barely meaningful
for this format anyway when basic arithmetic isn't correctly rounding,
though most of them are probably GCC bug 59412 which doesn't actually
involve long double), missing underflow exceptions from clog, ctan and
ctanh (probably one of the known bugs for another function), and logb
in round-downward mode (bug 887, though it's really a GCC bug that
we're not currently working around).

Tested for powerpc32 hard float.

	* math/auto-libm-test-in: Mark various tests with
	xfail-rounding:ldbl-128ibm.
	* math/auto-libm-test-out: Regenerated.
2014-01-07 22:41:58 +00:00
Joseph Myers
b821f414e4 Fix ldbl-128ibm coshl spurious overflows (bug 16407).
This patch fixes bug 16407, spurious overflows from ldbl-128ibm coshl.
The implementation assumed that a high part (reinterpreted as an
integer) of the absolute value of the argument of 0x408633ce8fb9f87dLL
or more meant overflow, but the actual threshold has high part
0x408633ce8fb9f87eLL (and a negative low part).  The patch adjusts the
threshold accordingly.

sinhl probably has the same issue, but I didn't get that far in adding
tests of special cases (such as just below and above overflow) before
the freeze and during the freeze is not a suitable time to add them
(as they'd require ulps to be regenerated again), so I'm not changing
that function for now; when I add more tests of special cases, we'll
discover whether sinhl indeed has this problem.

Tested powerpc32.

	* sysdeps/ieee754/ldbl-128ibm/e_coshl.c (__ieee754_coshl):
	Increase overflow threshold.
2014-01-07 22:00:04 +00:00
Ondřej Bílka
94c8a4bc57 Fix integer overflow in vfwprintf. Fixes bug 14286. 2014-01-07 12:05:32 +01:00
Andreas Krebbel
87ded0c382 S/390: Remove __tls_get_addr argument cast. 2014-01-07 09:42:23 +01:00
Andreas Krebbel
c5eebdd084 S/390: Get rid of unused variable warning in dl-machine.h 2014-01-07 09:42:23 +01:00
Andreas Krebbel
05d138ef07 S/390: Make ucontext_t extendible. 2014-01-07 09:42:23 +01:00
Andreas Krebbel
93a45ff1ca S/390: Make jmp_buf extendible. 2014-01-07 09:36:31 +01:00
Joseph Myers
eb3fc44b56 Fix ldbl-128 / ldbl-128ibm lgammal spurious underflow (bug 16400).
This patch fixes bug 16400, spurious underflow exceptions for ldbl-128
/ ldbl-128ibm lgammal with small positive arguments, by just using
-__logl (x) as the result in the problem cases (similar to the
previous fix for problems with small negative arguments).

Tested powerpc32, and also tested on mips64 that this does not require
ulps regeneration for the ldbl-128 case.

	* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
	Return -__logl (x) for small positive arguments without evaluating
	a polynomial.
2014-01-06 18:20:20 +00:00
Mike Frysinger
9341dde4d5 ptrace.h: add __ prefix to ptrace_peeksiginfo_args
All the other ptrace structures in this file have a __ prefix except this
new one.  This in turn causes build problems for most packages that try to
use ptrace such as strace:

gcc -DHAVE_CONFIG_H -I. -I../..  -I../../linux/x86_64 -I../../linux \
	-I./linux  -Wall -Wwrite-strings -g -O2 -MT process.o -MD -MP \
	-MF .deps/process.Tpo -c -o process.o ../../process.c
In file included from ../../process.c:63:0:
/usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args'
 struct ptrace_peeksiginfo_args {
        ^
In file included from ../../defs.h:159:0,
                 from ../../process.c:37:
/usr/include/sys/ptrace.h:191:8: note: originally defined here
 struct ptrace_peeksiginfo_args
        ^

Since this struct was introduced in glibc-2.18, there shouldn't be any
real regressions with adding the __ prefix.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-06 08:07:33 -05:00
Allan McRae
4cff0293ef Fix typo in inet/netinet/in.h comment 2014-01-06 11:27:43 +10:00
Andreas Jaeger
75595dcf8a Update ULPs for i386
Update based on testing with GCC 4.8.1 on Intel i7
2014-01-05 21:48:54 +01:00
Allan McRae
dd80481867 Regenerate libc.po 2014-01-05 17:47:49 +10:00
Allan McRae
79c1e1094e Fix gettext call formatting 2014-01-05 17:39:45 +10:00
Sami Kerola
0c813d1f3e nscd: list all tables in usage()
Usage output for option --invalidate=TABLE is not helpful without
list of tables.  The list is also missing from nscd(8) manual which
made it pretty difficult to know what are the tables.
2014-01-04 08:44:36 -05:00
Mike Frysinger
20f4a8d993 tst-fanotify: switch to AC_DEFINE
Reported-by: Joseph S. Myers <joseph@codesourcery.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-04 08:34:01 -05:00
Joseph Myers
22562bb222 Fix soft-float ldbl-128ibm atan2l signs of zero results (bug 16390).
This patch fixes bug 16390, incorrect signs of zero results from
ldbl-128ibm atan2l, soft-float only.  The problem is a longstanding
GCC bug with fabsl not being correct for signed zero for soft float,
and the fix is using -fno-builtin-fabsl as a workaround, as already
done for various other source files.  Tested powerpc-nofpu.

	* sysdeps/powerpc/nofpu/Makefile [$(subdir) = math]
	(CFLAGS-e_atan2l.c): Use -fno-builtin-fabsl.
2014-01-03 20:56:40 +00:00
Paul Pluzhnikov
0da43124a9 Fix ChangeLog entry. 2014-01-03 11:59:26 -08:00
Adhemerval Zanella
d7ad2d9bad PowerPC: Fix compiler warnings
This patch fixes some compile warnings related to extra tokens at
end of #undef directive from multilib patchset.
2014-01-03 13:29:10 -06:00
Paul Pluzhnikov
dc810f3778 Merge branch 'master' of ssh://sourceware.org/git/glibc 2014-01-03 11:23:16 -08:00
Andrew Hunter
7f507ee17a Async-signal safe TLS.
ChangeLog:

2014-01-03  Andrew Hunter  <ahh@google.com>

	* elf/dl-open.c (): New comment.
	* elf/dl-reloc.c (_dl_try_allocate_static_tls): Use
	atomic_compare_and_exchange_bool_acq
	(_dl_allocate_static_tls): Block signals.
	* elf/dl-tls.c (allocate_and_init): Return void.
	(_dl_update_slotinfo): Block signals, use atomic update.

nptl/ChangeLog:

2014-01-03  Andrew Hunter  <ahh@google.com>

	* nptl/Makefile (tst-tls7): New test.
	* nptl/tst-tls7.c: New file.
	* nptl/tst-tls7mod.c: New file.
	* nptl/allocatestack.c (init_one_static_tls): Use atomic barrier.
2014-01-03 11:22:26 -08:00
Joseph Myers
24db925aa7 Regenerate powerpc-nofpu ulps. 2014-01-03 18:09:05 +00:00
Joseph Myers
7dd009d865 Mark various libm tests with xfail-rounding:ldbl-128ibm.
This patch marks various libm tests with xfail-rounding:ldbl-128ibm,
where the failures appear to relate to GCC bug 59666 (bad libgcc
handling of directed rounding), so as to allow clean libm-test-ulps
regeneration without needing to edit out large ulps for various
functions manually.

Note that this only deals with the cases problematic for ulps
regeneration.  There are plenty of test failures left that do not
affect ulps regeneration - results that are infinities or NaNs but
should be finite, or vice versa, and missing and spurious exceptions -
which should also be resolved during the release testing period.

Tested for powerpc32 (hard float).

	* math/auto-libm-test-in: Mark various tests with
	xfail-rounding:ldbl-128ibm.
	* math/auto-libm-test-out: Regenerated.
2014-01-03 17:08:10 +00:00
Joseph Myers
819e5d50dd Fix ldbl-128ibm logl inaccuracy (bug 16386).
This patch fixes bug 16386, ldbl-128ibm logl inaccuracy (with
consequent inaccuracy for lgammal) for arguments where the high double
is subnormal, which showed up while attempting to regenerate ulps for
powerpc-nofpu for 2.19.  The problem here is logic failing to allow
for subnormals when calculating the exponent of the argument.  Tested
for powerpc-nofpu.

	* sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Adjust
	numbers with subnormal high part when calculating exponent.
2014-01-02 16:35:46 +00:00
Joseph Myers
90b6a1e55f Fix ldbl-128ibm asinhl inaccuracy (bug 16385).
This patch fixes bug 16385, ldbl-128ibm asinhl inaccuracy, which
showed up while attempting to regenerate ulps for powerpc-nofpu for
2.19.  The problem here was use of fabs instead of fabsl meaning large
arguments were reduced to the precision of double.  Tested for
powerpc-nofpu.

	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use fabsl not
	fabs.
2014-01-02 16:34:24 +00:00