]> git.ipfire.org Git - thirdparty/glibc.git/log
thirdparty/glibc.git
10 years agoPowerPC floating point little-endian [8 of 15]
Anton Blanchard [Sat, 17 Aug 2013 08:58:55 +0000 (18:28 +0930)] 
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.

10 years agoPowerPC floating point little-endian [7 of 15]
Anton Blanchard [Sat, 17 Aug 2013 08:58:06 +0000 (18:28 +0930)] 
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.

10 years agoPowerPC floating point little-endian [6 of 15]
Alan Modra [Sat, 17 Aug 2013 08:57:19 +0000 (18:27 +0930)] 
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.

10 years agoPowerPC floating point little-endian [5 of 15]
Alan Modra [Sat, 17 Aug 2013 08:56:39 +0000 (18:26 +0930)] 
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.

10 years agoPowerPC floating point little-endian [4 of 15]
Alan Modra [Sat, 17 Aug 2013 08:55:51 +0000 (18:25 +0930)] 
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.

10 years agoPowerPC floating point little-endian [3 of 15]
Alan Modra [Sat, 17 Aug 2013 08:54:58 +0000 (18:24 +0930)] 
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.

10 years agoPowerPC floating point little-endian [2 of 15]
Alan Modra [Sat, 17 Aug 2013 08:54:05 +0000 (18:24 +0930)] 
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.

10 years agoPowerPC floating point little-endian [1 of 15]
Alan Modra [Sat, 17 Aug 2013 08:51:58 +0000 (18:21 +0930)] 
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.

10 years agoFix for [BZ #15680] IBM long double inaccuracy
Alan Modra [Sat, 17 Aug 2013 08:49:44 +0000 (18:19 +0930)] 
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.

10 years agoIBM long double mechanical changes to support little-endian
Alan Modra [Sat, 17 Aug 2013 08:42:56 +0000 (18:12 +0930)] 
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.

10 years agoHardcode locale archive page size as 4096.
Joseph Myers [Thu, 3 Oct 2013 22:00:05 +0000 (22:00 +0000)] 
Hardcode locale archive page size as 4096.

10 years agoRemove locale file dependence on int32_t alignment.
Joseph Myers [Thu, 3 Oct 2013 21:51:32 +0000 (21:51 +0000)] 
Remove locale file dependence on int32_t alignment.

10 years ago2013-09-26 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Thu, 3 Oct 2013 19:56:34 +0000 (12:56 -0700)] 
2013-09-26  Steve Ellcey  <sellcey@mips.com>

[BZ #15632]
* sysdeps/mips/mips32/fpu/e_sqrt.c: New.
* sysdeps/mips/mips32/fpu/e_sqrtf.c: New.
* sysdeps/mips/mips64/n32/fpu/e_sqrt.c: New.
* sysdeps/mips/mips64/n32/fpu/e_sqrtf.c: New.
* sysdeps/mips/mips64/n64/fpu/e_sqrt.c: New.
* sysdeps/mips/mips64/n64/fpu/e_sqrtf.c: New.

10 years ago2013-09-26 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Thu, 3 Oct 2013 19:55:36 +0000 (12:55 -0700)] 
2013-09-26  Steve Ellcey  <sellcey@mips.com>

[BZ #15632]
* sysdeps/mips/mips32/fpu/e_sqrt.c: New.
* sysdeps/mips/mips32/fpu/e_sqrtf.c: New.
* sysdeps/mips/mips64/n32/fpu/e_sqrt.c: New.
* sysdeps/mips/mips64/n32/fpu/e_sqrtf.c: New.
* sysdeps/mips/mips64/n64/fpu/e_sqrt.c: New.
* sysdeps/mips/mips64/n64/fpu/e_sqrtf.c: New.

10 years agoBZ #431 Fix manual of strncat/wcsncat.
Ondřej Bílka [Thu, 3 Oct 2013 17:53:45 +0000 (19:53 +0200)] 
BZ #431 Fix manual of strncat/wcsncat.

10 years agoFix erroneous (and circular) implied pattern rule for linkobj/libc.so.
Brooks Moses [Thu, 3 Oct 2013 17:38:14 +0000 (10:38 -0700)] 
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.

10 years agoARM: Add pointer encryption support.
Will Newton [Wed, 7 Aug 2013 12:55:30 +0000 (13:55 +0100)] 
ARM: Add pointer encryption support.

Add support for pointer encryption in glibc internal structures in C
and assembler code. Pointer encryption is a glibc security feature
described here:

https://sourceware.org/glibc/wiki/PointerEncryption

The ARM implementation uses global variables instead of thread pointer
relative accesses to get the value of the pointer encryption guard
because accessing the thread pointer can be very expensive on older
ARM cores.

ports/ChangeLog.arm:

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

* sysdeps/arm/__longjmp.S (__longjmp): Demangle fp, sp
and lr when restoring register values.
* sysdeps/arm/include/bits/setjmp.h (JMP_BUF_REGLIST): Remove
sp and lr from list and replace fp with a4.
* sysdeps/arm/jmpbuf-unwind.h (_jmpbuf_sp): New function.
(_JMPBUF_UNWINDS_ADJ): Call _jmpbuf_sp.
* sysdeps/arm/setjmp.S (__sigsetjmp): Mangle fp, sp and lr
before storing register values.
* sysdeps/arm/sysdep.h (LDST_GLOBAL): New macro.
* sysdeps/unix/sysv/linux/arm/sysdep.h (PTR_MANGLE): New macro.
(PTR_DEMANGLE): Likewise. (PTR_MANGLE2): Likewise.
(PTR_DEMANGLE2): Likewise.

10 years agomaint: correct changelog
Eric Blake [Wed, 2 Oct 2013 11:55:09 +0000 (05:55 -0600)] 
maint: correct changelog

* ChangeLog: List my previous commit in correct location.

Signed-off-by: Eric Blake <eblake@redhat.com>
10 years agomalloc: Add pvalloc test.
Will Newton [Fri, 16 Aug 2013 11:01:52 +0000 (12:01 +0100)] 
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.

10 years agomalloc/tst-valloc.c: Improve test coverage and use test-skeleton.c.
Will Newton [Mon, 12 Aug 2013 13:44:36 +0000 (14:44 +0100)] 
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.

10 years agomalloc: Add posix_memalign test.
Will Newton [Mon, 12 Aug 2013 13:15:22 +0000 (14:15 +0100)] 
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.

10 years agoglob: silence -Wattribute warnings
Eric Blake [Wed, 4 Sep 2013 23:02:47 +0000 (17:02 -0600)] 
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>
10 years agoMention bug 15760 in NEWS (duplicate of 15988, just added to NEWS)
Chris Metcalf [Tue, 1 Oct 2013 19:35:12 +0000 (15:35 -0400)] 
Mention bug 15760 in NEWS (duplicate of 15988, just added to NEWS)

10 years agoalpha: Improve conditions under which PTR_MANGLE is defined
Richard Henderson [Tue, 1 Oct 2013 14:45:11 +0000 (07:45 -0700)] 
alpha: Improve conditions under which PTR_MANGLE is defined

After 0b1f8e35640f5b3f7af11764ade3ff060211c309, we now have
a __pointer_chk_guard_local for the static libc.

10 years agoFix PI mutex check in pthread_cond_broadcast and pthread_cond_signal
Siddhesh Poyarekar [Tue, 1 Oct 2013 15:05:28 +0000 (20:35 +0530)] 
Fix PI mutex check in pthread_cond_broadcast and pthread_cond_signal

Fixes BZ #15988.

The check had a typo - it checked for PTHREAD_MUTEX_ROBUST_NP instead
of PTHREAD_MUTEX_ROBUST_NORMAL_NP.  It has now been replaced by the
already existing convenience macro USE_REQUEUE_PI.

10 years agoAdd AArch64 relocation definitions.
Petr Machata [Mon, 30 Sep 2013 11:38:10 +0000 (12:38 +0100)] 
Add AArch64 relocation definitions.

10 years ago[AArch64] Fix BE access to errno.
Andrew Pinski [Mon, 30 Sep 2013 09:58:26 +0000 (10:58 +0100)] 
[AArch64] Fix BE access to errno.

10 years agoProperly cache the result from looking up the nss database config
Andreas Schwab [Thu, 24 Jan 2013 11:32:09 +0000 (12:32 +0100)] 
Properly cache the result from looking up the nss database config

10 years agotst-fanotify: fix style
Mike Frysinger [Sun, 29 Sep 2013 03:53:30 +0000 (23:53 -0400)] 
tst-fanotify: fix style

Reported-by: Andreas Jaeger <aj@suse.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
10 years agodon't use Bash-specific ${parameter/pattern/string} expansion
Patrick 'P. J.' McDermott [Wed, 11 Sep 2013 21:53:08 +0000 (17:53 -0400)] 
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>
10 years agoFix ayc_PE.UTF-8 and lzh_TW.UTF-8 build issues
Chris Leonard [Sun, 29 Sep 2013 00:32:16 +0000 (20:32 -0400)] 
Fix ayc_PE.UTF-8 and lzh_TW.UTF-8 build issues

10 years agoRevert "Remove references to non-existent content items in install.texi"
Allan McRae [Sat, 28 Sep 2013 03:10:59 +0000 (13:10 +1000)] 
Revert "Remove references to non-existent content items in install.texi"

This reverts commit 583c76a7ce305d24e0625a22caed317b3e001d91 which
breaks building info pages during "make install".

Conflicts:
ChangeLog

10 years agoMove ChangeLog entry
Siddhesh Poyarekar [Fri, 27 Sep 2013 17:32:57 +0000 (23:02 +0530)] 
Move ChangeLog entry

10 years agoRemove references to non-existent content items in install.texi
Allan McRae [Fri, 27 Sep 2013 04:45:54 +0000 (14:45 +1000)] 
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.

10 years agoUse the mutex member of the argumen in __libc_lock_*_recursive
Siddhesh Poyarekar [Fri, 27 Sep 2013 02:29:26 +0000 (07:59 +0530)] 
Use the mutex member of the argumen in __libc_lock_*_recursive

10 years agoAdd ChangeLog entry for new sysdeps/sh/stackguard-macros.h.
Kaz Kojima [Fri, 27 Sep 2013 02:05:41 +0000 (11:05 +0900)] 
Add ChangeLog entry for new sysdeps/sh/stackguard-macros.h.

10 years agoAdd SH implementation of stackguard-macros.h.
Kaz Kojima [Fri, 27 Sep 2013 01:59:02 +0000 (10:59 +0900)] 
Add SH implementation of stackguard-macros.h.

10 years agoFaster strrchr.
Ondřej Bílka [Thu, 26 Sep 2013 16:54:09 +0000 (18:54 +0200)] 
Faster strrchr.

10 years agoPowerPC: Fix POINTER_CHK_GUARD thread register for PPC64
Adhemerval Zanella [Wed, 25 Sep 2013 18:43:04 +0000 (13:43 -0500)] 
PowerPC: Fix POINTER_CHK_GUARD thread register for PPC64

10 years agoVersion 1.2 of gd_GB locale
Michael Bauer [Wed, 25 Sep 2013 15:40:50 +0000 (11:40 -0400)] 
Version 1.2 of gd_GB locale

10 years agoconformtest: Clean up expectations for POSIX for sched.h.
Joseph Myers [Wed, 25 Sep 2013 00:51:42 +0000 (00:51 +0000)] 
conformtest: Clean up expectations for POSIX for sched.h.

10 years agoFix tst-long-dbl-fphex swprintf length calculation.
Olivier Langlois [Tue, 24 Sep 2013 23:12:12 +0000 (16:12 -0700)] 
Fix tst-long-dbl-fphex swprintf length calculation.

10 years agoconformtest: Clean up expectations for POSIX for pthread.h.
Joseph Myers [Tue, 24 Sep 2013 22:09:04 +0000 (22:09 +0000)] 
conformtest: Clean up expectations for POSIX for pthread.h.

10 years agoAdd localedef --big-endian and --little-endian options.
Joseph Myers [Tue, 24 Sep 2013 22:07:47 +0000 (22:07 +0000)] 
Add localedef --big-endian and --little-endian options.

10 years agoUpdate to canonical freemanuals.texi file.
Roland McGrath [Tue, 24 Sep 2013 21:06:56 +0000 (14:06 -0700)] 
Update to canonical freemanuals.texi file.

10 years ago[AArch64] Support __mcount profiling.
Marcus Shawcroft [Tue, 24 Sep 2013 12:03:02 +0000 (13:03 +0100)] 
[AArch64] Support __mcount profiling.

10 years ago[AArch64] Adding sigcontextinfo.h
Marcus Shawcroft [Tue, 24 Sep 2013 11:59:06 +0000 (12:59 +0100)] 
[AArch64] Adding sigcontextinfo.h

10 years agoports/sysdeps/arm/nptl/tls.h: Remove TLS_INIT_TP_EXPENSIVE.
Will Newton [Mon, 23 Sep 2013 19:35:08 +0000 (20:35 +0100)] 
ports/sysdeps/arm/nptl/tls.h: Remove TLS_INIT_TP_EXPENSIVE.

This define was removed from the rest of the tree eight years ago.

ports/ChangeLog.arm:

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

* ports/sysdeps/arm/nptl/tls.h (TLS_INIT_TP_EXPENSIVE): Remove
macro.

10 years agosysdeps/mach/hurd/i386/tls.h: Remove TLS_INIT_TP_EXPENSIVE.
Will Newton [Mon, 23 Sep 2013 19:29:38 +0000 (20:29 +0100)] 
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.

10 years agoNew locale for cmn_TW
Wei-Lun Chao [Tue, 24 Sep 2013 02:36:14 +0000 (22:36 -0400)] 
New locale for cmn_TW

10 years agoNew locale for hak_TW
Wei-Lun Chao [Tue, 24 Sep 2013 00:24:27 +0000 (20:24 -0400)] 
New locale for hak_TW

10 years agoMake locale archive hash function architecture-independent.
Joseph Myers [Mon, 23 Sep 2013 23:03:34 +0000 (23:03 +0000)] 
Make locale archive hash function architecture-independent.

10 years agoNew locale for lzh_TW
Wei-Lun Chao [Mon, 23 Sep 2013 22:51:59 +0000 (18:51 -0400)] 
New locale for lzh_TW

10 years agoNew locale for nan_TW
Wei-Lun Chao [Mon, 23 Sep 2013 22:20:16 +0000 (18:20 -0400)] 
New locale for nan_TW

10 years agomanual: Fix a typo in `POSIX Threads' section
Maciej W. Rozycki [Mon, 23 Sep 2013 20:13:47 +0000 (21:13 +0100)] 
manual: Fix a typo in `POSIX Threads' section

10 years ago2013-09-23 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Mon, 23 Sep 2013 16:58:30 +0000 (09:58 -0700)] 
2013-09-23  Steve Ellcey  <sellcey@mips.com>

* sysdeps/mips/math_private.h (libc_feholdexcept_mips): New function.
(libc_feholdexcept): New macro.
(libc_feholdexceptf): New macro.
(libc_feholdexceptl): New macro.
(libc_fesetround_mips): New function.
(libc_fesetround): New macro.
(libc_fesetroundf): New macro.
(libc_fesetroundl): New macro.
(libc_feholdexcept_setround_mips): New function.
(libc_feholdexcept_setround): New macro.
(libc_feholdexcept_setroundf): New macro.
(libc_feholdexcept_setroundl): New macro.
(libc_fesetenv_mips): New function.
(libc_fesetenv): New macro.
(libc_fesetenvf): New macro.
(libc_fesetenvl): New macro.
(libc_feupdateenv_mips): New function.
(libc_feupdateenv): New macro.
(libc_feupdateenvf): New macro.
(libc_feupdateenvl): New macro.

10 years agoMIPS: bits/atomic.h: Fix comment typo
Maciej W. Rozycki [Mon, 23 Sep 2013 16:39:14 +0000 (17:39 +0100)] 
MIPS: bits/atomic.h: Fix comment typo

10 years ago2013-09-23 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Mon, 23 Sep 2013 16:39:32 +0000 (09:39 -0700)] 
2013-09-23  Steve Ellcey  <sellcey@mips.com>

* sysdeps/mips/fpu/fegetround.c (fegetround): Use _FPU_RC_MASK.
* sysdeps/mips/fpu/fesetround.c (fesetround): Use _FPU_RC_MASK.

10 years ago2013-09-19 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Mon, 23 Sep 2013 16:34:15 +0000 (09:34 -0700)] 
2013-09-19  Steve Ellcey  <sellcey@mips.com>

* sysdeps/mips/fpu_control.h (_FPU_RC_MASK): New.

10 years ago2013-09-23 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Mon, 23 Sep 2013 16:29:58 +0000 (09:29 -0700)] 
2013-09-23  Steve Ellcey  <sellcey@mips.com>

* sysdeps/mips/fpu_control.h (comments): Add capitalization and
periods to match GNU standard.

10 years agoCheck for integer overflow in cache size computation in strcoll
Siddhesh Poyarekar [Mon, 23 Sep 2013 05:54:30 +0000 (11:24 +0530)] 
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.

10 years agoFall back to non-cached sequence traversal and comparison on malloc fail
Siddhesh Poyarekar [Mon, 23 Sep 2013 05:50:02 +0000 (11:20 +0530)] 
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.

10 years agoBZ #15754: Fix test case for ARM.
Carlos O'Donell [Mon, 23 Sep 2013 05:44:38 +0000 (01:44 -0400)] 
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.

10 years agoBZ #15754: CVE-2013-4788
Carlos O'Donell [Mon, 23 Sep 2013 04:52:09 +0000 (00:52 -0400)] 
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.

10 years agoAdjust language-code fields of LC_ADDRESS.
Chris Leonard [Sun, 22 Sep 2013 23:18:05 +0000 (19:18 -0400)] 
Adjust language-code fields of LC_ADDRESS.

10 years agoNew locale for ak_GH.
Chris Leonard [Sun, 22 Sep 2013 02:28:06 +0000 (22:28 -0400)] 
New locale for ak_GH.

10 years agocorrect bug list in NEWS
Chris Leonard [Sun, 22 Sep 2013 01:15:22 +0000 (21:15 -0400)] 
correct bug list in NEWS

10 years ago[BZ #15859] Fix memory leak in _dl_map_object_deps
Vinitha Vijayan [Sat, 21 Sep 2013 15:51:58 +0000 (17:51 +0200)] 
[BZ #15859] Fix memory leak in _dl_map_object_deps

10 years agoMake __ffs hidden
Andreas Schwab [Fri, 20 Sep 2013 19:24:53 +0000 (21:24 +0200)] 
Make __ffs hidden

10 years agoRemove trailing space.
Steve Ellcey [Fri, 20 Sep 2013 17:31:05 +0000 (10:31 -0700)] 
Remove trailing space.

10 years ago2013-09-20 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Fri, 20 Sep 2013 17:29:51 +0000 (10:29 -0700)] 
2013-09-20  Steve Ellcey  <sellcey@mips.com>

* sysdeps/mips/memset.S: Change prefetching and add loop unrolling.
* sysdeps/mips/mips64/memset.S: Remove.

10 years ago2013-09-20 Steve Ellcey <sellcey@mips.com>
Steve Ellcey [Fri, 20 Sep 2013 17:29:25 +0000 (10:29 -0700)] 
2013-09-20  Steve Ellcey  <sellcey@mips.com>

* sysdeps/mips/memset.S: Change prefetching and add loop unrolling.
* sysdeps/mips/mips64/memset.S: Remove.

10 years agoMention malloc probes in the NEWS file.
Alexandre Oliva [Fri, 20 Sep 2013 14:30:04 +0000 (11:30 -0300)] 
Mention malloc probes in the NEWS file.

for ChangeLog

* NEWS: Mention malloc probes.

10 years agoAdd malloc probes for sbrk and heap resizing.
Alexandre Oliva [Fri, 20 Sep 2013 14:10:56 +0000 (11:10 -0300)] 
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.

10 years agoAdd catch-all alloc retry probe.
Alexandre Oliva [Fri, 20 Sep 2013 14:10:56 +0000 (11:10 -0300)] 
Add catch-all alloc retry probe.

for ChangeLog

* malloc/arena.c (arena_get_retry): Add memory_arena_retry probe.
* manual/probes.texi: Document it.

10 years agoAdd probes for malloc retries.
Alexandre Oliva [Fri, 20 Sep 2013 14:10:55 +0000 (11:10 -0300)] 
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.

10 years agoAdd probes for malloc arena changes.
Alexandre Oliva [Fri, 20 Sep 2013 14:10:55 +0000 (11:10 -0300)] 
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.

10 years agoAdd probes for all changes to malloc options.
Alexandre Oliva [Fri, 20 Sep 2013 14:10:55 +0000 (11:10 -0300)] 
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.

10 years agoAdd first set of memory probes.
Alexandre Oliva [Fri, 20 Sep 2013 14:10:54 +0000 (11:10 -0300)] 
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.

10 years agoCopy-edit NEWS and fixup ChangeLog entries.
Carlos O'Donell [Fri, 20 Sep 2013 05:25:09 +0000 (01:25 -0400)] 
Copy-edit NEWS and fixup ChangeLog entries.

10 years agoUpdate Changelog and NEWS
Chris Leonard [Fri, 20 Sep 2013 04:32:58 +0000 (00:32 -0400)] 
Update Changelog and NEWS

10 years agoUpdate iso-639.def
Chris Leonard [Fri, 20 Sep 2013 00:34:03 +0000 (20:34 -0400)] 
Update iso-639.def

10 years agoConsolidate common code into macros
Siddhesh Poyarekar [Thu, 19 Sep 2013 15:04:45 +0000 (20:34 +0530)] 
Consolidate common code into macros

Consolidated common Taylor series polynomials into macros in s_sin.c
to make it a bit cleaner.

10 years agoFix buffer overrun in strtod_l
Liubov Dmitrieva [Thu, 19 Sep 2013 12:51:13 +0000 (16:51 +0400)] 
Fix buffer overrun in strtod_l

10 years agoAdd benchmark inputs for sincos
Siddhesh Poyarekar [Thu, 19 Sep 2013 11:25:27 +0000 (16:55 +0530)] 
Add benchmark inputs for sincos

10 years agoNew test cases for sin and cos for multiple precision fallback
Siddhesh Poyarekar [Thu, 19 Sep 2013 11:24:23 +0000 (16:54 +0530)] 
New test cases for sin and cos for multiple precision fallback

10 years agoConsolidate sin/cos table lookup code
Siddhesh Poyarekar [Thu, 19 Sep 2013 11:21:01 +0000 (16:51 +0530)] 
Consolidate sin/cos table lookup code

10 years agoConsolidate sin/cos computation for large inputs
Siddhesh Poyarekar [Thu, 19 Sep 2013 11:15:27 +0000 (16:45 +0530)] 
Consolidate sin/cos computation for large inputs

10 years agoRemove redundant goto lines
Siddhesh Poyarekar [Thu, 19 Sep 2013 11:13:53 +0000 (16:43 +0530)] 
Remove redundant goto lines

10 years agoAdd BZ #15640 to resolved bug list in NEWS.
Maxim Kuvyrkov [Thu, 19 Sep 2013 07:55:50 +0000 (19:55 +1200)] 
Add BZ #15640 to resolved bug list in NEWS.

10 years agoImprove atomic locking for ARM.
Maxim Kuvyrkov [Thu, 19 Sep 2013 06:50:17 +0000 (18:50 +1200)] 
Improve atomic locking for ARM.

[BZ #15640]
* sysdeps/arm/bits/atomic.h (atomic_exchange_acq, atomic_exchange_rel)
(atomic_compare_and_exchange_bool_acq)
(atomic_compare_and_exchange_val_acq)
(atomic_compare_and_exchange_bool_rel)
(atomic_compare_and_exchange_val_rel): Use __atomic_exchange_n and
__atomic_compare_exchange_n builtins when GCC supports them.

10 years agoMIPS: IEEE 754-2008 NaN encoding support
Maciej W. Rozycki [Wed, 18 Sep 2013 20:04:27 +0000 (21:04 +0100)] 
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

10 years agoe500 port: fpu_control.h.
Joseph Myers [Wed, 18 Sep 2013 14:47:49 +0000 (14:47 +0000)] 
e500 port: fpu_control.h.

10 years agoe500 port: setjmp/longjmp.
Joseph Myers [Wed, 18 Sep 2013 14:46:57 +0000 (14:46 +0000)] 
e500 port: setjmp/longjmp.

10 years agoDon't force -msoft-float for powerpc --without-fp.
Joseph Myers [Wed, 18 Sep 2013 14:44:34 +0000 (14:44 +0000)] 
Don't force -msoft-float for powerpc --without-fp.

10 years agoFormat sincos32.c
Siddhesh Poyarekar [Wed, 18 Sep 2013 07:31:34 +0000 (13:01 +0530)] 
Format sincos32.c

10 years agoFix powerpc fpu_control.h namespace and parenthesis issues (bug 15966).
Joseph Myers [Tue, 17 Sep 2013 21:28:19 +0000 (21:28 +0000)] 
Fix powerpc fpu_control.h namespace and parenthesis issues (bug 15966).

10 years agoARM: Improve armv7 memcpy performance.
Will Newton [Wed, 7 Aug 2013 13:15:52 +0000 (14:15 +0100)] 
ARM: Improve armv7 memcpy performance.

Only enter the aligned copy loop with buffers that can be 8-byte
aligned. This improves performance slightly on Cortex-A9 and
Cortex-A15 cores for large copies with buffers that are 4-byte
aligned but not 8-byte aligned.

ports/ChangeLog.arm:

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

* sysdeps/arm/armv7/multiarch/memcpy_impl.S: Tighten check
on entry to aligned copy loop to improve performance.

10 years agoAdjust language-code fields of LC_ADDRESS.
Chris Leonard [Mon, 16 Sep 2013 00:02:32 +0000 (20:02 -0400)] 
Adjust language-code fields of LC_ADDRESS.

10 years agoAdd country_car field to LC_ADDRESS.
Chris Leonard [Sun, 15 Sep 2013 19:06:27 +0000 (15:06 -0400)] 
Add country_car field to LC_ADDRESS.