about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* PowerPC floating point little-endian [1 of 15]Alan Modra2013-10-0411-250/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix for [BZ #15680] IBM long double inaccuracyAlan Modra2013-10-046-106/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* IBM long double mechanical changes to support little-endianAlan Modra2013-10-0411-184/+161
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Hardcode locale archive page size as 4096.Joseph Myers2013-10-032-1/+9
|
* Remove locale file dependence on int32_t alignment.Joseph Myers2013-10-034-32/+42
|
* 2013-09-26 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-10-036-0/+6
| | | | | | | | | | [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.
* 2013-09-26 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-10-032-5/+15
| | | | | | | | | | [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.
* BZ #431 Fix manual of strncat/wcsncat.Ondřej Bílka2013-10-033-9/+15
|
* Fix erroneous (and circular) implied pattern rule for linkobj/libc.so.Brooks Moses2013-10-033-33/+41
| | | | | | | | | | | | | | | | | [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.
* ARM: Add pointer encryption support.Will Newton2013-10-037-6/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* maint: correct changelogEric Blake2013-10-021-5/+5
| | | | | | * ChangeLog: List my previous commit in correct location. Signed-off-by: Eric Blake <eblake@redhat.com>
* malloc: Add pvalloc test.Will Newton2013-10-023-1/+98
| | | | | | | | | ChangeLog: 2013-10-02 Will Newton <will.newton@linaro.org> * malloc/Makefile: Add tst-pvalloc. * malloc/tst-pvalloc.c: New file.
* malloc/tst-valloc.c: Improve test coverage and use test-skeleton.c.Will Newton2013-10-022-16/+89
| | | | | | | | | ChangeLog: 2013-10-02 Will Newton <will.newton@linaro.org> * malloc/tst-valloc.c: Rewrite to use test-skeleton.c and improve test coverage.
* malloc: Add posix_memalign test.Will Newton2013-10-023-1/+104
| | | | | | | | | ChangeLog: 2013-10-02 Will Newton <will.newton@linaro.org> * malloc/Makefile: Add tst-posix_memalign. * malloc/tst-posix_memalign.c: New file.
* glob: silence -Wattribute warningsEric Blake2013-10-012-3/+8
| | | | | | | | | | | 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>
* Mention bug 15760 in NEWS (duplicate of 15988, just added to NEWS)Chris Metcalf2013-10-011-4/+4
|
* alpha: Improve conditions under which PTR_MANGLE is definedRichard Henderson2013-10-012-31/+26
| | | | | After 0b1f8e35640f5b3f7af11764ade3ff060211c309, we now have a __pointer_chk_guard_local for the static libc.
* Fix PI mutex check in pthread_cond_broadcast and pthread_cond_signalSiddhesh Poyarekar2013-10-014-11/+12
| | | | | | | | 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.
* Add AArch64 relocation definitions.Petr Machata2013-09-302-0/+196
|
* [AArch64] Fix BE access to errno.Andrew Pinski2013-09-302-1/+6
|
* Properly cache the result from looking up the nss database configAndreas Schwab2013-09-305-29/+33
|
* tst-fanotify: fix styleMike Frysinger2013-09-282-9/+14
| | | | | Reported-by: Andreas Jaeger <aj@suse.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* don't use Bash-specific ${parameter/pattern/string} expansionPatrick 'P. J.' McDermott2013-09-283-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix ayc_PE.UTF-8 and lzh_TW.UTF-8 build issuesChris Leonard2013-09-282-0/+2
|
* Revert "Remove references to non-existent content items in install.texi"Allan McRae2013-09-283-8/+3
| | | | | | | | This reverts commit 583c76a7ce305d24e0625a22caed317b3e001d91 which breaks building info pages during "make install". Conflicts: ChangeLog
* Move ChangeLog entrySiddhesh Poyarekar2013-09-272-9/+8
|
* Remove references to non-existent content items in install.texiAllan McRae2013-09-273-3/+8
| | | | | These were left in when the installation section was split out into its own file.
* Use the mutex member of the argumen in __libc_lock_*_recursiveSiddhesh Poyarekar2013-09-272-3/+12
|
* Add ChangeLog entry for new sysdeps/sh/stackguard-macros.h.Kaz Kojima2013-09-271-0/+4
|
* Add SH implementation of stackguard-macros.h.Kaz Kojima2013-09-271-0/+6
|
* Faster strrchr.Ondřej Bílka2013-09-267-943/+208
|
* PowerPC: Fix POINTER_CHK_GUARD thread register for PPC64Adhemerval Zanella2013-09-252-1/+6
|
* Version 1.2 of gd_GB localeMichael Bauer2013-09-253-116/+147
|
* conformtest: Clean up expectations for POSIX for sched.h.Joseph Myers2013-09-252-3/+24
|
* Fix tst-long-dbl-fphex swprintf length calculation.Olivier Langlois2013-09-242-2/+7
|
* conformtest: Clean up expectations for POSIX for pthread.h.Joseph Myers2013-09-242-7/+22
|
* Add localedef --big-endian and --little-endian options.Joseph Myers2013-09-247-190/+335
|
* Update to canonical freemanuals.texi file.Roland McGrath2013-09-243-1/+11
|
* [AArch64] Support __mcount profiling.Marcus Shawcroft2013-09-242-8/+12
|
* [AArch64] Adding sigcontextinfo.hMarcus Shawcroft2013-09-242-0/+39
|
* ports/sysdeps/arm/nptl/tls.h: Remove TLS_INIT_TP_EXPENSIVE.Will Newton2013-09-242-4/+5
| | | | | | | | | | | 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.
* sysdeps/mach/hurd/i386/tls.h: Remove TLS_INIT_TP_EXPENSIVE.Will Newton2013-09-242-1/+5
| | | | | | | | | | | 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.
* New locale for cmn_TWWei-Lun Chao2013-09-234-8/+235
|
* New locale for hak_TWWei-Lun Chao2013-09-234-6/+232
|
* Make locale archive hash function architecture-independent.Joseph Myers2013-09-232-1/+6
|
* New locale for lzh_TWWei-Lun Chao2013-09-234-4/+264
|
* New locale for nan_TWWei-Lun Chao2013-09-234-5/+232
|
* manual: Fix a typo in `POSIX Threads' sectionMaciej W. Rozycki2013-09-232-1/+5
|
* 2013-09-23 Steve Ellcey <sellcey@mips.com>Steve Ellcey2013-09-232-0/+131
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* MIPS: bits/atomic.h: Fix comment typoMaciej W. Rozycki2013-09-232-1/+5
|