aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-02-06Clean up sysdep-dl-routines variable.Roland McGrath14-26/+33
2015-02-06NEWS: Fix spelling.Carlos O'Donell1-1/+1
2015-02-06NEWS: Also mention CVE-2015-1473Florian Weimer1-4/+5
2015-02-06soft-fp: Fix _FP_FMA when product is zero and third argument is finite (bug ↵Joseph Myers5-0/+381
17932). soft-fp's _FP_FMA fails to set the result's exponent for cases where the result of the multiplication is 0, yielding incorrect (arbitrary, depending on uninitialized values) results for those cases. This affects libm for architectures using soft-fp to implement fma. This patch adds the exponent setting and tests for this case. Tested for ARM soft-float (which uses soft-fp fma), x86_64 and x86 (to verify not introducing new libm test failures there). (This bug showed up in testing my patch to move the Linux kernel to current soft-fp. math/Makefile has "override CFLAGS += -Wno-uninitialized" which would have stopped compiler warnings from showing up this problem, although I wouldn't be surprised if removing that shows spurious warnings from this code, if the compiler fails to follow that various cases where the exponent is uninitialized don't need it initialized because the class is set to a value meaning the uninitialized exponent isn't used.) [BZ #17932] * soft-fp/op-common.h (_FP_FMA): Set exponent of result in case where multiplication results in zero and third argument is finite and nonzero. * math/auto-libm-test-in: Add more tests of fma. * math/auto-libm-test-out: Regenerated.
2015-02-06soft-fp: Refine FP_EX_DENORM handling for comparisons.Joseph Myers2-4/+51
In <https://sourceware.org/ml/libc-alpha/2014-09/msg00488.html>, I noted that comparisons in soft-fp did not set FP_EX_DENORM unless denormal operands were flushed to zero. This patch fixes soft-fp to check for denormal operands for comparisons and set that exception whenever FP_EX_DENORM is not zero. In particular, for the one architecture for which the Linux kernel defines FP_EX_DENORM (alpha), this corresponds to the existing logic for comparisons and so allows that logic to be replaced by a simple call to FP_CMP_D when soft-fp is updated in the kernel. Tested for powerpc (e500) that installed stripped shared libraries are unchanged by this patch. * soft-fp/op-common.h (_FP_CMP_CHECK_DENORM): New macro. (_FP_CMP_CHECK_FLUSH_ZERO): Likewise. (_FP_CMP): Use_FP_CMP_CHECK_DENORM and _FP_CMP_CHECK_FLUSH_ZERO. (_FP_CMP_EQ): Likewise. (_FP_CMP_UNORD): Use _FP_CMP_CHECK_DENORM.
2015-02-06soft-fp: Support floating-point extensions without quieting sNaNs.Joseph Myers2-4/+16
One special case needed in soft-fp to replace the old version in the Linux kernel is extending from a narrower floating-point format to a wider one without quieting signaling NaNs. (This is for arch/powerpc/math-emu/lfs.c, where previously it used the old FP_CONV which didn't do anything special for NaNs, then handled packing specially for NaNs to avoid quieting at packing time, and discarded the exceptions from unpacking.) This patch accordingly refactors FP_EXTEND, creating a separate _FP_EXTEND_CNAN that offers a choice of how NaNs are handled, with FP_EXTEND reimplemented as a wrapper that provides the common case of the IEEE operation that does quiet signaling NaNs and raise exceptions for them. Tested for powerpc (e500) that installed stripped shared libraries are unchanged by this patch. * soft-fp/op-common.h (FP_EXTEND): Rename to _FP_EXTEND_CNAN with extra argument CHECK_NAN. Redefine as wrapper around _FP_EXTEND_CNAN.
2015-02-06Fix missing ChangeLog attribution.Carlos O'Donell1-0/+1
2015-02-06Open development for 2.22.glibc-2.21.90Carlos O'Donell1-2/+2
2015-02-06Update version.h and include/features.h for 2.21 releaseglibc-2.21Carlos O'Donell3-3/+7
2015-02-06hppa: Sync with pthread.h.Carlos O'Donell2-1/+1150
This reverts part of the previous commit to refactor pthread.h. The refactoring must be done by having pthread.h include arch bits headers, not the other way around. Then hppa provides the arch bits header. For now we synchronzie again with pthread.h and include the entire contents in the hppa copy.
2015-02-06CVE-2015-1472: wscanf allocates too little memoryPaul Pluzhnikov4-15/+62
BZ #16618 Under certain conditions wscanf can allocate too little memory for the to-be-scanned arguments and overflow the allocated buffer. The implementation now correctly computes the required buffer size when using malloc. A regression test was added to tst-sscanf.
2015-02-05glibc 2.21 pre-release update.Carlos O'Donell40-46505/+67618
Update all translations. Update contributions in the manual. Update installation notes with information about newest working tools. Reconfigure using exactly autoconf 2.69. Regenerate INSTALL.
2015-02-05hppa: Remove warnings and fix conformance errors.Carlos O'Donell14-1212/+151
(1) Fix warnings. This is a bulk update to fix all the warnings that were causing build failures with -Werror on hppa. The most egregious problems are in dl-fptr.c which needs to be entirely rewritten, thus I've used -Wno-error for that. (2) Fix conformance errors. The sysdep.c file had __syscall_error and syscall in one file which caused conformance issues by including syscall when __syscall_error was linked to. The fix is obviously to split the file and use syscall.c to implement syscall.
2015-02-05Function name typo error in non-PIC case, fixed in this patch.Chung-Lin Tang2-1/+6
2015-01-31Fix two bugs in sparc atomics.David S. Miller2-7/+14
* sysdeps/sparc/sparc32/bits/atomic.h (__sparc32_atomic_do_unlock24): Put the memory barrier before the unlock not after it. (__v9_compare_and_exchange_val_32_acq): Use unions to avoid getting volatile register usage warnings from the compiler.
2015-01-31Fix sparc semaphore implementation after recent changes.David S. Miller18-703/+692
* sysdeps/sparc/nptl/sem_init.c: Delete. * sysdeps/sparc/nptl/sem_post.c: Delete. * sysdeps/sparc/nptl/sem_timedwait.c: Delete. * sysdeps/sparc/nptl/sem_wait.c: Delete. * sysdeps/sparc/sparc32/sem_init.c: New file. * sysdeps/sparc/sparc32/sem_waitcommon.c: New file. * sysdeps/sparc/sparc32/sem_open.c: Generic nptl version with padding explicitly initialized. * sysdeps/sparc/sparc32/sem_post.c: Generic nptl version using padding for in-semaphore spinlock. * sysdeps/sparc/sparc32/sem_wait.c: Likewise. * sysdeps/sparc/sparc32/sem_trywait.c: Delete. * sysdeps/sparc/sparc32/sem_timedwait.c: Delete. * sysdeps/sparc/sparc32/sparcv9/sem_init.c: New file. * sysdeps/sparc/sparc32/sparcv9/sem_open.c: New file. * sysdeps/sparc/sparc32/sparcv9/sem_post.c: New file. * sysdeps/sparc/sparc32/sparcv9/sem_waitcommon.c: New file. * sysdeps/sparc/sparc32/sparcv9/sem_wait.c: Redirect to nptl version. * sysdeps/sparc/sparc32/sparcv9/sem_timedwait.c: Delete. * sysdeps/sparc/sparc32/sparcv9/sem_trywait.c: Delete.
2015-01-30Use AVX unaligned memcpy only if AVX2 is availableH.J. Lu10-10/+37
memcpy with unaligned 256-bit AVX register loads/stores are slow on older processorsl like Sandy Bridge. This patch adds bit_AVX_Fast_Unaligned_Load and sets it only when AVX2 is available. [BZ #17801] * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Set the bit_AVX_Fast_Unaligned_Load bit for AVX2. * sysdeps/x86_64/multiarch/init-arch.h (bit_AVX_Fast_Unaligned_Load): New. (index_AVX_Fast_Unaligned_Load): Likewise. (HAS_AVX_FAST_UNALIGNED_LOAD): Likewise. * sysdeps/x86_64/multiarch/memcpy.S (__new_memcpy): Check the bit_AVX_Fast_Unaligned_Load bit instead of the bit_AVX_Usable bit. * sysdeps/x86_64/multiarch/memcpy_chk.S (__memcpy_chk): Likewise. * sysdeps/x86_64/multiarch/mempcpy.S (__mempcpy): Likewise. * sysdeps/x86_64/multiarch/mempcpy_chk.S (__mempcpy_chk): Likewise. * sysdeps/x86_64/multiarch/memmove.c (__libc_memmove): Replace HAS_AVX with HAS_AVX_FAST_UNALIGNED_LOAD. * sysdeps/x86_64/multiarch/memmove_chk.c (__memmove_chk): Likewise.
2015-01-29Include <signal.h> in sysdeps/nptl/allocrtsig.cAndreas Schwab2-0/+5
Architectures which don't use hp-timing-common.h don't include <signal.h> via <sys/param.h>.
2015-01-29Fix up ChangeLog formattingSiddhesh Poyarekar1-12/+12
2015-01-29Initialize nscd stats data [BZ #17892]Siddhesh Poyarekar3-1/+8
The padding bytes in the statsdata struct are not initialized, due to which valgrind throws a warning: ==11384== Memcheck, a memory error detector ==11384== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. ==11384== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info ==11384== Command: nscd -d ==11384== Fri 25 Apr 2014 10:34:53 AM CEST - 11384: handle_request: request received (Version = 2) from PID 11396 Fri 25 Apr 2014 10:34:53 AM CEST - 11384: GETSTAT ==11384== Thread 6: ==11384== Syscall param socketcall.sendto(msg) points to uninitialised byte(s) ==11384== at 0x4E4ACDC: send (in /lib64/libpthread-2.12.so) ==11384== by 0x11AF6B: send_stats (in /usr/sbin/nscd) ==11384== by 0x112F75: nscd_run_worker (in /usr/sbin/nscd) ==11384== by 0x4E439D0: start_thread (in /lib64/libpthread-2.12.so) ==11384== by 0x599AB6C: clone (in /lib64/libc-2.12.so) ==11384== Address 0x15708395 is on thread 6's stack Fix the warning by initializing the structure.
2015-01-28Clarify math/README.libm-test. Add "How to read the test output."Martin Sebor2-14/+71
2015-01-28tilegx32: set __HAVE_64B_ATOMICS to 0Chris Metcalf2-1/+14
This is because of alignment issues in the sem_t support. tilegx32 does in fact support 64-bit atomics and we will need to revisit this after the 2.21 freeze.
2015-01-28Disable 64-bit atomics for MIPS n32.Joseph Myers2-1/+6
This patch disables use of 64-bit atomics for MIPS n32 to fix the problems with unaligned semaphores. Before 64-bit atomics are used for anything for which such alignment issues do not arise, and before the addition of any new ILP32 ports with 64-bit semaphores for which the ABI can be set to have the greater alignment (AARCH64?), a better approach will need to be established that allows architectures to declare their 64-bit atomics availability accurately, without doing so causing inappropriate use of such atomics on unaligned semaphores. Tested for MIPS n32 that this fixes the nptl/tst-sem3 failure. * sysdeps/mips/bits/atomic.h [_MIPS_SIM == _ABIN32] (__HAVE_64B_ATOMICS): Define to 0.
2015-01-28powerpc: Fix fesetexceptflag [BZ#17885]Adhemerval Zanella3-2/+6
This patch fixes a bug introduced by 18f2945ae9216cfc, where it optimizes the FPSCR set by just issuing a mtfs instruction if new flag is different from older one. The issue is a typo, where the new flag should the the new value, instead of the old one. It fixes BZ#17885.
2015-01-28powerpc: Fix fsqrt build in libm [BZ#16576]Adhemerval Zanella7-111/+50
Some powerpc64 processors (e5500 core for instance) does not provide the fsqrt instruction, however current check to use in math_private.h is __WORDSIZE and _ARCH_PWR4 (ISA 2.02). This is patch change it to use the compiler flag _ARCH_PPCSQ (which is the same condition GCC uses to decide whether to generate fsqrt instruction). It fixes BZ#16576.
2015-01-27iconv: Suppress array out of bounds warning.Andreas Krebbel2-1/+12
2015-01-25ia64: avoid set-but-not-used warningAndreas Schwab2-0/+8
2015-01-25m68k/coldfire: avoid warning about volatile register variablesAndreas Schwab2-10/+13
2015-01-25m68k: fix missing definition of __feraiseexceptAndreas Schwab2-0/+4
2015-01-25m68k: force inlining bswap functionsAndreas Schwab2-4/+9
2015-01-25Fix segmentation fault when LD_LIBRARY_PATH contains only non-existings pathsBram3-12/+18
2015-01-24powerpc: Fix powerpc64 build failure with binutils 2.22Adhemerval Zanella3-2/+9
GLIBC memset optimization for POWER8 uses the '.machine power8' directive, which is only supported officially on binutils 2.24+. This causes a build failure on older binutils. Since the requirement of .machine power8 is to correctly assembly the 'mtvsrd' instruction and it is already handled by the MTVSRD_V1_R4 macro, there is no really needed of using it. The patch replaces the power8 with power7 for .machine directive. It fixes BZ#17869.
2015-01-24powerpc: Fix ifuncmain6pie failure with GCC 4.9Adhemerval Zanella3-2/+10
This patch fix the elf/ifuncmain6pie failure when building with GCC 4.9+. For some reason, the compiler removes the branch taken code at resolve_ifunc (sysdeps/powerpc/powerpc64/dl-machine.h) as dead-code and thus the testcase fails because the ifunc resolves branches to an invalid memory location. It fixes by explicit adding a dependency of value based on odp variable to avoid compiler optimization. It fixes BZ#17868.
2015-01-23Also treat model numbers 0x5a/0x5d as SilvermontH.J. Lu2-1/+4
2015-01-23Treat model numbers 0x4a/0x4d as SilvermontH.J. Lu2-0/+7
* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Treat model numbers 0x4a/0x4d as Intel Silvermont architecture.
2015-01-23Also use uint64_t in __new_sem_wait_fastH.J. Lu2-1/+2
2015-01-23Use uint64_t and (uint64_t) 1 for 64-bit intH.J. Lu5-8/+20
This patch replaces unsigned long int and 1UL with uint64_t and (uint64_t) 1 to support ILP32 targets like x32. [BZ #17870] * nptl/sem_post.c (__new_sem_post): Replace unsigned long int with uint64_t. * nptl/sem_waitcommon.c (__sem_wait_cleanup): Replace 1UL with (uint64_t) 1. (__new_sem_wait_slow): Replace unsigned long int with uint64_t. Replace 1UL with (uint64_t) 1. * sysdeps/nptl/internaltypes.h (new_sem): Replace unsigned long int with uint64_t.
2015-01-23Add missing libc_hidden_weak to stub if_nameindex, if_freenameindex.Roland McGrath2-0/+5
2015-01-23Add missing libc_hidden_def to stub getrlimit64.Roland McGrath2-0/+5
2015-01-22soft-fp: Use __label__ for all labels within macros.Joseph Myers2-0/+13
soft-fp has various macros containing labels and goto statements. Because label names are function-scoped, this is problematic for using the same macro more than once within a function, which some architectures do in the Linux kernel (the soft-fp version there predates the addition of any of these labels and gotos). This patch fixes this by using __label__ to make the labels local to the block with the __label__ declaration. Tested for powerpc-nofpu that installed stripped shared libraries are unchanged by this patch. * soft-fp/op-common.h (_FP_ADD_INTERNAL): Declare labels with __label__. (_FP_FMA): Likewise. (_FP_TO_INT_ROUND): Likewise. (_FP_FROM_INT): Likewise.
2015-01-21BZ #16418: Fix powerpc get_clockfreq racinessAdhemerval Zanella3-78/+74
This patch fix powerpc __get_clockfreq racy and cancel-safe issues by dropping internal static cache and by using nocancel file operations. The vDSO failure check is also removed, since kernel code does not return an error (it cleans cr0.so bit on function return) and the static code (to read value /proc) now uses non-cancellable calls.
2015-01-21Update copyright year to 2015 for new files.Carlos O'Donell3-3/+6
2015-01-21tst-getpw: Rewrite.Carlos O'Donell2-6/+79
The test is rewritten to look for the testable conditions and exit once they are all detected. This prevents the test from iterating over 2000 UIDs and looking up each one. It speeds up the test and prevents it from failing if the system under test has an NSS-based passwd that is slower than the test timeout. See: https://sourceware.org/ml/libc-alpha/2015-01/msg00394.html
2015-01-21Fix tst_wcscpy.c test.Marek Polacek2-1/+5
2015-01-21Fix recursive dlopen.Carlos O'Donell10-21/+222
The ability to recursively call dlopen is useful for malloc implementations that wish to load other dynamic modules that implement reentrant/AS-safe functions to use in their own implementation. Given that a user malloc implementation may be called by an ongoing dlopen to allocate memory the user malloc implementation interrupts dlopen and if it calls dlopen again that's a reentrant call. This patch fixes the issues with the ld.so.cache mapping and the _r_debug assertion which prevent this from working as expected. See: https://sourceware.org/ml/libc-alpha/2014-12/msg00446.html
2015-01-21Fix semaphore destruction (bug 12674).Carlos O'Donell34-2103/+732
This commit fixes semaphore destruction by either using 64b atomic operations (where available), or by using two separate fields when only 32b atomic operations are available. In the latter case, we keep a conservative estimate of whether there are any waiting threads in one bit of the field that counts the number of available tokens, thus allowing sem_post to atomically both add a token and determine whether it needs to call futex_wake. See: https://sourceware.org/ml/libc-alpha/2014-12/msg00155.html
2015-01-20Regenerate INSTALL.Carlos O'Donell2-231/+230
2015-01-20Update libc.pot:Carlos O'Donell2-238/+242
In preparation for providing a tarball to the translation project. * po/libc.pot: Regenerated.
2015-01-17Commit nios2 port to master.Chung-Lin Tang98-0/+7681
2015-01-16S390: Get rid of linknamespace failures for utmp functions.Stefan Liebler9-15/+62