about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* Update version.h and include/features.h for 2.20 release glibc-2.20Allan McRae2014-09-073-3/+7
|
* Update contrib.texiAllan McRae2014-09-072-0/+9
| | | | Add entries for Wilco Dijkstra and Stefan Liebler.
* Update Korean translationAllan McRae2014-09-072-827/+889
|
* [BZ #17354] tile: Fix up corner cases with signed relocationsChris Metcalf2014-09-063-19/+30
| | | | | | | | | | | | | | | | | | Some types of relocations technically need to be signed rather than unsigned: in particular ones that are used with moveli or movei, or for jump and branch. This is almost never a problem. Jump and branch opcodes are pretty much uniformly resolved by the static linker (unless you omit -fpic for a shared library, which is not recommended). The moveli and movei opcodes that need to be sign-extended generally are for positive displacements, like the construction of the address of main() from _start(). However, tst-pie1 ends up with main below _start (in a different module) and the test failed due to signedness issues in relocation handling. This commit treats the value as signed when shifting (to preserve the high bit) and also sign-extends the value generated from the updated bundle when comparing with the desired bundle, which we do to make sure no overflow occurred. As a result, the tst-pie1 test now passes.
* CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325]Florian Weimer2014-09-0311-10/+54
| | | | | These changes are based on the fix for BZ #14134 in commit 6e230d11837f3ae7b375ea69d7905f0d18eb79e5.
* Define __GI_fegetenv for e500 libmKhem Raj2014-09-022-0/+6
| | | | | | | | | | | generic HAVE_RM_CTX implementation which is used for ppc/e500 as well has introduced calls to fegetenv which should be resolved internally with in libm Signed-off-by: Khem Raj <raj.khem@gmail.com> * sysdeps/powerpc/powerpc32/e500/nofpu/fegetenv.c (fegetenv): Add libm_hidden_ver.
* Update Esperanto translationAllan McRae2014-09-012-530/+548
|
* Update Catalan translationAllan McRae2014-09-012-478/+498
|
* Fix hang on forkSamuel Thibault2014-08-282-0/+9
| | | | | | | | | | If e.g. a signal is being received while we are running fork(), the signal thread may be having our SS lock when we make the space copy, and thus in the child we can not take the SS lock any more. * sysdeps/mach/hurd/fork.c (__fork): Lock SS->lock around __proc_dostop call. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
* i386 TLS_INIT_TP might produce bogus asm changing stack pointer [BZ #17319]Mark Wielaard2014-08-283-30/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TLS_INIT_TP in sysdeps/i386/nptl/tls.h uses some hand written asm to generate a set_thread_area that might result in exchanging ebx and esp around the syscall causing introspection tools like valgrind to loose track of the user stack. Just use INTERNAL_SYSCALL which makes sure esp isn't changed arbitrarily. Before the patch the code would generate: mov $0xf3,%eax movl $0xfffff,0x8(%esp) movl $0x51,0xc(%esp) xchg %esp,%ebx int $0x80 xchg %esp,%ebx Using INTERNAL_SYSCALL instead will generate: movl $0xfffff,0x8(%esp) movl $0x51,0xc(%esp) xchg %ecx,%ebx mov $0xf3,%eax int $0x80 xchg %ecx,%ebx Thanks to Florian Weimer for analysing why the original code generated the bogus esp usage: _segdescr.desc happens to be at the top of the stack, so its address is in %esp. The asm statement says that %3 is an input, so its value will not change, and GCC can use %esp as the input register for the expression &_segdescr.desc. But the constraints do not fully describe the asm statement because the %3 register is actually modified, albeit only temporarily. [BZ #17319] * sysdeps/i386/nptl/tls.h (TLS_INIT_TP): Use INTERNAL_SYSCALL to call set_thread_area instead of hand written asm. (__NR_set_thread_area): Removed define. (TLS_FLAG_WRITABLE): Likewise. (__ASSUME_SET_THREAD_AREA): Remove check. (TLS_EBX_ARG): Remove define. (TLS_LOAD_EBX): Likewise.
* Simplify atomicity of socket creation in bind.Samuel Thibault2014-08-282-22/+25
|
* NEWS: Typo fix: s/wil /will /gCarlos O'Donell2014-08-271-1/+1
|
* Update x86 ULPsAllan McRae2014-08-272-4/+8
| | | | Using gcc-4.9, i7-2620M, i686 Linux.
* Fix typo in CVE IDFlorian Weimer2014-08-261-1/+1
|
* __gconv_translit_find: Disable function [BZ #17187]Florian Weimer2014-08-263-174/+19
| | | | | This functionality has never worked correctly, and the implementation contained a security vulnerability (CVE-2014-5119).
* Update Vietnamese translationAllan McRae2014-08-262-525/+554
|
* Update Ukrainian translationAllan McRae2014-08-262-478/+507
|
* Update French translationAllan McRae2014-08-262-526/+500
|
* Update Russian translationAllan McRae2014-08-262-479/+508
|
* Update Polish translationAllan McRae2014-08-262-479/+496
|
* Update Czech translationAllan McRae2014-08-262-478/+507
|
* Update German translationAllan McRae2014-08-262-478/+495
|
* Update Bulgarian translationAllan McRae2014-08-262-488/+517
|
* Update Sweedish translationAllan McRae2014-08-262-499/+516
|
* Update Dutch translationAllan McRae2014-08-262-481/+510
|
* Update Spanish translationAllan McRae2014-08-262-478/+497
|
* Remove NOT_IN_libc definition for pthread_atforkSiddhesh Poyarekar2014-08-212-2/+2
| | | | | | | | pthread_atfork is already built in an extra-libs context, which gives it NOT_IN_libc in its CPPFLAGS. Adding the same definition to CFLAGS is pointless. Verified that the code is unchanged on x86_64.
* Remove redundant CPPFLAGS for some programsSiddhesh Poyarekar2014-08-214-6/+5
| | | | | | | | | | These programs get the NOT_IN_libc twice, once through the 'other' target and another explicitly. Remove the explicitly added CPFLAG. * catgets/Makefile (CPPFLAGS-gencat): Remove. * iconv/Makefile (CPPFLAGS-iconv_prog): Likewise. (CPPFLAGS-iconvconfig): Likewise. * timezone/Makefile (CPPFLAGS-zic): Likewise.
* Remove unnecessary uses of NOT_IN_libcSiddhesh Poyarekar2014-08-2130-45/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a IS_IN_* macro is defined, then NOT_IN_libc is always defined, except obviously for IS_IN_libc. There's no need to check for both. Verified on x86_64 and i686 that the source is unchanged. * include/libc-symbols.h: Remove unnecessary check for NOT_IN_libc. * nptl/pthreadP.h: Likewise. * sysdeps/aarch64/setjmp.S: Likewise. * sysdeps/alpha/setjmp.S: Likewise. * sysdeps/arm/sysdep.h: Likewise. * sysdeps/i386/setjmp.S: Likewise. * sysdeps/m68k/setjmp.c: Likewise. * sysdeps/posix/getcwd.c: Likewise. * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise. * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise. * sysdeps/s390/s390-32/setjmp.S: Likewise. * sysdeps/s390/s390-64/setjmp.S: Likewise. * sysdeps/sh/sh3/setjmp.S: Likewise. * sysdeps/sh/sh4/setjmp.S: Likewise. * sysdeps/unix/alpha/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. * sysdeps/x86_64/setjmp.S: Likewise.
* Mention fixes for BZs 16194 and 16275 in NEWSH.J. Lu2014-08-132-14/+17
|
* Fix powerpc32 __get_clockfreq for non-power4 (bug 17263).Joseph Myers2014-08-133-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In my powerpc32 testing I've observed misc/test-gettimebasefreq failing. This is a glibc build (soft-float, though that's not relevant here) without any --with-cpu and without any special configuration of the default CPU for GCC either. In particular, it's one not using sysdeps/powerpc/powerpc32/power4/hp-timing.h (although in fact the processor I'm using for testing is POWER4-based), so hp_timing_t is 32-bit not 64-bit. But the VDSO call being used by INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK is generating a 64-bit result (high part in r3, low part in r4). The code extracting that result, however, expects a result of the type hp_timing_t as passed to INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK, meaning that only r3 (= 0) is used and the value in r4 is ignored. This patch fixes this by always using uint64_t as the type in INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK - reflecting the actual ABI (unconditional in the kernel) of that VDSO call. This is the minimal change for this issue - no check for overflow, no change of the type of the timebase_freq variable or the return type of __get_clockfreq to something other than hp_timing_t (such a change would simply move the implicit conversions to the over callers of that function), no change to hp_timing_t itself. Tested for powerpc32 soft float. [BZ #17263] * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Include <stdint.h>. (__get_clockfreq): Use uint64_t instead of hp_timing_t in INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK call.
* Fix comment error that Jakub pointed out but I forgot to fixSiddhesh Poyarekar2014-08-132-1/+3
|
* Disable x87 inline functions for x86_64 and SSE [BZ #17262]Siddhesh Poyarekar2014-08-133-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | Since: commit 409e00bd69b8d8dd74d7327085351d26769ea6fc Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Jan 29 07:51:41 2014 -0800 Disable x87 inline functions for SSE2 math When i386 and x86-64 mathinline.h was merged into a single mathinline.h, "gcc -m32" enables x87 inline functions on x86-64 even when -mfpmath=sse and SSE2 is enabled. It is a regression on x86-64. We should check __SSE2_MATH__ instead of __x86_64__ when disabling x87 inline functions. gcc-3.2 is unable to correctly compile x86_64 routines for llrint since it gets redefined. This is because gcc 3.2 does not set __SSE2_MATH__ for x86_64, thus exposing the duplicate definition. The correct fix ought to be to check for both __SSE2_MATH__ and __x86_64__ and enable those bits only when neither are defined. Tested fix with the reproducer for 409e00bd69b8d8dd74d7327085351d26769ea6fc as well as with gcc-3.2.
* Replace cpuid asm statement with __cpuid_countH.J. Lu2014-08-123-4/+9
| | | | | | | | | | | The compiler doesn't know that the cpuid asm statement in intel_check_word will trash RBX. We are lucky that it doesn't cause any problems since RBX is also used by compiler for other purposes so that RBX is saved and restored. This patch replaces it with __cpuid_count. [BZ #17259] * sysdeps/x86_64/cacheinfo.c (intel_check_word): Replace cpuid asm statement with __cpuid_count.
* detect broken linker handling of __ehdr_startMike Frysinger2014-08-123-11/+44
| | | | | | Older versions of ld on ia64 support __ehdr_start, but generate relocs when they shouldn't. This causes the ld.so to not run because it tries to resolve the __ehdr_start symbol (but it's not exported).
* Fix powerpc-nofpu __fe_enabled_env and __fe_nonieee_env (bug 17261).Joseph Myers2014-08-123-18/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | On powerpc, floating-point environment macros are defined as pointers to constants in the library that contain the bit-patterns of the desired environment, instead of being magic constants cast to pointer type. For soft-float, the bit-patterns used for fenv_t are not laid out the same as for hard-float. (e500 has a third layout used; that's not an ABI issue because these values are only meaningful within a single process, all of whose glibc libraries must come from the same build of glibc.) While the __fe_dfl_env value for soft-float was appropriate for the soft-float fenv_t representation, the other two constants had the same bit-patterns as for hard-float. Those bit patterns had the effect of having exceptions already raised, causing math/test-fenv-return to fail; this patch fixes the patterns used. (__fe_nonieee_env also had exceptions unmasked, though they should be masked to match hard-float semantics. Since there is no separate non-IEEE mode for soft-float, it's most appropriate for __fe_nonieee_env to be the same as __fe_dfl_env; this patch makes it an alias.) Tested for powerpc-nofpu. [BZ #17261] * sysdeps/powerpc/nofpu/fenv_const.c (__fe_enabled_env): Change value to 0. (__fe_nonieee_env): Define as an alias for __fe_dfl_env.
* NEWS: Mention x86-64 ld.so use of Intel MPX instructions.Roland McGrath2014-08-122-0/+14
|
* Add BZ #16892 to NEWSWill Newton2014-08-121-5/+5
|
* Check value of futex before updating in __lll_timedlockBernard Ogden2014-08-122-1/+10
| | | | | | | | 2014-08-12 Bernard Ogden <bernie.ogden@linaro.org> [BZ #16892] * sysdeps/nptl/lowlevellock.h (__lll_timedlock): Use atomic_compare_and_exchange_bool_acq rather than atomic_exchange_acq.
* malloc: fix comment typoSean Anderson2014-08-122-1/+5
|
* Regenerate libc.poAllan McRae2014-08-092-477/+496
|
* tst-gettext2: make setup more robustMike Frysinger2014-08-082-14/+14
| | | | | | | | | This test should be more robust about setting up its lang dirs. I had two completely different systems (ia64 & x86_64) get wedged in a way where the test just kept FAILing on me due to some of the files missing. This probably wasn't a big deal until the recent commit which made checking of the locale dirs more robust (for security reasons).
* This patch adds new function libc_feholdsetround_noex_aarch64_ctx, enablingWilco Dijkstra2014-08-072-3/+32
| | | | | | | further optimization. libc_feholdsetround_aarch64_ctx now only needs to read the FPCR in the typical case, avoiding a redundant FPSR read. Performance results show a good improvement (5-10% on sin()) on cores with expensive FPCR/FPSR instructions.
* Fix performance issue in misaligned strcpy.Wilco2014-08-072-3/+8
|
* PowerPC: Fix termios definitionsAdhemerval Zanella2014-08-063-50/+92
| | | | | | | | | | | This patch fixes the incorrect guard by __USE_MISC of struct winsize and struct termio in powerpc termios header. Current states leads to build failures if the program defines _XOPEN_SOURCE, but not _DEFAULT_SOURCE or either _BSD_SOURCE or _SVID_SOURCE. Without any definition, __USE_MISC will not be defined and neither the struct definitions. This patch copies the default Linux ioctl-types.h by adjusting only the character control field (c_cc) size in struct termio.
* alpha: Fix exception raising from soft-fpRichard Henderson2014-08-055-12/+21
| | | | | | Use the SSI_IEEE_RAISE_EXCEPTION function as from feraiseexcept, instead of __ieee_get+set_fp_status. Always raise the FP exceptions from float-to-integer conversion.
* alpha: Remove linux lowlevellock.hRichard Henderson2014-08-051-305/+0
| | | | For real this time.
* alpha: Remove linux lowlevellock.hRichard Henderson2014-08-051-0/+4
|
* MIPS - Remove mips lowlevellock.h.Bernard Ogden2014-08-042-354/+4
| | | | * sysdeps/unix/sysv/linux/mips/lowlevellock.h: Remove file.
* AArch64: Remove lowlevellock.hWill Newton2014-08-042-312/+5
| | | | | | | | | | | | | Remove lowlevellock.h in favour of the generic implementation. The generic implementation was tested natively and introduces no regressions. ChangeLog: 2014-08-04 Will Newton <will.newton@linaro.org> * sysdeps/unix/sysv/linux/aarch64/lowlevellock.h: Remove file.