Commit Graph

15947 Commits

Author SHA1 Message Date
Alan Modra
02f04a6c7f PowerPC LE _dl_hwcap access
http://sourceware.org/ml/libc-alpha/2013-08/msg00091.html

More LE support, correcting word accesses to _dl_hwcap.

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S: Use
	HIWORD/LOWORD.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Ditto.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Ditto.
2013-10-04 10:38:46 +09:30
Alan Modra
9b874b2f1e PowerPC ugly symbol versioning
http://sourceware.org/ml/libc-alpha/2013-08/msg00090.html

This patch fixes symbol versioning in setjmp/longjmp.  The existing
code uses raw versions, which results in wrong symbol versioning when
you want to build glibc with a base version of 2.19 for LE.

Note that the merging the 64-bit and 32-bit versions in novmx-lonjmp.c
and pt-longjmp.c doesn't result in GLIBC_2.0 versions for 64-bit, due
to the base in shlib_versions.

	* sysdeps/powerpc/longjmp.c: Use proper symbol versioning macros.
	* sysdeps/powerpc/novmx-longjmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/bsd-setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/mcount.c: Likewise.
	* sysdeps/powerpc/powerpc32/setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc64/setjmp.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Likewise.
2013-10-04 10:38:28 +09:30
Anton Blanchard
be1e5d3113 PowerPC LE setjmp/longjmp
http://sourceware.org/ml/libc-alpha/2013-08/msg00089.html

Little-endian fixes for setjmp/longjmp.  When writing these I noticed
the setjmp code corrupts the non volatile VMX registers when using an
unaligned buffer.  Anton fixed this, and also simplified it quite a
bit.

The current code uses boilerplate for the case where we want to store
16 bytes to an unaligned address.  For that we have to do a
read/modify/write of two aligned 16 byte quantities.  In our case we
are storing a bunch of back to back data (consective VMX registers),
and only the start and end of the region need the read/modify/write.

	[BZ #15723]
	* sysdeps/powerpc/jmpbuf-offsets.h: Comment fix.
	* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Correct
	_dl_hwcap access for little-endian.
	* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.  Don't
	destroy vmx regs when saving unaligned.
	* sysdeps/powerpc/powerpc64/__longjmp-common.S: Correct CR load.
	* sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise CR save.  Don't
	destroy vmx regs when saving unaligned.
2013-10-04 10:37:59 +09:30
Alan Modra
fef13a78ea PowerPC floating point little-endian [15 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00206.html

The union loses when little-endian.

	* sysdeps/powerpc/powerpc32/power4/hp-timing.h (HP_TIMING_NOW):
	Don't use a union to pack hi/low value.
2013-10-04 10:37:27 +09:30
Anton Blanchard
76a66d510a PowerPC floating point little-endian [14 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00205.html

These all wrongly specified float constants in a 64-bit word.

	* sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Correct float constants
	for little-endian.
	* sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Likewise.
	* sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Likewise.
2013-10-04 10:36:24 +09:30
Alan Modra
6a31fe7f9c PowerPC floating point little-endian [13 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00088.html

	* sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Increase alignment of
	constants to usual value for .cst8 section, and remove redundant
	high address load.
	* sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Use float
	constant for 0x1p52.  Load little-endian words of double from
	correct stack offsets.
2013-10-04 10:35:54 +09:30
Alan Modra
7b88401f3b PowerPC floating point little-endian [12 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00087.html

Fixes for little-endian in 32-bit assembly.

	* sysdeps/powerpc/sysdep.h (LOWORD, HIWORD, HISHORT): Define.
	* sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Load little-endian
	words of double from correct stack offsets.
	* sysdeps/powerpc/powerpc32/fpu/s_copysignl.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/s_lround.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: Likewise.
	* sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Likewise.
	* sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Likewise.
	* sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: Likewise.
	* sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: Likewise.
	* sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S: Likewise.
	* sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: Likewise.
	* sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Likewise.
	* sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S: Likewise.
	* sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S: Likewise.
	* sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S: Likewise.
	* sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S: Use HISHORT.
	* sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S: Likewise.
2013-10-04 10:35:43 +09:30
Alan Modra
9c008155b7 PowerPC floating point little-endian [11 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00202.html

Another little-endian fix.

	* sysdeps/powerpc/fpu_control.h (_FPU_GETCW): Rewrite using
	64-bit int/double union.
	(_FPU_SETCW): Likewise.
	* sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_GET_DI_FPSCR): Likewise.
	(_SET_DI_FPSCR, _GET_SI_FPSCR, _SET_SI_FPSCR): Likewise.
2013-10-04 10:35:21 +09:30
Alan Modra
da13146da1 PowerPC floating point little-endian [10 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00201.html

These two functions oddly test x+1>0 when a double x is >= 0.0, and
similarly when x is negative.  I don't see the point of that since the
test should always be true.  I also don't see any need to convert x+1
to integer rather than simply using xr+1.  Note that the standard
allows these functions to return any value when the input is outside
the range of long long, but it's not too hard to prevent xr+1
overflowing so that's what I've done.

(With rounding mode FE_UPWARD, x+1 can be a lot more than what you
might naively expect, but perhaps that situation was covered by the
x - xrf < 1.0 test.)

	* sysdeps/powerpc/fpu/s_llround.c (__llround): Rewrite.
	* sysdeps/powerpc/fpu/s_llroundf.c (__llroundf): Rewrite.
2013-10-04 10:35:10 +09:30
Alan Modra
603e84104c PowerPC floating point little-endian [9 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00200.html

This works around the fact that vsx is disabled in current
little-endian gcc.  Also, float constants take 4 bytes in memory
vs. 16 bytes for vector constants, and we don't need to write one lot
of masks for double (register format) and another for float (mem
format).

	* sysdeps/powerpc/fpu/s_float_bitwise.h (__float_and_test28): Don't
	use vector int constants.
	(__float_and_test24, __float_and8, __float_get_exp): Likewise.
2013-10-04 10:34:57 +09:30
Anton Blanchard
4a28b3ca4b PowerPC floating point little-endian [8 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00199.html

Corrects floating-point environment code for little-endian.

	* sysdeps/powerpc/fpu/fenv_libc.h (fenv_union_t): Replace int
	array with long long.
	* sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Adjust.
	* sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Adjust.
	* sysdeps/powerpc/fpu/fclrexcpt.c (__feclearexcept): Adjust.
	* sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Adjust.
	* sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Adjust.
	* sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Adjust.
	* sysdeps/powerpc/fpu/feholdexcpt.c (feholdexcept): Adjust.
	* sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Adjust.
	* sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Adjust.
	* sysdeps/powerpc/fpu/fgetexcptflg.c (__fegetexceptflag): Adjust.
	* sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Adjust.
	* sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Adjust.
	* sysdeps/powerpc/fpu/ftestexcept.c (fetestexcept): Adjust.
2013-10-04 10:34:26 +09:30
Anton Blanchard
2ca85d2bbb PowerPC floating point little-endian [7 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00086.html

	* sysdeps/powerpc/bits/mathinline.h (__signbitf): Use builtin.
	(__signbit): Likewise.  Correct for little-endian.
	(__signbitl): Call __signbit.
	(lrint): Correct for little-endian.
	(lrintf): Call lrint.
2013-10-04 10:34:14 +09:30
Alan Modra
62a728aeff PowerPC floating point little-endian [6 of 15]
http://sourceware.org/ml/libc-alpha/2013-07/msg00197.html

A rewrite to make this code correct for little-endian.

	* sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c (mynumber): Replace
	union 32-bit int array member with 64-bit int array.
	(t515, tm256): Double rather than long double.
	(__ieee754_sqrtl): Rewrite using 64-bit arithmetic.
2013-10-04 10:33:21 +09:30
Alan Modra
32c301dfc9 PowerPC floating point little-endian [5 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00085.html

Rid ourselves of ieee854.

	* sysdeps/ieee754/ldbl-128ibm/ieee754.h (union ieee854_long_double):
	Delete.
	(IEEE854_LONG_DOUBLE_BIAS): Delete.
	* sysdeps/ieee754/ldbl-128ibm/math_ldbl.h: Don't include ieee854
	version of math_ldbl.h.
2013-10-04 10:33:05 +09:30
Alan Modra
650ef4bd79 PowerPC floating point little-endian [4 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00084.html

Another batch of ieee854 macros and union replacement.  These four
files also have bugs fixed with this patch.  The fact that the two
doubles in an IBM long double may have different signs means that
negation and absolute value operations can't just twiddle one sign bit
as you can with ieee864 style extended double.  fmodl, remainderl,
erfl and erfcl all had errors of this type.  erfl also returned +1 for
large magnitude negative input where it should return -1.  The hypotl
error is innocuous since the value adjusted twice is only used as a
flag.  The e_hypotl.c tests for large "a" and small "b" are mutually
exclusive because we've already exited when x/y > 2**120.  That allows
some further small simplifications.

	[BZ #15734], [BZ #15735]
	* sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (__ieee754_fmodl): Rewrite
	all uses of ieee875 long double macros and unions.  Simplify test
	for 0.0L.  Correct |x|<|y| and |x|=|y| test.  Use
	ldbl_extract_mantissa value for ix,iy exponents.  Properly
	normalize after ldbl_extract_mantissa, and don't add hidden bit
	already handled.  Don't treat low word of ieee854 mantissa like
	low word of IBM long double and mask off bit when testing for
	zero.
	* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl): Rewrite
	all uses of ieee875 long double macros and unions.  Simplify tests
	for 0.0L and inf.  Correct double adjustment of k.  Delete dead code
	adjusting ha,hb.  Simplify code setting kld.  Delete two600 and
	two1022, instead use their values.  Recognise that tests for large
	"a" and small "b" are mutually exclusive.  Rename vars.  Comment.
	* sysdeps/ieee754/ldbl-128ibm/e_remainderl.c (__ieee754_remainderl):
	Rewrite all uses of ieee875 long double macros and unions.  Simplify
	test for 0.0L and nan.  Correct negation.
	* sysdeps/ieee754/ldbl-128ibm/s_erfl.c (__erfl): Rewrite all uses of
	ieee875 long double macros and unions.  Correct output for large
	magnitude x.  Correct absolute value calculation.
	(__erfcl): Likewise.
	* math/libm-test.inc: Add tests for errors discovered in IBM long
	double versions of fmodl, remainderl, erfl and erfcl.
2013-10-04 10:32:48 +09:30
Alan Modra
765714cafc PowerPC floating point little-endian [3 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00083.html

Further replacement of ieee854 macros and unions.  These files also
have some optimisations for comparison against 0.0L, infinity and nan.
Since the ABI specifies that the high double of an IBM long double
pair is the value rounded to double, a high double of 0.0 means the
low double must also be 0.0.  The ABI also says that infinity and
nan are encoded in the high double, with the low double unspecified.
This means that tests for 0.0L, +/-Infinity and +/-NaN need only check
the high double.

	* sysdeps/ieee754/ldbl-128ibm/e_atan2l.c (__ieee754_atan2l): Rewrite
	all uses of ieee854 long double macros and unions.  Simplify tests
	for long doubles that are fully specified by the high double.
	* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r):
	Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c (__ieee754_ilogbl): Likewise.
	Remove dead code too.
	* sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
	(__ieee754_ynl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise.
	Remove dead code too.
	* sysdeps/ieee754/ldbl-128ibm/k_tanl.c (__kernel_tanl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_frexpl.c (__frexpl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_isinf_nsl.c (__isinf_nsl): Likewise.
	Simplify.
	* sysdeps/ieee754/ldbl-128ibm/s_isinfl.c (___isinfl): Likewise.
	Simplify.
	* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_modfl.c (__modfl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Likewise.
	Comment on variable precision.
	* sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c (__nexttoward): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c (__nexttowardf):
	Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_remquol.c (__remquol): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c (__scalblnl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c (__scalbnl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_tanhl.c (__tanhl): Likewise.
	* sysdeps/powerpc/fpu/libm-test-ulps: Adjust tan_towardzero ulps.
2013-10-04 10:32:36 +09:30
Alan Modra
4ebd120cd9 PowerPC floating point little-endian [2 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00082.html

This patch replaces occurrences of GET_LDOUBLE_* and SET_LDOUBLE_*
macros, and union ieee854_long_double_shape_type in ldbl-128ibm/,
and a stray one in the 32-bit fpu support.  These files have no
significant changes apart from rewriting the long double bit access.

	* sysdeps/ieee754/ldbl-128ibm/math_ldbl.h (ldbl_high): Define.
	* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Rewrite
	all uses of ieee854 long double macros and unions.
	* sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c (__ieee754_atanhl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_coshl.c (__ieee754_coshl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (__ieee754_rem_pio2l):
	Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c (__ieee754_sinhl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/k_cosl.c (__kernel_cosl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/k_sincosl.c (__kernel_sincosl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/k_sinl.c (__kernel_sinl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_atanl.c (__atanl): Likewise.
	Simplify sign and nan test too.
	* sysdeps/ieee754/ldbl-128ibm/s_cosl.c (__cosl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_fabsl.c (__fabsl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_finitel.c (___finitel): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c (___fpclassifyl):
	Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_isnanl.c (___isnanl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c (__issignalingl):
	Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_logbl.c (__logbl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_signbitl.c (___signbitl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_sincosl.c (__sincosl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_sinl.c (__sinl): Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_tanl.c (__tanl): Likewise.
	* sysdeps/powerpc/powerpc32/power7/fpu/s_logbl.c (__logbl): Likewise.
2013-10-04 10:32:19 +09:30
Alan Modra
1b6adf888d PowerPC floating point little-endian [1 of 15]
http://sourceware.org/ml/libc-alpha/2013-08/msg00081.html

This is the first of a series of patches to ban ieee854_long_double
and the ieee854_long_double macros when using IBM long double.  union
ieee854_long_double just isn't correct for IBM long double, especially
when little-endian, and pretending it is OK has allowed a number of
bugs to remain undetected in sysdeps/ieee754/ldbl-128ibm/.

This changes the few places in generic code that use it.

	* stdio-common/printf_size.c (__printf_size): Don't use
	union ieee854_long_double in fpnum union.
	* stdio-common/printf_fphex.c (__printf_fphex): Likewise.  Use
	signbit macro to retrieve sign from long double.
	* stdio-common/printf_fp.c (___printf_fp): Use signbit macro to
	retrieve sign from long double.
	* sysdeps/ieee754/ldbl-128ibm/printf_fphex.c: Adjust for fpnum change.
	* sysdeps/ieee754/ldbl-128/printf_fphex.c: Likewise.
	* sysdeps/ieee754/ldbl-96/printf_fphex.c: Likewise.
	* sysdeps/x86_64/fpu/printf_fphex.c: Likewise.
	* math/test-misc.c (main): Don't use union ieee854_long_double.
ports/
	* sysdeps/ia64/fpu/printf_fphex.c: Adjust for fpnum change.
2013-10-04 10:31:41 +09:30
Alan Modra
4cf69995e2 Fix for [BZ #15680] IBM long double inaccuracy
http://sourceware.org/ml/libc-alpha/2013-06/msg00919.html

I discovered a number of places where denormals and other corner cases
were being handled wrongly.

- printf_fphex.c: Testing for the low double exponent being zero is
unnecessary.  If the difference in exponents is less than 53 then the
high double exponent must be nearing the low end of its range, and the
low double exponent hit rock bottom.

- ldbl2mpn.c: A denormal (ie. exponent of zero) value is treated as
if the exponent was one, so shift mantissa left by one.  Code handling
normalisation of the low double mantissa lacked a test for shift count
greater than bits in type being shifted, and lacked anything to handle
the case where the difference in exponents is less than 53 as in
printf_fphex.c.

- math_ldbl.h (ldbl_extract_mantissa): Same as above, but worse, with
code testing for exponent > 1 for some reason, probably a typo for >= 1.

- math_ldbl.h (ldbl_insert_mantissa): Round the high double as per
mpn2ldbl.c (hi is odd or explicit mantissas non-zero) so that the
number we return won't change when applying ldbl_canonicalize().
Add missing overflow checks and normalisation of high mantissa.
Correct misleading comment: "The hidden bit of the lo mantissa is
zero" is not always true as can be seen from the code rounding the hi
mantissa.  Also by inspection, lzcount can never be less than zero so
remove that test.  Lastly, masking bitfields to their widths can be
left to the compiler.

- mpn2ldbl.c: The overflow checks here on rounding of high double were
just plain wrong.  Incrementing the exponent must be accompanied by a
shift right of the mantissa to keep the value unchanged.  Above notes
for ldbl_insert_mantissa are also relevant.

	[BZ #15680]
	* sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c: Comment fix.
	* sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
	(PRINT_FPHEX_LONG_DOUBLE): Tidy code by moving -53 into ediff
	calculation.  Remove unnecessary test for denormal exponent.
	* sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c (__mpn_extract_long_double):
	Correct handling of denormals.  Avoid undefined shift behaviour.
	Correct normalisation of low mantissa when low double is denormal.
	* sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
	(ldbl_extract_mantissa): Likewise.  Comment.  Use uint64_t* for hi64.
	(ldbl_insert_mantissa): Make both hi64 and lo64 parms uint64_t.
	Correct normalisation of low mantissa.  Test for overflow of high
	mantissa and normalise.
	(ldbl_nearbyint): Use more readable constant for two52.
	* sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
	(__mpn_construct_long_double): Fix test for overflow of high
	mantissa and correct normalisation.  Avoid undefined shift.
2013-10-04 10:30:56 +09:30
Alan Modra
9605ca6c08 IBM long double mechanical changes to support little-endian
http://sourceware.org/ml/libc-alpha/2013-07/msg00001.html

This patch starts the process of supporting powerpc64 little-endian
long double in glibc.  IBM long double is an array of two ieee
doubles, so making union ibm_extended_long_double reflect this fact is
the correct way to access fields of the doubles.

	* sysdeps/ieee754/ldbl-128ibm/ieee754.h
	(union ibm_extended_long_double): Define as an array of ieee754_double.
	(IBM_EXTENDED_LONG_DOUBLE_BIAS): Delete.
	* sysdeps/ieee754/ldbl-128ibm/printf_fphex.c: Update all references
	to ibm_extended_long_double and IBM_EXTENDED_LONG_DOUBLE_BIAS.
	* sysdeps/ieee754/ldbl-128ibm/e_exp10l.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/e_expl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/math_ldbl.h: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/strtold_l.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c: Likewise.
2013-10-04 10:28:42 +09:30
Joseph Myers
d3d237560b Hardcode locale archive page size as 4096. 2013-10-03 22:00:05 +00:00
Joseph Myers
975569d0d9 Remove locale file dependence on int32_t alignment. 2013-10-03 21:51:32 +00:00
Ondřej Bílka
b1fe1f2b83 BZ #431 Fix manual of strncat/wcsncat. 2013-10-03 19:54:23 +02:00
Brooks Moses
5f855e3598 Fix erroneous (and circular) implied pattern rule for linkobj/libc.so.
[BZ #15915] As described in the bug, the pattern rule for lib%.so files
in Makerules includes linkobj/libc.so as a dependency.  However, the
explicit rule for linkobj/libc.so is in the top-level Makefile.

Thus, the subdirectory makefiles that include Makerules end up with an
erroneous makefile pattern rule for linkobj/libc.so that includes
itself as a dependency.  The result is make warnings whenever rules
for other .so files are resolved -- and, on occasion, actual makefile
failures when a race condition causes the implicit rule to actually be
used.

This patch moves the explicit rules for linkobj/libc.so into Makerules
to clear up this problem.  It also elaborates a couple of comments
that I'd initially found confusing.
2013-10-03 10:38:14 -07:00
Eric Blake
29c793b3c2 maint: correct changelog
* ChangeLog: List my previous commit in correct location.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-10-02 05:55:09 -06:00
Will Newton
3cef60098c malloc: Add pvalloc test.
ChangeLog:

2013-10-02  Will Newton  <will.newton@linaro.org>

	* malloc/Makefile: Add tst-pvalloc.
	* malloc/tst-pvalloc.c: New file.
2013-10-02 10:45:40 +01:00
Will Newton
7815420bc9 malloc/tst-valloc.c: Improve test coverage and use test-skeleton.c.
ChangeLog:

2013-10-02  Will Newton  <will.newton@linaro.org>

	* malloc/tst-valloc.c: Rewrite to use test-skeleton.c and
	improve test coverage.
2013-10-02 10:43:40 +01:00
Will Newton
4868b204aa malloc: Add posix_memalign test.
ChangeLog:

2013-10-02  Will Newton  <will.newton@linaro.org>

	* malloc/Makefile: Add tst-posix_memalign.
	* malloc/tst-posix_memalign.c: New file.
2013-10-02 10:42:36 +01:00
Eric Blake
e833b53fe6 glob: silence -Wattribute warnings
Colin Watson reported that some versions of gcc warn about
attribute leaf used on a static function, since it has no
effect on anything but external functions.

* posix/glob.c (next_brace_sub, prefix_array, collated_compare):
Use __THROWNL rather than __THROW on static functions.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-10-01 13:50:29 -06:00
Petr Machata
fd96752258 Add AArch64 relocation definitions. 2013-09-30 12:38:10 +01:00
Andreas Schwab
b2179107f3 Properly cache the result from looking up the nss database config 2013-09-30 10:29:13 +02:00
Mike Frysinger
47f28d0a66 tst-fanotify: fix style
Reported-by: Andreas Jaeger <aj@suse.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-09-28 23:53:50 -04:00
Patrick 'P. J.' McDermott
0a834ddecb don't use Bash-specific ${parameter/pattern/string} expansion
sysdeps/unix/make-syscalls.sh and sysdeps/unix/Makefile use GNU Bash's
${parameter/pattern/string} parameter expansion.  Non-Bash shells (e.g.
dash or BusyBox ash when built with CONFIG_ASH_BASH_COMPAT disabled)
don't support this expansion syntax.  So glibc will fail to build when
$(SHELL) expands to a path that isn't provided by Bash.

An example build failure:

    for dir in [...]; do \
      test -f $dir/syscalls.list && \
      { sysdirs='[...]' \
        asm_CPP='gcc -c    -I[...]   -D_LIBC_REENTRANT -include include/libc-symbols.h       -DASSEMBLER  -g -Wa,--noexecstack   -E -x assembler-with-cpp' \
        /bin/sh sysdeps/unix/make-syscalls.sh $dir || exit 1; }; \
      test $dir = sysdeps/unix && break; \
    done > [build-dir]/sysd-syscallsT
    sysdeps/unix/make-syscalls.sh: line 273: syntax error: bad substitution

This patch simply replaces the three instances of the Bash-only syntax
in these files with an echo and sed command substitution.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-09-28 23:03:09 -04:00
Allan McRae
3d2abe798d Revert "Remove references to non-existent content items in install.texi"
This reverts commit 583c76a7ce which
breaks building info pages during "make install".

Conflicts:
	ChangeLog
2013-09-28 13:10:59 +10:00
Siddhesh Poyarekar
c04d498c12 Move ChangeLog entry 2013-09-27 23:02:57 +05:30
Allan McRae
583c76a7ce Remove references to non-existent content items in install.texi
These were left in when the installation section was split out
into its own file.
2013-09-27 14:47:56 +10:00
Siddhesh Poyarekar
c8886d0abf Use the mutex member of the argumen in __libc_lock_*_recursive 2013-09-27 07:59:26 +05:30
Kaz Kojima
f4518a17e3 Add ChangeLog entry for new sysdeps/sh/stackguard-macros.h. 2013-09-27 11:05:41 +09:00
Ondřej Bílka
dc1a95c730 Faster strrchr. 2013-09-26 19:23:01 +02:00
Adhemerval Zanella
5ebbff8fd1 PowerPC: Fix POINTER_CHK_GUARD thread register for PPC64 2013-09-25 13:43:04 -05:00
Joseph Myers
4fd2cf9f5e conformtest: Clean up expectations for POSIX for sched.h. 2013-09-25 00:51:42 +00:00
Olivier Langlois
12c22bc4e3 Fix tst-long-dbl-fphex swprintf length calculation. 2013-09-24 16:12:12 -07:00
Joseph Myers
a03d8ea77f conformtest: Clean up expectations for POSIX for pthread.h. 2013-09-24 22:09:04 +00:00
Joseph Myers
6055173a0f Add localedef --big-endian and --little-endian options. 2013-09-24 22:07:47 +00:00
Roland McGrath
39bf0bb44c Update to canonical freemanuals.texi file. 2013-09-24 14:06:56 -07:00
Will Newton
f02eed105c sysdeps/mach/hurd/i386/tls.h: Remove TLS_INIT_TP_EXPENSIVE.
This define was removed from the rest of the tree eight years ago.

ChangeLog:

2013-09-24  Will Newton  <will.newton@linaro.org>

	* sysdeps/mach/hurd/i386/tls.h (TLS_INIT_TP_EXPENSIVE): Remove
	macro.
2013-09-24 09:25:53 +01:00
Joseph Myers
a3a6c3129f Make locale archive hash function architecture-independent. 2013-09-23 23:03:34 +00:00
Maciej W. Rozycki
107375acff manual: Fix a typo in `POSIX Threads' section 2013-09-23 21:15:45 +01:00
Siddhesh Poyarekar
303e567a80 Check for integer overflow in cache size computation in strcoll
strcoll is implemented using a cache for indices and weights of
collation sequences in the strings so that subsequent passes do not
have to search through collation data again.  For very large string
inputs, the cache size computation could overflow.  In such a case,
use the fallback function that does not cache indices and weights of
collation sequences.

Fixes CVE-2012-4412.
2013-09-23 11:29:53 +05:30
Siddhesh Poyarekar
141f3a77fe Fall back to non-cached sequence traversal and comparison on malloc fail
strcoll currently falls back to alloca if malloc fails, resulting in a
possible stack overflow.  This patch implements sequence traversal and
comparison without caching indices and rules.

Fixes CVE-2012-4424.
2013-09-23 11:29:53 +05:30
Carlos O'Donell
0b1f8e3564 BZ #15754: Fix test case for ARM.
Statically built binaries use __pointer_chk_guard_local,
while dynamically built binaries use __pointer_chk_guard.
Provide the right definition depending on the test case
we are building.
2013-09-23 01:44:38 -04:00
Carlos O'Donell
c61b4d41c9 BZ #15754: CVE-2013-4788
The pointer guard used for pointer mangling was not initialized for
static applications resulting in the security feature being disabled.
The pointer guard is now correctly initialized to a random value for
static applications. Existing static applications need to be
recompiled to take advantage of the fix.

The test tst-ptrguard1-static and tst-ptrguard1 add regression
coverage to ensure the pointer guards are sufficiently random
and initialized to a default value.
2013-09-23 00:52:09 -04:00
Vinitha Vijayan
f5f4e7b48b [BZ #15859] Fix memory leak in _dl_map_object_deps 2013-09-21 19:18:23 +02:00
Andreas Schwab
5bb43a4319 Make __ffs hidden 2013-09-20 21:25:31 +02:00
Alexandre Oliva
ffb89e533e Mention malloc probes in the NEWS file.
for ChangeLog

	* NEWS: Mention malloc probes.
2013-09-20 11:59:18 -03:00
Alexandre Oliva
322dea0838 Add malloc probes for sbrk and heap resizing.
for ChangeLog

	* malloc/arena.c (new_heap): New memory_heap_new probe.
	(grow_heap): New memory_heap_more probe.
	(shrink_heap): New memory_heap_less probe.
	(heap_trim): New memory_heap_free probe.
	* malloc/malloc.c (sysmalloc): New memory_sbrk_more probe.
	(systrim): New memory_sbrk_less probe.
	* manual/probes.texi: Document them.
2013-09-20 11:54:58 -03:00
Alexandre Oliva
655673f312 Add catch-all alloc retry probe.
for ChangeLog

	* malloc/arena.c (arena_get_retry): Add memory_arena_retry probe.
	* manual/probes.texi: Document it.
2013-09-20 11:50:51 -03:00
Alexandre Oliva
35fed6f15d Add probes for malloc retries.
for ChangeLog

	* malloc/malloc.c (__libc_malloc): Add memory_malloc_retry probe.
	(__libc_realloc): Add memory_realloc_retry probe.
	(__libc_memalign): Add memory_memalign_retry probe.
	(__libc_valloc): Add memory_valloc_retry probe.
	(__libc_pvalloc): Add memory_pvalloc_retry probe.
	(__libc_calloc): Add memory_calloc_retry probe.
	* manual/probes.texi: Document them.
2013-09-20 11:50:08 -03:00
Alexandre Oliva
6999d38c95 Add probes for malloc arena changes.
for ChangeLog

	* malloc/arena.c (get_free_list): Add probe
	memory_arena_reuse_free_list.
	(reused_arena) [PER_THREAD]: Add probes memory_arena_reuse_wait
	and memory_arena_reuse.
	(arena_get2) [!PER_THREAD]: Likewise.
	* malloc/malloc.c (__libc_realloc) [!PER_THREAD]: Add probe
	memory_arena_reuse_realloc.
	* manual/probes.texi: Document them.
2013-09-20 11:48:45 -03:00
Alexandre Oliva
0653427fdb Add probes for all changes to malloc options.
for ChangeLog

	* malloc/malloc.c (__libc_free): Add
	memory_mallopt_free_dyn_thresholds probe.
	(__libc_mallopt): Add multiple memory_mallopt probes.
	* manual/probes.texi: Document them.
2013-09-20 11:42:28 -03:00
Alexandre Oliva
3ea5be5436 Add first set of memory probes.
for ChangeLog

	* malloc/malloc.c: Include stap-probe.h.
	(__libc_mallopt): Add memory_mallopt probe.
	* malloc/arena.c (_int_new_arena): Add memory_arena_new probe.
	* manual/probes.texi: New.
	* manual/Makefile (chapters): Add probes.
	* manual/threads.texi: Set next node.
2013-09-20 11:10:54 -03:00
Carlos O'Donell
3e181ddac9 Copy-edit NEWS and fixup ChangeLog entries. 2013-09-20 01:25:09 -04:00
Chris Leonard
e35696c370 Update Changelog and NEWS 2013-09-20 00:32:58 -04:00
Siddhesh Poyarekar
4aafb73cb2 Consolidate common code into macros
Consolidated common Taylor series polynomials into macros in s_sin.c
to make it a bit cleaner.
2013-09-19 20:34:45 +05:30
Liubov Dmitrieva
d84f25c7d8 Fix buffer overrun in strtod_l 2013-09-19 16:52:04 +04:00
Siddhesh Poyarekar
7849ff938c Add benchmark inputs for sincos 2013-09-19 16:55:27 +05:30
Siddhesh Poyarekar
cfa3c8865f New test cases for sin and cos for multiple precision fallback 2013-09-19 16:54:24 +05:30
Siddhesh Poyarekar
b348e1e3a6 Consolidate sin/cos table lookup code 2013-09-19 16:51:02 +05:30
Siddhesh Poyarekar
6cce25f814 Consolidate sin/cos computation for large inputs 2013-09-19 16:45:27 +05:30
Siddhesh Poyarekar
5eea0404a8 Remove redundant goto lines 2013-09-19 16:43:53 +05:30
Maciej W. Rozycki
9c21573c02 MIPS: IEEE 754-2008 NaN encoding support
It has been a long practice for software using IEEE 754 floating-point
arithmetic run on MIPS processors to use an encoding of Not-a-Number
(NaN) data different to one used by software run on other processors.
And as of IEEE 754-2008 revision [1] this encoding does not follow one
recommended in the standard, as specified in section 6.2.1, where it
is stated that quiet NaNs should have the first bit (d1) of their
significand set to 1 while signalling NaNs should have that bit set to
0, but MIPS software interprets the two bits in the opposite manner.

As from revision 3.50 [2][3] the MIPS Architecture provides for
processors that support the IEEE 754-2008 preferred NaN encoding format.
As the two formats (further referred to as "legacy NaN" and "2008 NaN")
are incompatible to each other, tools have to provide support for the
two formats to help people avoid using incompatible binary modules.

The change is comprised of two functional groups of features, both of
which are required for correct support.

1. Dynamic linker support.

   To enforce the NaN encoding requirement in dynamic linking a new ELF
   file header flag has been defined.  This flag is set for 2008-NaN
   shared modules and executables and clear for legacy-NaN ones.  The
   dynamic linker silently ignores any incompatible modules it
   encounters in dependency processing.

   To avoid unnecessary processing of incompatible modules in the
   presence of a shared module cache, a set of new cache flags has been
   defined to mark 2008-NaN modules for the three ABIs supported.
   Changes to sysdeps/unix/sysv/linux/mips/readelflib.c have been made
   following an earlier code quality suggestion made here:

   http://sourceware.org/ml/libc-ports/2009-03/msg00036.html

   and are therefore a little bit more extensive than the minimum
   required.

   Finally a new name has been defined for the dynamic linker so that
   2008-NaN and legacy-NaN binaries can coexist on a single system that
   supports dual-mode operation and that a legacy dynamic linker that
   does not support verifying the 2008-NaN ELF file header flag is not
   chosen to interpret a 2008-NaN binary by accident.

2. Floating environment support.

   IEEE 754-2008 features are controlled in the Floating-Point Control
   and Status (FCSR) register and updates are needed to floating
   environment support so that the 2008-NaN flag is set correctly and
   the kernel default, inferred from the 2008-NaN ELF file header flag
   at the time an executable is loaded, respected.

As the NaN encoding format is a property of GCC code generation that is
both a user-selected GCC configuration default and can be overridden
with GCC options, code that needs to know what NaN encoding standard it
has been configured for checks for the __mips_nan2008 macro that is
defined internally by GCC whenever the 2008-NaN mode has been selected.
This mode is determined at the glibc configuration time and therefore a
few consistency checks have been added to catch cases where compilation
flags have been overridden by the user.

The 2008 NaN set of features relies on kernel support as the in-kernel
floating-point emulator needs to be aware of the NaN encoding used even
on hard-float processors and configure the FPU context according to the
value of the 2008 NaN ELF file header flag of the executable being
started.  As at this time work on kernel support is still in progress
and the relevant changes have not made their way yet to linux.org master
repository.

Therefore the minimum version supported has been artificially set to
10.0.0 so that 2008-NaN code is not accidentally run on a Linux kernel
that does not suppport it.  It is anticipated that the version is
adjusted later on to the actual initial linux.org kernel version to
support this feature.  Legacy NaN encoding support is unaffected, older
kernel versions remain supported.

[1] "IEEE Standard for Floating-Point Arithmetic", IEEE Computer
    Society, IEEE Std 754-2008, 29 August 2008

[2] "MIPS Architecture For Programmers, Volume I-A: Introduction to the
    MIPS32 Architecture", MIPS Technologies, Inc., Document Number:
    MD00082, Revision 3.50, September 20, 2012

[3] "MIPS Architecture For Programmers, Volume I-A: Introduction to the
    MIPS64 Architecture", MIPS Technologies, Inc., Document Number:
    MD00083, Revision 3.50, September 20, 2012
2013-09-18 21:33:50 +01:00
Joseph Myers
24d22e65b3 e500 port: fpu_control.h. 2013-09-18 14:47:49 +00:00
Joseph Myers
2e071de0f7 e500 port: setjmp/longjmp. 2013-09-18 14:46:57 +00:00
Joseph Myers
d13ef0662f Don't force -msoft-float for powerpc --without-fp. 2013-09-18 14:44:34 +00:00
Siddhesh Poyarekar
97a0650b8a Format sincos32.c 2013-09-18 13:01:34 +05:30
Joseph Myers
11ca09e932 Fix powerpc fpu_control.h namespace and parenthesis issues (bug 15966). 2013-09-17 21:28:19 +00:00
Richard Sandiford
08ffcf34d9 Fix some types in localedef. 2013-09-13 23:31:10 +00:00
Jia Liu
ae7080d30c sunrpc/rpc/types.h: fix OS X and FreeBSD build problems
When I build arm-linux-gcc on OS X, I find glibc will get a build error
in sunrpc/rpc/types.h, so I add __APPLE_CC__ to make OS X build OK.
For FreeBSD, Add __FreeBSD__ to make it build OK, too.

URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00155.html
URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00217.html
URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00240.html
Signed-off-by: Jia Liu <proljc@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-09-11 18:37:21 -04:00
Ondřej Bílka
5905e7b3e2 Faster strchr implementation. 2013-09-11 17:07:38 +02:00
Will Newton
b987c77672 benchtests: Rename argument to TIMING_INIT macro.
The TIMING_INIT macro currently sets the number of loop iterations
to 1000, which limits usefulness. Make the argument a clock
resolution value and multiply by 1000 in bench-skeleton.c instead
to allow easier reuse.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	* benchtests/bench-timing.h (TIMING_INIT): Rename ITERS
	parameter to RES. Remove hardcoded 1000 value.
	* benchtests/bench-skeleton.c (main): Pass RES parameter
	to TIMING_INIT and multiply result by 1000.
2013-09-11 15:18:20 +01:00
Adhemerval Zanella
ddf985af47 Update powerpc-fpu ULPs. 2013-09-11 07:38:57 -05:00
Andreas Schwab
ffdd31816a Add O_TMPFILE to <fcntl.h> 2013-09-11 11:52:46 +02:00
Will Newton
b73ed24778 malloc: Check for integer overflow in memalign.
A large bytes parameter to memalign could cause an integer overflow
and corrupt allocator internals. Check the overflow does not occur
before continuing with the allocation.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	[BZ #15857]
	* malloc/malloc.c (__libc_memalign): Check the value of bytes
	does not overflow.
2013-09-11 09:42:43 +01:00
Will Newton
55e17aadc1 malloc: Check for integer overflow in valloc.
A large bytes parameter to valloc could cause an integer overflow
and corrupt allocator internals. Check the overflow does not occur
before continuing with the allocation.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	[BZ #15856]
	* malloc/malloc.c (__libc_valloc): Check the value of bytes
	does not overflow.
2013-09-11 09:41:04 +01:00
Will Newton
1159a19369 malloc: Check for integer overflow in pvalloc.
A large bytes parameter to pvalloc could cause an integer overflow
and corrupt allocator internals. Check the overflow does not occur
before continuing with the allocation.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	[BZ #15855]
	* malloc/malloc.c (__libc_pvalloc): Check the value of bytes
	does not overflow.
2013-09-11 09:39:40 +01:00
Ondřej Bílka
c7cabd1355 Remove DO_NOT_USE_THIS conditionals. 2013-09-10 19:15:33 +02:00
Allan McRae
aa04af0078 Clarify documentation cross-reference
The end of the "Parsing of Floats" subsection currently reads:

   The GNU C Library also provides '_l' versions of these functions,
which take an additional argument, the locale to use in conversion.
*Note Parsing of Integers::.

Split the final note as it is unrelated to the above comment and
reference it with "See also" instead.
2013-09-10 14:13:40 +10:00
Allan McRae
cdfc721b8d Update pt_chown sections of the manual
The pt-chown binary is discussed in the "Running make install" section
without clarification of the needed configure option.  Clarify this
and simplfy the discription which is already covered in the "Configuring
and compiling" section.
2013-09-10 14:11:39 +10:00
Maciej W. Rozycki
95e7cf295e Fix static-binary lazy FPU context allocation
Long ago static startup did not parse the auxiliary vector and therefore
could not get at any `AT_FPUCW' tag to check whether upon FPU context
allocation the kernel would use a FPU control word setting different to
that provided by the `__fpu_control' variable.  Static startup therefore
always initialized the FPU control word, forcing immediate FPU context
allocation even for binaries that otherwise never used the FPU.

As from GIT commit f8f900ecb9 static
startup supports parsing the auxiliary vector, so now it can avoid
explicit initialization of the FPU control word, just as can dynamic
startup, in the usual case where the setting written to the FPU control
word would be the same as the kernel uses.  This defers FPU context
allocation until the binary itself actually pokes at the FPU.

Note that the `AT_FPUCW' tag is usually absent from the auxiliary vector
in which case _FPU_DEFAULT is assumed to be the kernel default.
2013-09-09 22:36:57 +01:00
Allan McRae
a9f5ce099c Fix typo in strcoll example 2013-09-09 22:56:38 +10:00
Allan McRae
34829bc28f Fix memory leak in stdlib/isomac.c 2013-09-09 22:53:46 +10:00
Allan McRae
3932737df1 Fix memory leaks in libio on allocation failure 2013-09-09 22:52:25 +10:00
Allan McRae
83e43bf0b7 Fix nesting of ifdefs in netgroupcache.c
Fixes unclosed '{' if HAVE_SENDFILE is defined (BZ #15895).
2013-09-09 20:25:01 +10:00
Will Newton
0c66b8e985 malloc: Add realloc test.
The current tests don't test the functionality of realloc in detail.
Add a new test for realloc that exercises some of the corner cases
that are not otherwise tested.

ChangeLog:

2013-09-09  Will Newton  <will.newton@linaro.org>

	* malloc/Makefile: Add tst-realloc to tests.
	* malloc/tst-realloc.c: New file.
2013-09-09 09:20:09 +01:00
Allan McRae
f6b00fd115 Update to latest versions of GPL-2.0 and LGPL-2.1
Pull copies of these files directly from the GNU website:
  http://www.gnu.org/licenses/gpl-2.0.txt
  http://www.gnu.org/licenses/lgpl-2.1.txt

Fixes the address of the Free Software Foundation (BZ #15844). Also
includes some minor formatting changes and corrects references to
the GNU "Library" General Public License.
2013-09-09 12:52:48 +10:00
David S. Miller
eec55e167f Update Chinese (traditional) translations.
* po/zh_TW.po: Update Chinese (traditional) translation from
	translation project.
2013-09-06 15:26:43 -04:00
Richard Sandiford
1ecbb381ae Make localedef output generation use more logical interfaces. 2013-09-06 17:20:45 +00:00
Adhemerval Zanella
e029e2e5c5 benchtests: Add memrchr benchmark 2013-09-06 09:24:52 -03:00
Will Newton
bbf6e8e4f4 benchtests/Makefile: Run benchmark for memcpy.
The benchmark for memcpy got disabled accidentally. Re-enable it.

ChangeLog:

2013-09-06   Will Newton  <will.newton@linaro.org>

	* benchtests/Makefile (string-bench): Add memcpy.
2013-09-06 11:59:00 +01:00
Carlos O'Donell
6c82a2f8d7 Coordinate IPv6 definitions for Linux and glibc
This change synchronizes the glibc headers with the Linux kernel
headers and arranges to coordinate the definition of structures
already defined the Linux kernel UAPI headers.

It is now safe to include glibc's netinet/in.h or Linux's linux/in6.h
in any order in a userspace application and you will get the same
ABI. The ABI is guaranteed by UAPI and glibc.
2013-09-06 01:02:30 -04:00
Adhemerval Zanella
5430fc65a1 PowerPC: fix POWER7 memrchr for some large inputs 2013-09-05 09:32:56 -05:00
Adhemerval Zanella
4660856c6f Add memrchr testcase 2013-09-05 09:52:08 -03:00
Mike Frysinger
bb8ea71379 tst-fanotify: skip when we get back EPERM
Since fanotify_init requires CAP_SYS_ADMIN in order to work (which usually
means running as root), we need to handle that error case too.

Reported-by: Andreas Jaeger <aj@suse.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-09-05 03:04:01 -04:00
Joseph Myers
b92a20b560 conformtest: Fix namespace testing. 2013-09-04 20:47:21 +00:00
Chris Leonard
9fc2e09ffa Update iso-1427.def and related occurrences. 2013-09-04 11:45:05 -04:00
Chris Leonard
7447ccd98e Update iso-1427.def and related occurrences. 2013-09-04 11:42:53 -04:00
Joseph Myers
3f2e46a494 Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
Will Newton
44558701ff benchtests: Switch string benchmarks to use bench-timing.h.
Switch the string benchmarks to using bench-timing.h instead
of hp-timing.h directly. This allows the string benchmarks to
be run usefully on architectures such as ARM that do not have
support for hp-timing.h.

In order to do this the tests have been changed from timing each
individual call and picking the lowest execution time recorded to
timing a number of calls and taking the mean execution time.

ChangeLog:

2013-09-04   Will Newton  <will.newton@linaro.org>

	* benchtests/bench-timing.h (TIMING_PRINT_MEAN): New macro.
	* benchtests/bench-string.h: Include bench-timing.h instead
	of including hp-timing.h directly. (INNER_LOOP_ITERS): New
	define. (HP_TIMING_BEST): Delete macro. (test_init): Remove
	call to HP_TIMING_DIFF_INIT.
	* benchtests/bench-memccpy.c: Use bench-timing.h macros
	instead of hp-timing.h macros.
	* benchtests/bench-memchr.c: Likewise.
	* benchtests/bench-memcmp.c: Likewise.
	* benchtests/bench-memcpy.c: Likewise.
	* benchtests/bench-memmem.c: Likewise.
	* benchtests/bench-memmove.c: Likewise.
	* benchtests/bench-memset.c: Likewise.
	* benchtests/bench-rawmemchr.c: Likewise.
	* benchtests/bench-strcasecmp.c: Likewise.
	* benchtests/bench-strcasestr.c: Likewise.
	* benchtests/bench-strcat.c: Likewise.
	* benchtests/bench-strchr.c: Likewise.
	* benchtests/bench-strcmp.c: Likewise.
	* benchtests/bench-strcpy.c: Likewise.
	* benchtests/bench-strcpy_chk.c: Likewise.
	* benchtests/bench-strlen.c: Likewise.
	* benchtests/bench-strncasecmp.c: Likewise.
	* benchtests/bench-strncat.c: Likewise.
	* benchtests/bench-strncmp.c: Likewise.
	* benchtests/bench-strncpy.c: Likewise.
	* benchtests/bench-strnlen.c: Likewise.
	* benchtests/bench-strpbrk.c: Likewise.
	* benchtests/bench-strrchr.c: Likewise.
	* benchtests/bench-strspn.c: Likewise.
	* benchtests/bench-strstr.c: Likewise.
2013-09-04 15:40:12 +01:00
Will Newton
cae16d6675 benchtests/Makefile: Use LDLIBS instead of LDFLAGS.
LDFLAGS puts the library too early in the command line if --as-needed
is being used. Use LDLIBS instead.

ChangeLog:

2013-09-04  Will Newton  <will.newton@linaro.org>

	* benchtests/Makefile: Use LDLIBS instead of LDFLAGS.
2013-09-04 15:38:41 +01:00
Joseph Myers
ffa3cd7f1a Fix lgammaf spurious underflow (bug 15427). 2013-09-03 15:32:54 +00:00
Ondřej Bílka
8f02859f17 Add unaligned strcmp. 2013-09-03 16:27:10 +02:00
Mike Frysinger
18d4371683 hppa: add fanotify_mark
Another example of all the 64bit arches getting the definition via a
common file, but the 32bit ones all adding it by themselves and hppa
was missed.

I'm not entirely sure about the usage of GLIBC_2.19 symbols here.
We'd like to backport this so people can use it, but it means we'd
be releasing a glibc-2.17/glibc-2.18 with a GLIBC_2.19 symbol in it.
But maybe it won't be a big deal since you'd only get that 2.19 ref
if you actually used the symbol ?

There hasn't been a glibc release where hppa worked w/out a bunch of
patches, so in reality there's only two distros that matter -- Gentoo
and Debian.

Reported-by: Jeroen Roovers <jer@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-09-02 23:22:24 -04:00
Mike Frysinger
ac44401205 tst-fanotify: new simple test
Basic test for the fanotify functions.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-09-02 23:22:23 -04:00
Joseph Myers
b7835e3223 Fix spurious jnf underflows (bug 14155). 2013-09-02 14:51:24 +00:00
Ondřej Bílka
8220f4f008 Fix typo. 2013-09-02 11:29:34 +02:00
Ondřej Bílka
f24a6d086b Fix then/than typos. 2013-08-30 18:10:31 +02:00
Ondřej Bílka
382466e04e Fix typos. 2013-08-30 18:08:59 +02:00
Ondřej Bílka
0186c6e97e Fix rawmemchr regression on bulldozer. 2013-08-30 10:14:37 +02:00
Roland McGrath
99541e8077 Fix up ChangeLog formatting. 2013-08-29 14:15:45 -07:00
Ondřej Bílka
d4e16af1ae Remove aix specific files. 2013-08-29 18:11:45 +02:00
Thomas Schwinge
8833598053 Hurd: Add ESUCCESS error_t value. 2013-08-29 12:22:30 +02:00
Samuel Thibault
ed479b02c2 Hurd: Use __executable_start symbol instead of _start.
_start points to the first instruction, not to the ELF header.
__executable_start does point on the ELF header.
2013-08-29 12:22:19 +02:00
Thomas Schwinge
d821f07c9e Support ELFOSABI_GNU on all GNU systems. 2013-08-29 12:22:18 +02:00
Thomas Schwinge
c54290cf08 Use ELFOSABI_GNU instead of ELFOSABI_LINUX. 2013-08-29 12:22:17 +02:00
Thomas Schwinge
0007fc9bdd [BZ #15522] strtod ("nan(N)") returning a sNaN in some cases 2013-08-29 12:22:10 +02:00
Thomas Schwinge
f1cc4c8654 math: Additional type conversion tests
These have helped me find and fix type conversion issues in QEMU's MIPS
hardware emulation.  While certainly glibc is not the best place for such
tests, they're just an enhancement of tests already present.
2013-08-29 12:21:07 +02:00
Ondřej Bílka
6f65e66895 Fix typos. 2013-08-29 09:11:45 +02:00
Siddhesh Poyarekar
3a30923983 Use __glibc_unlikely instead of __builtin_expect (..., 0) 2013-08-28 09:44:19 +05:30
Mike Frysinger
3b813b2965 [BZ #15897] dlfcn: do not mark dlopen/dlclose as leaf functions
Since the dlopen funcs might invoke a constructor that calls a func
that is in the same compilation unit as the caller, we cannot mark
them as leaf funcs.

Similarly, dlclose might invoke a destructor that calls a func that
is in the same compilation unit as the caller.

URL: https://sourceware.org/bugzilla/show_bug.cgi?id=15897
Reportedy-by: Fabrice Bauzac <libnoon@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-08-27 15:47:13 -04:00
Roland McGrath
7f9d003410 Clean up h_errno declaration to use __thread unconditionally. 2013-08-27 11:09:33 -07:00
Roland McGrath
fb431262c1 Clean up _res declaration to use __thread unconditionally. 2013-08-27 11:04:46 -07:00
Roland McGrath
bd81123a8b Cope without sunrpc. 2013-08-27 10:59:57 -07:00
Roland McGrath
c4e42566cf Don't try to use ioctl unless [FIONREAD]. 2013-08-27 10:50:06 -07:00
Roland McGrath
f890a59b10 Mild decrufting in resolv code. 2013-08-27 10:49:36 -07:00
Roland McGrath
5d1f0a09f3 True stub __ifreq. 2013-08-27 10:42:52 -07:00
Roland McGrath
6fcf28b352 Clean up __libc_sa_len helper. 2013-08-27 10:34:16 -07:00
Roland McGrath
e041fb8b65 Replace generic bits/socket.h with 4.4 file. 2013-08-27 10:33:15 -07:00
Roland McGrath
8cc3269f95 Flesh out 4.4 bits/socket.h with SOCK_CLOEXEC, SOCK_NONBLOCK. 2013-08-27 10:32:30 -07:00
Andreas Schwab
45b8acccaf Fix missing declaration of LC_CTYPE nonascii-case element 2013-08-27 12:21:12 +02:00
Andreas Schwab
5d228a436a Fix handling LC_CTYPE nonascii-case fallback in i686 SSE4.2 and SSSE3 strcasecmp/strncasecmp 2013-08-27 12:19:03 +02:00
Roland McGrath
53234cc3a3 Make stub lxstat64 call xstat64, like stub lxstat calls xstat. 2013-08-26 15:11:47 -07:00
Roland McGrath
59d112a4c7 Use proper #include for xdecrypt declarations. 2013-08-26 15:04:02 -07:00
Siddhesh Poyarekar
595aba70a4 Initialize res_hconf in nscd
Fixes BZ #15890.
2013-08-26 15:42:29 +05:30
Andreas Schwab
ffabd3937a Fix dependencies for stdlib/tst-tls-atexit 2013-08-26 10:21:59 +02:00
Siddhesh Poyarekar
e0a69f5cb8 Fix indentation in aicache.c 2013-08-26 10:53:02 +05:30
Mike Frysinger
8c12f01d07 configure: add missing quotes in $build_pt_chown test
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-08-25 16:02:09 -04:00
Joseph Myers
8fe89494e6 Fix cexp (NaN + i0) (bug 15532). 2013-08-23 19:45:38 +00:00
David S. Miller
936241e4b2 Add Ukrainian translations.
* po/uk.po: Add Ukrainian translations from translation project.
2013-08-22 16:35:51 -07:00
David S. Miller
75b181d615 Update Catalan translations.
* po/ca.po: Update Catalan translation from translation project.
2013-08-22 16:30:34 -07:00
Joseph Myers
acd06bb11f Fix fdim handling of infinities (bug 15797). 2013-08-21 19:56:48 +00:00
Ondřej Bílka
c0c3f78afb Fix typos. 2013-08-21 19:48:48 +02:00
Liubov Dmitrieva
46ed103824 i686: Skip SSE4_2 version for strcmp, strncmp, strncase, strcasecmp
if bit_Slow_SSE4_2 is set.
2013-08-21 18:25:08 +04:00
Adhemerval Zanella
d400dcac5e PowerPC: fix backtrace to handle signal trampolines
This patch fixes backtrace for PPC32 and PPC64 to correctly handle
signal trampolines. The 'debug/tst-backtrace6.c' also check for
SA_SIGINFO handling, where is triggers another vDSO symbols for PPC32.
2013-08-20 15:05:49 -05:00
Joseph Myers
c980f2f4fe Fix cproj handling of (finite, NaN) arguments (bug 15531). 2013-08-20 19:41:15 +00:00
Joseph Myers
0716c4fc9f Include <string.h> in sysdeps/unix/sysv/linux/mmap64.c. 2013-08-20 19:38:23 +00:00
Joseph Myers
42c8fdd8f1 Use __getpagesize and __ffs in MMAP2_PAGE_SHIFT == -1 case of mmap64. 2013-08-20 16:43:59 +00:00
Joseph Myers
b31469d0d4 Remove trailing blank lines when generating INSTALL. 2013-08-20 16:41:25 +00:00
Andreas Krebbel
4e39af6eca * sysdeps/unix/sysv/linux/s390/sys/procfs.h (struct elf_prstatus):
Align 32 bit compat elf_greg to 8 bytes.
2013-08-20 14:13:59 +02:00
Andreas Arnez
f315524e03 * elf/setup-vdso.h (setup_vdso): Fix missing string termination. 2013-08-20 14:03:04 +02:00
Siddhesh Poyarekar
1326ba1af2 Simplify strcoll implementation
Break up strcoll into simpler functions so that the logic is easier to
follow and maintain.
2013-08-20 08:40:06 +05:30
Florian Weimer
91ce40854d CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r
* sysdeps/posix/dirstream.h (struct __dirstream): Add errcode
	member.
	* sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode
	member.
	* sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member.
	* sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit.
	Return delayed error code.  Remove GETDENTS_64BIT_ALIGNED
	conditional.
	* sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define
	GETDENTS_64BIT_ALIGNED.
	* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
	* manual/filesys.texi (Reading/Closing Directory): Document
	ENAMETOOLONG return value of readdir_r.  Recommend readdir more
	strongly.
	* manual/conf.texi (Limits for Files): Add portability note to
	NAME_MAX, PATH_MAX.
	(Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
2013-08-16 09:40:34 +02:00
Andreas Schwab
ca0a6bc4c5 Fix cbrtl for ldbl-96 2013-08-13 09:45:02 +02:00
David S. Miller
6c1fd79571 Open development for 2.19.
* version.h (RELEASE): Set to "development".
	(VERSION): Set to "2.18.90".
	* NEWS: Add 2.19 section.
2013-08-12 13:43:14 -07:00
Andreas Schwab
85891acadf Fix typo in ChangeLog 2013-08-06 11:13:48 +02:00
David S. Miller
31ad488dff Update Korean translations.
* po/ko.po: Update Korean translation from translation project.
2013-08-03 10:35:26 -07:00
David S. Miller
db24e6842d Update manual/contrib.texi
* manual/contrib.texi: Update entry for Siddhesh Poyarekar.  Add
	entries for Will Newton, Andi Kleen, David Holsgrove, and Ondrej
	Bilka.
2013-08-01 17:27:04 -07:00
David S. Miller
f723285b13 Update French translations.
* po/fr.po: Update French translation from translation project.
2013-07-30 11:27:46 -07:00
David S. Miller
30bbc0ccfa Update Czech translations.
* po/cs.po: Update Czech translation from translation project.
2013-07-28 13:01:03 -07:00
David S. Miller
3cbc52dbbc Update Swedish translations.
* po/sv.po: Update Swedish translation from translation project.
2013-07-28 11:11:13 -07:00
David S. Miller
f1a7f49259 Update Esperanto translations.
* po/eo.po: Update Esperanto translation from translation project.
2013-07-27 17:49:14 -07:00
David S. Miller
90e62a4aae Update Vietnamese translations.
* po/vi.po: Update Vietnamese translation from translation project.
2013-07-27 01:49:29 -07:00
David S. Miller
d492e6d080 Update German translations.
* po/de.po: Update German translation from translation project.
2013-07-27 00:56:58 -07:00
David S. Miller
641aa7b459 Update Bulgarian translations.
* po/bg.po: Update Bulgarian translation from translation project.
2013-07-26 15:58:17 -07:00
David S. Miller
d4baa62d45 Update Dutch, Polish, and Russian translations.
* po/nl.po: Update Dutch translation from translation project.
	* po/pl.po: Update Polish translation from translation project.
	* po/ru.po: Update Russian translation from translation project.
2013-07-26 13:21:03 -07:00
David S. Miller
61a9dcb9d6 Update libc.pot in preparation for giving tarball to translation project.
* po/libc.pot: Update.
2013-07-25 12:02:15 -07:00
Adhemerval Zanella
7b1f8b581f PowerPC: use _dl_static_init to set GLRO(gl_pagesize)
This patch fixes dlfcn/tststatic5 for PowerPC where pagesize
variable was not properly initialized in certain cases. This patch
is based on other architecture code.
2013-07-23 07:39:57 -05:00
Andreas Krebbel
a8fc7a03a8 S/390: ULPs update. 2013-07-22 09:51:52 +02:00
Carlos O'Donell
e4608715e6 CVE-2013-2207, BZ #15755: Disable pt_chown.
The helper binary pt_chown tricked into granting access to another
user's pseudo-terminal.

Pre-conditions for the attack:

 * Attacker with local user account
 * Kernel with FUSE support
 * "user_allow_other" in /etc/fuse.conf
 * Victim with allocated slave in /dev/pts

Using the setuid installed pt_chown and a weak check on whether a file
descriptor is a tty, an attacker could fake a pty check using FUSE and
trick pt_chown to grant ownership of a pty descriptor that the current
user does not own.  It cannot access /dev/pts/ptmx however.

In most modern distributions pt_chown is not needed because devpts
is enabled by default. The fix for this CVE is to disable building
and using pt_chown by default. We still provide a configure option
to enable hte use of pt_chown but distributions do so at their own
risk.
2013-07-21 15:39:55 -04:00
David S. Miller
da2d62df77 Update Sparc ULPs.
* sysdeps/sparc/fpu/libm-test-ulps: Update ULPs to handle minor
	difference between 32-bit and 64-bit.
2013-07-20 16:47:28 -07:00
Carlos O'Donell
d7e06450b9 BZ #15711: Avoid circular dependency for syscall.h
The generated header is compiled with `-ffreestanding' to avoid any
circular dependencies against the installed implementation headers.
Such a dependency would require the implementation header to be
installed before the generated header could be built (See bug 15711).
In current practice the generated header dependencies do not include
any of the implementation headers removed by the use of `-ffreestanding'.

---

2013-07-15  Carlos O'Donell  <carlos@redhat.com>

	[BZ #15711]
	* sysdeps/unix/sysv/linux/Makefile ($(objpfx)bits/syscall%h):
	Avoid system header dependency with -ffreestanding.
	($(objpfx)bits/syscall%d): Likewise.
2013-07-16 17:55:43 -04:00
David S. Miller
f959cfd790 Annotate more cases of math bug 15319.
* math/libm-test.inc (casin_test_data): Annotate more cases of missing
	underflows from atanl/atan2l due to bug 15319.
	(casinh_test_data): Likewise.
2013-07-13 16:57:05 -07:00
David S. Miller
c61f8513f7 Full from-scratch rebuild of sparc ULPs.
* sysdeps/sparc/fpu/libm-test-ulps: Regenerate from scratch.
2013-07-07 22:15:36 -07:00
Jeroen Albers
72c90ed01f Update x86 and x86_64 ulps on AMD FX-8350 with GCC 4.8.1. 2013-07-05 12:58:20 +00:00
Siddhesh Poyarekar
52dfbe137e Fix lock elision help text in INSTALL and configure 2013-07-04 20:33:03 +05:30
Adhemerval Zanella
3f16954315 Update powerpc-fpu ULPs. 2013-07-04 07:14:44 -05:00
Andreas Jaeger
521c6785e1 Sync sys/ptrace with Linux 3.10 2013-07-04 09:49:14 +02:00
Allan McRae
d2cc15cb50 Update i386 ULPs.
* sysdeps/i386/fpu/libm-test-ulps: Update.
2013-07-03 12:45:40 +10:00
David S. Miller
3aaeeca7a9 Update sparc ULPs.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2013-07-02 16:41:17 -07:00
Markus Trippelsdorf
5314ed1afd Update x86_64 ULPs. 2013-07-02 22:01:13 +00:00
Joseph Myers
67338156ea Regenerate x86 and x86_64 ulps. 2013-07-02 20:01:15 +00:00
Andi Kleen
1717da59ae Add a configure option to enable lock elision and disable by default
Can be enabled with --enable-lock-elision=yes at configure time.
2013-07-02 08:46:55 -07:00
H.J. Lu
1c81621c5b Enable static 32-bit SSE4.2 strcasecmp/strncasecmp 2013-07-02 08:06:04 -07:00
Joseph Myers
77f01ab5d1 Implement fma in soft-fp. 2013-07-02 14:55:32 +00:00
Liubov Dmitrieva
6308fd9a46 Skip SSE4.2 versions on Intel Silvermont
SSE2/SSSE3 versions are faster than SSE4.2 versions on Intel Silvermont.
2013-06-28 15:31:40 -07:00
Ryan S. Arnold
89cd956937 PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
Ryan S. Arnold
1ae8bfe07c Add GLRO(dl_hwcap2) for new AT_HWCAP2 auxv_t a_type. 2013-06-28 16:50:48 -05:00
Joseph Myers
8fbec01098 Consistently use page_shift in sysdeps/unix/sysv/linux/mmap64.c. 2013-06-28 21:45:11 +00:00
Pierre Ynard
0432680e8c Test for mprotect failure in dl-load.c (bug 12492). 2013-06-28 21:43:42 +00:00
Nathan Froyd
ce61a2ad2e Mark packed structure element used with atomic operation aligned. 2013-06-28 21:42:19 +00:00
Maciej W. Rozycki
3d0f5d0c7a Add a dlopen/getpagesize static executable test. 2013-06-28 17:43:07 +01:00
Maciej W. Rozycki
f91f1c0fb8 [BZ #15022] Correct global-scope dlopen issues in static executables.
This change creates a link map in static executables to serve as the
global search list for dlopen.  It fixes a problem with the inability
to access the global symbol object and a crash on an attempt to map a
DSO into the global scope.  Some code that has become dead after the
addition of this link map is removed too and test cases are provided.
2013-06-28 16:22:20 +01:00
Joseph Myers
cbe7d24bb4 Require GCC 4.4 or later to build glibc. 2013-06-26 23:10:48 +00:00
H.J. Lu
bb5bb87cd2 Add a test for BZ #15674 2013-06-26 15:23:08 -07:00
Liubov Dmitrieva
11b8a0e1d7 Fix buffers overrun in x86_64 memcmp-ssse3.S 2013-06-26 12:31:51 -07:00
Maciej W. Rozycki
b003710377 [BZ #15022] Avoid repeated calls to DL_STATIC_INIT for the same module. 2013-06-26 19:14:29 +01:00
Ryan S. Arnold
c18c701d03 Add AT_HWCAP2 as a new auxv_t a_type to elf.h. 2013-06-26 08:50:20 -05:00
Mike Frysinger
89756a8cdb drop NEWS mention
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-06-25 15:20:13 -04:00
Richard Henderson
1d17fa5f8e Fix missing libc-internal.h include.
* locale/programs/locarchive.c: Include <libc-internal.h>
2013-06-25 11:21:20 -07:00
Joseph Myers
8fcb833a2b Update texinfo.tex. 2013-06-25 17:21:48 +00:00
Mike Frysinger
17db6e8d6b [BZ #10283] localedef: align fixed maps to SHMLBA
Many Linux arches require fixed mmaps to be aligned higher than pagesize,
so use the SHMLBA define as it represents this quantity exactly.

This fixes spurious errors seen on those arches like:
cannot map archive header: Invalid argument

URL: http://sourceware.org/bugzilla/show_bug.cgi?id=10283
Reported-by: CHIKAMA Masaki <masaki.chikama@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-06-24 20:26:58 -04:00
Mike Frysinger
d605071ebf libc-internal.h: add ALIGN helper macros
Rather than open coding the masks, add helper macros to do the magic.
This makes code easier to read.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-06-24 20:25:15 -04:00
Ryan S. Arnold
2f063a6e84 PowerPC: Enable POWER8 platform sans hwcap bits. 2013-06-24 15:33:32 -05:00
Siddhesh Poyarekar
a74ca98fdd Regenerate INSTALL file 2013-06-24 21:46:42 +05:30
Siddhesh Poyarekar
a31ee4b3a5 Fix typo in comment 2013-06-24 18:07:37 +05:30
Joseph Myers
d8412221e6 Include <string.h> in sysdeps/unix/sysv/linux/libc_fatal.c. 2013-06-22 19:30:10 +00:00
Joseph Myers
695c378f81 Fix soft-fp shadowing between __FP_FRAC_ADD_3 and _FP_MUL_MEAT_2_wide_3mul (bug 15667). 2013-06-22 19:27:41 +00:00
Maciej W. Rozycki
d1d5471579 Remove dead DL_DST_REQ_STATIC code. 2013-06-22 00:39:42 +01:00
Joseph Myers
8fdda7afb8 Fix bad shift in soft-fp (bug 7006). 2013-06-21 19:00:43 +00:00
Maciej W. Rozycki
f3bc5e5a3e dlfcn/Makefile: Avoid repeated $(*-ENV) definitions. 2013-06-21 18:13:39 +01:00
Kaz Kojima
be09e8c9ec Add sh4 implementation of fegetexceptflag. 2013-06-21 18:07:31 +09:00
Adhemerval Zanella
85c2e6110c Fix loop construction to functions calls
Check wheter the compiler has the option -fno-tree-loop-distribute-patterns
to inhibit loop transformation to library calls and uses it on memset
and memmove default implementation to avoid recursive calls.
2013-06-20 19:42:05 -05:00
Joseph Myers
b8c792af85 Allow fesetround failures in math/test-misc.c if ROUNDING_TESTS fails. 2013-06-20 19:11:34 +00:00
Joseph Myers
c91e082525 Avoid spurious failures from <fenv.h> fallback functions (bug 15654). 2013-06-20 19:10:44 +00:00
Roland McGrath
bfcacbdec0 Use rtld-CPPFLAGS in rtld-%.os rules for generated sources. 2013-06-18 16:29:25 -07:00
Adhemerval Zanella
e55a9b256d PowerPC: Reserve TCB space for EBB framework
This patch reserves four pointer to be used in future Event-Based
Branch framework for PowerPC.
2013-06-17 15:50:53 -05:00
Roland McGrath
12086fb483 Sort sysd-rules-patterns by descending pattern length. 2013-06-17 09:55:49 -07:00
Roland McGrath
346d65b33a Rewrite sysd-rules generation using an awk script. 2013-06-17 09:55:21 -07:00
Joseph Myers
1a8463176c Use math-tests.h more in math/test-misc. 2013-06-17 11:48:11 +00:00
Joseph Myers
3711a167f6 Fix spurious "inexact" exceptions from dbl-64 sqrt (bug 15631). 2013-06-15 19:59:41 +00:00
Joseph Myers
8fc75e6fb7 Add another fma test. 2013-06-15 19:58:38 +00:00
Siddhesh Poyarekar
adf23d2cca Add documentation for default pthread attribute functions 2013-06-15 12:27:41 +05:30
Siddhesh Poyarekar
61dd6208fb New API to set default thread attributes
This patch introduces two new convenience functions to set the default
thread attributes used for creating threads.  This allows a programmer
to set the default thread attributes just once in a process and then
run pthread_create without additional attributes.
2013-06-15 12:24:15 +05:30
Liubov Dmitrieva
d086fc7ba0 Set fast unaligned load flag for new Intel microarchitecture
I have small patch for new Intel Silvermont machines.

http://newsroom.intel.com/community/intel_newsroom/blog/2013/05/06/intel-launches-low-power-high-performance-silvermont-microarchitecture

I checked this on my machine and see that strcpy, ... unaligned
versions are faster than ssse3 versions.
2013-06-14 20:46:15 +02:00
Siddhesh Poyarekar
747ef469ff Add rtld-memset.S for x86_64
Resolves: BZ #15627

Add an assembler version of rtld-memset to avoid using SSE registers.
2013-06-15 00:09:26 +05:30
Joseph Myers
1b2feed264 Make tst-strtod-round use ROUNDING_TESTS. 2013-06-14 17:58:41 +00:00
Roland McGrath
a58ad3f801 Fix raciness in waitid test. 2013-06-13 15:09:29 -07:00
Siddhesh Poyarekar
c204ab284b Fix NEWS entry about clock precision
Text by Roland McGrath.
2013-06-13 23:12:00 +05:30
Roland McGrath
f4a29fba07 Don't let ld.so that failed its sanity check land in place. 2013-06-13 10:26:44 -07:00
Joseph Myers
1f24b9ad0f Rework tst-strtod-round handling of inexact results. 2013-06-13 15:41:58 +00:00
Siddhesh Poyarekar
2d6f4c5b53 Fix ChangeLog entry 2013-06-13 10:19:49 +05:30
Siddhesh Poyarekar
58206c6863 Improve precision of clock() function on Linux
Resolves #12515.

Use CLOCK_PROCESS_CPUTIME_ID instead of times to get better precision
in the value returned by clock.
2013-06-13 09:54:35 +05:30
Adhemerval Zanella
6a97b62a5b Fix unsafe compiler optimization
GCC 4.8 enables -ftree-loop-distribute-patterns at -O3 by default and
this optimization may transform loops into memset/memmove calls. Without
proper handling this may generate unexpected PLT calls on GLIBC.
This patch fixes by create memset/memmove alias to internal GLIBC
__GI_memset/__GI_memmove symbols.
2013-06-12 10:21:22 -05:00
Joseph Myers
94f2c07669 Make more libm tests condition exceptions tests with math-tests.h. 2013-06-12 12:41:25 +00:00
Andreas Jaeger
e0e50a0a31 Update Interlingua translation from translation project 2013-06-12 10:12:19 +02:00
Siddhesh Poyarekar
2506109403 Set/restore rounding mode only when needed
The most common use case of math functions is with default rounding
mode, i.e. rounding to nearest.  Setting and restoring rounding mode
is an unnecessary overhead for this, so I've added support for a
context, which does the set/restore only if the FP status needs a
change.  The code is written such that only x86 uses these.  Other
architectures should be unaffected by it, but would definitely benefit
if the set/restore has as much overhead relative to the rest of the
code, as the x86 bits do.

Here's a summary of the performance improvement due to these
improvements; I've only mentioned functions that use the set/restore
and have benchmark inputs for x86_64:

Before:

cos(): ITERS:4.69335e+08: TOTAL:28884.6Mcy, MAX:4080.28cy, MIN:57.562cy, 16248.6 calls/Mcy
exp(): ITERS:4.47604e+08: TOTAL:28796.2Mcy, MAX:207.721cy, MIN:62.385cy, 15543.9 calls/Mcy
pow(): ITERS:1.63485e+08: TOTAL:28879.9Mcy, MAX:362.255cy, MIN:172.469cy, 5660.86 calls/Mcy
sin(): ITERS:3.89578e+08: TOTAL:28900Mcy, MAX:704.859cy, MIN:47.583cy, 13480.2 calls/Mcy
tan(): ITERS:7.0971e+07: TOTAL:28902.2Mcy, MAX:1357.79cy, MIN:388.58cy, 2455.55 calls/Mcy

After:

cos(): ITERS:6.0014e+08: TOTAL:28875.9Mcy, MAX:364.283cy, MIN:45.716cy, 20783.4 calls/Mcy
exp(): ITERS:5.48578e+08: TOTAL:28764.9Mcy, MAX:191.617cy, MIN:51.011cy, 19071.1 calls/Mcy
pow(): ITERS:1.70013e+08: TOTAL:28873.6Mcy, MAX:689.522cy, MIN:163.989cy, 5888.18 calls/Mcy
sin(): ITERS:4.64079e+08: TOTAL:28891.5Mcy, MAX:6959.3cy, MIN:36.189cy, 16062.8 calls/Mcy
tan(): ITERS:7.2354e+07: TOTAL:28898.9Mcy, MAX:1295.57cy, MIN:380.698cy, 2503.7 calls/Mcy

So the improvements are:

cos: 27.9089%
exp: 22.6919%
pow: 4.01564%
sin: 19.1585%
tan: 1.96086%

The downside of the change is that it will have an adverse performance
impact on non-default rounding modes, but I think the tradeoff is
justified.
2013-06-12 10:36:48 +05:30
Siddhesh Poyarekar
59b3055595 Convert iso-639.def to utf-8 2013-06-11 22:14:43 +05:30
Joseph Myers
f1d73d30df Add exception information to math-tests.h and use it in libm-test.inc. 2013-06-11 15:44:31 +00:00
Siddhesh Poyarekar
94aca5e740 Port remaining string benchmarks
There were a few more string benchmarks (strcpy_chk and stpcpy_check)
in the debug directory that needed to be ported over.
2013-06-11 20:51:55 +05:30
Ryan S. Arnold
fac0c5f2b1 PowerPC: Merge ports/ dl-procinfo.[ch] with base. 2013-06-11 10:13:39 -05:00
Andreas Schwab
f22bc486c1 Update BIG5-HKSCS charmap to HKSCS-2008 2013-06-11 17:02:59 +02:00
Siddhesh Poyarekar
4eacded20f Fix indentation and add copyright header to time.h 2013-06-11 18:42:42 +05:30
Siddhesh Poyarekar
fec799f823 Remove performance-related bits from string tests 2013-06-11 15:08:13 +05:30
Siddhesh Poyarekar
9702047480 Copy over string performance tests into benchtests
Copy over already existing string performance tests into benchtests.
Bits not related to performance measurements have been omitted.
2013-06-11 15:08:13 +05:30
Siddhesh Poyarekar
c1f75dc386 Begin porting string performance tests to benchtests
This is the initial support for string function performance tests,
along with copying tests for memcpy and memcpy-ifunc as proof of
concept.  The string function benchmarks perform operations at
different alignments and for different sizes and compare performance
between plain operations and the optimized string operations.  Due to
this their output is incompatible with the function benchmarks where
we're interested in fastest time, throughput, etc.

In future, the correctness checks in the benchmark tests can be
removed.  Same goes for the performance measurements in the
string/test-*.
2013-06-11 15:08:13 +05:30
Andreas Schwab
50fd745b4d Fix handling of netgroup cache in nscd 2013-06-11 11:29:50 +02:00
Andreas Jaeger
3ee7e9fe34 Update Chinese (traditional) translation from translation project 2013-06-11 09:00:26 +02:00
Siddhesh Poyarekar
89fb683558 Fix symbol definitions for __clock_* functions
__clock_gettime and other __clock_* functions could result in an extra
PLT reference within libc.so if it actually gets used.  None of the
code currently uses them, which is why this probably went unnoticed.
2013-06-11 11:11:11 +05:30
Joseph Myers
b8c61b4b1d Remove trailing whitespace from mach/*.sub. 2013-06-10 22:47:08 +00:00
Joseph Myers
0efa6f8b99 Add rounding mode information to math-tests.h and use it in libm-test.inc. 2013-06-10 12:34:49 +00:00
Siddhesh Poyarekar
50b818bf96 Avoid overwriting earlier flags in CPPFLAGS-nonlib in benchtests
When setting BENCH_DURATION in CPPFLAGS-nonlib, append to the variable
instead of assigning to it, to avoid overwriting earlier set flags,
notably the -DNOT_IN_libc=1 flag.
2013-06-10 10:08:46 +05:30
Joseph Myers
4902d2c3f7 Avoid trailing whitespace in sysdeps/gnu/errlist.c. 2013-06-08 14:55:32 +00:00
Joseph Myers
60d2f8f3c7 Use (void) in no-arguments function definitions. 2013-06-08 00:22:23 +00:00
Joseph Myers
2e09a79ada Avoid use of "register" as optimization hint. 2013-06-07 22:24:35 +00:00
Joseph Myers
9e54314bb0 Update miscellaneous scripts from upstream. 2013-06-06 19:02:09 +00:00
Ondrej Bilka
350635a59a Fix leading whitespaces. 2013-06-06 20:36:07 +02:00
Ondrej Bilka
25506f09dd Fix ChangeLog. 2013-06-06 16:11:25 +02:00
Ondrej Bilka
44a988afd8 Fix executable mode. 2013-06-06 02:15:33 +02:00
Joseph Myers
9c84384cc1 Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
Ryan S. Arnold
869378a5bf Add #include <stdint.h> to locale/gen-translit.pl and fix C-translit.h. 2013-06-05 12:01:50 -05:00
Andreas Schwab
840e2943e8 Properly handle %W in strptime 2013-06-05 10:33:02 +02:00
Siddhesh Poyarekar
4c60cb0c83 Skip modifying exception mask and flags in SET_RESTORE_ROUND_53BIT
We only need to set/restore rounding mode to ensure correct
computation for non-default rounding modes.
2013-06-05 13:56:19 +05:30
Siddhesh Poyarekar
96df079a42 Add copyright header to test-strchrnul.c 2013-06-04 16:40:55 +05:30
Siddhesh Poyarekar
d180203e97 Increase test case timeout 2013-06-04 11:23:54 +05:30
Carlos O'Donell
8b0ccb2d7f BZ #15536: Fix ulp for 128-bit IBM long double.
In 128-bit IBM long double the precision of the type
decreases as you approach subnormal numbers, equaling
that of a double for subnormal numbers. Therefore
adjust the computation in ulp to use 2^(MIN_EXP - MANT_DIG)
which is correct for FP_SUBNORMAL for all types.
2013-06-03 14:49:48 -04:00
Carlos O'Donell
3b3c4d40c1 Revert po and pot files changes.
Upstream TP should modify PO files and POT file
should be empty template.
2013-05-31 13:34:42 -04:00
Joseph Myers
fab7ce3f5b Link extra-libs consistently with libc and ld.so. 2013-05-31 16:16:33 +00:00
Patsy Franklin
eca5920cd9 Set reasonable limits for xdr_requests.
[BZ #15553] Increased the current limits large enough to load large
key and data values, but small enough to not pose a DoS threat.
2013-05-30 22:01:22 -04:00
Jeff Law
96945714ec [BZ #14256]
* manual/errno.texi (ESTALE): Update to account for more than
        just NFS file systems.
        * sysdeps/gnu/errlist.c: Regenerated.
2013-05-30 05:51:22 -06:00
Siddhesh Poyarekar
b937534868 Avoid crashing in LD_DEBUG when program name is unavailable
Resolves: #15465

The program name may be unavailable if the user application tampers
with argc and argv[].  Some parts of the dynamic linker caters for
this while others don't, so this patch consolidates the check and
fallback into a single macro and updates all users.
2013-05-29 21:34:12 +05:30
Carlos O'Donell
8a9f20c83c Add descriptive titles to po files and header.
Added descriptive titles to the Belarusian,
English (American), and Chinese (simplified)
po/pot files.

---

2013-05-28  Carlos O'Donell  <carlos@redhat.com>

	* po/be.po: Add descriptive title.
	* po/zh_CN.po: Likewise.
	* po/header.pot: Likewise.
2013-05-28 23:54:07 -04:00
Mike Frysinger
0e60d68ef0 localedef: include file name in error messages
When mkstemp fails, the error message the user gets back is:
cannot create temporary file: No such file or directory

That isn't terribly useful in figuring out why, so include the full
filename we tried to create in the error output.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-05-25 14:38:38 -04:00
Ben Norht
56b672e92e Doc fix for 'frexp' in arith.texi
It is the magnitude of the return value which lies
in [0.5, 1), not the return value itself.

---

2013-05-28  Ben North  <ben@redfrontdoor.org>

	* manual/arith.texi (frexp): It is the magnitude of the return
	value which lies in [0.5, 1), not the return value itself.
2013-05-28 17:20:24 -04:00
Adhemerval Zanella
5e056687df Update powerpc libm-test ULPs. 2013-05-28 08:39:00 -05:00
Thomas Schwinge
528c24058f * stdio-common/bug26.c (main): Correct fscanf template.
Fixup for commit 6ecec3b616.
2013-05-26 21:59:24 +02:00
Thomas Schwinge
07b4c13d0b _dl_skip_args declaration cleanup.
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start:go): Don't
	declare _dl_skip_args.

Continuation of commit 8347c74cc5.
2013-05-26 19:48:25 +02:00
Thomas Schwinge
ec9dd97cec _dl_non_dynamic_init declaration cleanup.
* sysdeps/mach/hurd/i386/init-first.c (_dl_non_dynamic_init):
	Don't declare.

Continuation of commit bc16e260d0.
2013-05-26 18:53:19 +02:00
Thomas Schwinge
2b66ef5d55 * manual/platform.texi: Add missing @end deftypefun.
Fixup for commit d116b7c414.
2013-05-26 18:06:30 +02:00
Joseph Myers
0323d08657 Fix ldbl-96 hypotl of subnormals (bug 15529). 2013-05-24 20:52:55 +00:00
Joseph Myers
dd4259b9f7 Test drem and pow10 in libm-test.inc. 2013-05-24 20:33:14 +00:00
Joseph Myers
4f8dfe270b Use same tests for isfinite/finite, lgamma/gamma. 2013-05-24 19:21:22 +00:00
Adhemerval Zanella
d116b7c414 PowerPC: Program Priority Register support
This patch add inline functions to change the Program Priority Register
from ISA 2.05.
2013-05-24 13:29:30 -05:00
Carlos O'Donell
e96e37676f Correctly compute ulp near zero.
The current value used for ulp near zero is wrong,
and this commit fixes it such that ulp(0) is the smallest
subnormal value nearest to zero, which makes the most
sense for testing values near zero. Note that this is not
what Java does; they use the nearest normal value, which
is less accurate than what we want for glibc. Note that
there is no correct implementation of ulp since there
is no strict mathmatical definition that is accepted by
all groups using IEEE 754.

Previously with the large ulp values near zero there
were tests that previously passed, but were in fact
billions of ulp away from the precise answer. With this
commit we now need to disable one of the cpow tests which
is revealed to be inaccurate (bug 14473).

---

2013-05-24  Carlos O'Donell  <carlos@redhat.com>

	* math/libm-test.inc (MAX_EXP): Define.
	(ULPDIFF): Define.
	(ulp): New function.
	(check_float_internal): Use ULPDIFF.
	(cpow_test): Disable failing test.
	(check_ulp): Test ulp() implemetnation.
	(main): Call check_ulp before starting tests.
2013-05-24 14:23:15 -04:00
Joseph Myers
e8bdba36c5 Remove libm-test START_DATA and END_DATA. 2013-05-24 13:10:42 +00:00
Joseph Myers
b679a606ca Make libm-test START and END into ordinary macros. 2013-05-24 12:22:04 +00:00
Ondrej Bilka
bae143d270 Initialize wide struct info.
Fixes 15381.

Using wide character function is on byte oriented memstream is undefined
behaviour.  This behaviour was masked by not initializing wide struct
info. We now initialize it to cause a predictable crash.
2013-05-24 08:34:10 +02:00
Ryan S. Arnold
d4ea44a04b Add BZ # to ChangeLog for commit 9323d39bae 2013-05-23 10:39:05 -05:00
Edjunior Machado
9323d39bae PowerPC: Add functions for shared resources hints. 2013-05-23 10:32:47 -05:00
Carlos O'Donell
13e23af76e Update comments in ldconfig.c and dl-hwcaps.c.
In dl-hwcaps.c the comment read that rounding was done
to ElfW(Addr), but it's actually rounded to ElfW(Word).

In ldconfig.c we make each comment a sentence and
mention that the "tls" pseudo-hwcap is just for legacy
installations where TLS was optional.

---

2013-05-22  Carlos O'Donell  <carlos@redhat.com>

	* elf/ldconfig.c (is_hwcap_platform): Make comments full setences.
	(main): Mention "tls" pseudo-hwcap is legacy.
	* elf/dl-hwcaps.c (_dl_important_hwcaps): Correct rounding comment.
2013-05-22 23:22:36 -04:00
Joseph Myers
351fe55087 Don't include function names in test data in generated libm-test.c. 2013-05-22 21:01:44 +00:00
Edjunior Barbosa Machado
85118d4de3 Update bits/siginfo.h with Linux hwpoison SIGBUS changes
Adds new SIGBUS error codes for hardware poison signals, syncing with
the current kernel headers (v3.9). It also adds si_trapno field for
alpha.
2013-05-22 14:19:49 -05:00
Carlos O'Donell
7a44c18fb4 Fix _nl_find_msg malloc failure case, and callers.
This patch fixes two issues, and perhaps should be two distinct commits,
but I present it here as one for the sake of completeness.

Commit 006dd86111 fails to check malloc's
return in intl/dcigettext.c (_nl_find_msg):
~~~
      freemem_size = INITIAL_BLOCK_SIZE;
      newmem = (transmem_block_t *) malloc (freemem_size);
...
      newmem->next = transmem_list;
      transmem_list = newmem;
~~~
If malloc fails then newmem is NULL then newmem->next results in a
fault.

The fix is easy enough, check for newmem != NULL, and fall through to
the error condition below which returns (char *) -1 e.g. resource error.

The problem is that returning (char *) -1  will break all sorts of other
code, so while what we did is correct, the real failure case fix is
slightly broader.

There are 4 other places where _nl_find_msg is called, one is OK, the
other three are fixed to handle -1 error return value.

No regressions on x86-64 or x86.

However, no regressions isn't really a useful metric for this code.

The change was tested as documented here:
http://sourceware.org/glibc/wiki/Testing/WhiteBox
using SystemTap for fault injection to simulate malloc failure.

---

2013-05-03  Carlos O'Donell  <carlos at redhat.com>

	[BZ #15441]
	* intl/dcigettext.c (DCIGETTEXT): Skip translating if _nl_find_msg
	returns -1.
	(_nl_find_msg): Return -1 if recursive call returned -1. If newmem is
	null return -1.
	* intl/loadmsgcat.c (_nl_load_domain): If _nl_find_msg returns -1 abort
	loading the domain.
2013-05-22 14:50:26 -04:00
Joseph Myers
b50a71810b Don't include expected results in libm-test test names. 2013-05-22 11:49:36 +00:00
Siddhesh Poyarekar
3ce9e01097 Sort benchmark functions 2013-05-22 11:07:39 +05:30
Siddhesh Poyarekar
051063c88b Add benchmark inputs for math functions
Add benchmark inputs for inverse and hyperbolic trigonometric
functions and log.
2013-05-22 11:07:33 +05:30
Dmitry V. Levin
47c22455d4 Test getaddrinfo return value
This helps testing for regression of BZ#15339.  Creation of network
isolated environments is a privileged operation and therefore is not
included to the test.
2013-05-21 17:21:05 +00:00
Siddhesh Poyarekar
3d04f5db20 Set EAI_SYSTEM only when h_errno is NETDB_INTERNAL
Fixes BZ #15339.

NSS_STATUS_UNAVAIL may mean that a necessary input resource is not
available.  This could occur in a number of cases including when the
network is down, system runs out of file descriptors, etc.  The
correct differentiator in such a case is the h_errno, which gives the
nature of failure.  In case of failures other than a simple 'not
found', we set h_errno as NETDB_INTERNAL and let errno be the
identifier for the exact error.
2013-05-21 21:54:41 +05:30
Andreas Schwab
d5dd6189d5 Fix parsing of numeric hosts in gethostbyname_r 2013-05-21 12:26:33 +02:00
Siddhesh Poyarekar
fef94eab0b Add a README for benchtests
Move instructions from the Makefile here and expand on them.
2013-05-21 14:59:50 +05:30
Andreas Schwab
e39adf43c7 AArch64: Don't clobber argument for tail call to __sigjmp_save in sigsetjmp 2013-05-21 10:52:46 +02:00
Adhemerval Zanella
68191c1d59 PowerPC: update missing CL/NEWS bug reference
Update ChangLog bugzilla number and NEWS for commit
13d3b41a36 (PowerPC: fix hypot/hypotf
check for -INF).
2013-05-20 09:35:01 -05:00
Ondrej Bilka
b2b671b677 Faster memset on x64
This implementation speed up memset in several ways. First is avoiding
expensive computed jump. Second is using fact that arguments of memset
are most of time aligned to 8 bytes.

Benchmark results on:
kam.mff.cuni.cz/~ondra/benchmark_string/memset_profile_result27_04_13.tar.bz2
2013-05-20 08:32:45 +02:00
Ondrej Bilka
2d48b41c8f Faster memcpy on x64.
We add new memcpy version that uses unaligned loads which are fast
on modern processors. This allows second improvement which is avoiding
computed jump which is relatively expensive operation.

Tests available here:
http://kam.mff.cuni.cz/~ondra/memcpy_profile_result27_04_13.tar.bz2
2013-05-20 08:24:41 +02:00
Joseph Myers
3e69426875 Fix nearbyint scheduling of arithmetic past fesetenv (bug 15490). 2013-05-19 18:40:25 +00:00
Joseph Myers
db62a90753 Handle sincos with generic libm-test logic. 2013-05-19 14:45:41 +00:00
Joseph Myers
f16cc3eb81 Simplify gen-libm-test.pl handling of tests with extra outputs. 2013-05-19 14:40:40 +00:00
Joseph Myers
2ee094ff75 Don't disable CMPLXL macro for __NO_LONG_DOUBLE_MATH (bug 15488). 2013-05-18 12:12:38 +00:00
Joseph Myers
3779b5b64a Make libm-test look up ulps by name at runtime. 2013-05-18 12:10:59 +00:00
Joseph Myers
bb38759d6d Fix remainder exceptions and directed-rounding results (bugs 15480, 15485). 2013-05-17 19:04:08 +00:00
Joseph Myers
a00bdcf0e0 Simplify libm-test extra-output initialization. 2013-05-17 19:02:19 +00:00
Joseph Myers
de407f79a2 Don't handle ulps for integer tests in libm-test.inc. 2013-05-17 19:01:27 +00:00
Joseph Myers
8269107fe6 Test more cases of "inexact" exceptions in libm-test.inc. 2013-05-17 14:45:50 +00:00
Siddhesh Poyarekar
48a18de1e1 Prevent optimizing out of benchmark function call
Resolves: #15424

The compiler would optimize the benchmark function call out of the
loop and call it only once, resulting in blazingly fast times for some
benchmarks (notably atan, sin and cos).  Mark the inputs as volatile
so that the code is forced to read again from the input for each
iteration.
2013-05-17 19:10:33 +05:30
Adhemerval Zanella
13d3b41a36 PowerPC: fix hypot/hypotf check for -INF 2013-05-17 08:15:59 -05:00
Maciej W. Rozycki
2848b10585 MIPS: soft-fp NaN representation corrections
[BZ #15442] This adds support for the inverse interpretation of the
quiet bit of IEEE 754 floating-point NaN data that some processors
use.  This includes in particular MIPS architecture processors; the
payload used for the canonical qNaN encoding is updated accordingly
so as not to interfere with the quiet bit.
2013-05-16 23:33:55 +01:00
Joseph Myers
c58b274f01 Test for errno setting in more pole error cases. 2013-05-16 21:57:25 +00:00
Joseph Myers
0ab349044b Remove ENOSYS tests in libm-test.inc. 2013-05-16 19:09:54 +00:00
Joseph Myers
323e5cb792 Remove libm-test support for TEST_* inside functions. 2013-05-16 19:09:03 +00:00
Ryan S. Arnold
e054f49430 Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
Joseph Myers
8c75f67421 Convert TEST_extra tests from code to data. 2013-05-16 15:53:40 +00:00
Richard Henderson
e6e49e59c1 De-stringify constants in math/atest-exp2.c. 2013-05-16 06:34:01 -07:00
Joseph Myers
105a07dfc0 Support testing "inexact" exceptions in libm-test.inc. 2013-05-16 13:19:38 +00:00
Joseph Myers
e9eee333b9 Test for errno setting in more overflow error cases. 2013-05-16 13:18:48 +00:00
Joseph Myers
1c38ff73fd Convert TEST_cc_c tests from code to data. 2013-05-16 13:17:55 +00:00
Joseph Myers
15c7c18dc6 Convert TEST_f_L tests from code to data. 2013-05-16 13:16:56 +00:00
Peter Collingbourne
f137ff1383 Remove const attribute on get_log2
This function is not const, as it can modify log2_m and log2_m_inited.
2013-05-15 14:27:53 -07:00
Joseph Myers
3608cb241e Convert TEST_f_l tests from code to data. 2013-05-15 19:48:17 +00:00
Peter Collingbourne
1deff3dca1 Use movq for 64-bit operations
The EXTRACT_WORDS64 and INSERT_WORDS64 macros use movd for a 64-bit
operation.  Somehow gcc manages to turn this into movq, but LLVM won't.

2013-05-15  Peter Collingbourne  <pcc@google.com>

	* sysdeps/x86_64/fpu/math_private.h (MOVQ): New macro.
	(EXTRACT_WORDS64) Use where appropriate.
	(INSERT_WORDS64) Likewise.
2013-05-15 20:33:45 +02:00
Peter Collingbourne
791f3ba0db Use x constraints for operands to vfmaddss and vfmaddsd
While these instructions accept memory operands, only one operand
may be a memory operand.  Giving two operands xm constraints gives
the compiler the option of using memory for both operands, which
would result in invalid assembly code.  Using x for all operands is
more appropriate, as most x86_64 calling conventions will pass the
arguments in registers anyway.

2013-05-15  Peter Collingbourne  <pcc@google.com>

	* sysdeps/x86_64/fpu/multiarch/s_fma.c (__fma_fma4): Replace xm
	constraints with x constraints.
	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c (__fmaf_fma4): Likewise.
2013-05-15 20:31:53 +02:00
Peter Collingbourne
39b1f6172a Move _obstack_compat out of common
it is impossible to create an alias of a common symbol (as
compat_symbol does), because common symbols do not have a section or
an offset until linked.  GNU as tolerates aliases of common symbols by
simply creating another common symbol, but other assemblers (notably
LLVM's integrated assembler) are less tolerant.

2013-05-15  Peter Collingbourne  <pcc@google.com>

	* malloc/obstack.c (_obstack_compat): Add initializer.
-
2013-05-15 20:29:20 +02:00
Edjunior Machado
12fba011bd Update s390/bits/siginfo.h
2013-05-15  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/s390/bits/siginfo.h (siginfo_t):
	Remove si_trapno and add si_addr_lsb to _sifields.sigfault.
	(si_trapno): Remove macro.
	(si_addr_lsb): Define new macro.
	(BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
2013-05-15 20:15:19 +02:00
Joseph Myers
b861c6c4c9 Consistently use TEST_f_L in tests of llrint and llround. 2013-05-15 16:58:41 +00:00
Joseph Myers
7abeee129e Convert TEST_f_b tests from code to data. 2013-05-15 12:04:07 +00:00
Joseph Myers
cbe8c4d333 Test for errno setting in more domain error cases. 2013-05-15 10:43:19 +00:00
Joseph Myers
5575c0e5cd Disable libm-test errno testing for TEST_INLINE. 2013-05-15 10:42:18 +00:00
Joseph Myers
d369f53178 Convert TEST_ff_i tests from code to data. 2013-05-15 10:41:39 +00:00
David S. Miller
781fd74820 Update Sparc ULPs.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2013-05-14 15:44:29 -07:00
Joseph Myers
5e90827081 Fix whitespace in RUN_TEST_LOOP_2_f. 2013-05-14 21:17:19 +00:00
Joseph Myers
f71172e551 Correct types of fields in libm-test.inc structures. 2013-05-14 21:00:56 +00:00
Joseph Myers
8cfa635ab8 Convert TEST_ffI_f1 tests from code to data. 2013-05-14 20:36:03 +00:00
Joseph Myers
2bcb36b265 Add test for setjmp / longjmp and floating-point state. 2013-05-14 19:49:09 +00:00