aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-09-01Update Catalan translationAllan McRae2-478/+498
2014-08-28Fix hang on forkSamuel Thibault2-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>
2014-08-28i386 TLS_INIT_TP might produce bogus asm changing stack pointer [BZ #17319]Mark Wielaard3-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.
2014-08-28Simplify atomicity of socket creation in bind.Samuel Thibault2-22/+25
2014-08-27NEWS: Typo fix: s/wil /will /gCarlos O'Donell1-1/+1
2014-08-27Update x86 ULPsAllan McRae2-4/+8
Using gcc-4.9, i7-2620M, i686 Linux.
2014-08-26Fix typo in CVE IDFlorian Weimer1-1/+1
2014-08-26__gconv_translit_find: Disable function [BZ #17187]Florian Weimer3-174/+19
This functionality has never worked correctly, and the implementation contained a security vulnerability (CVE-2014-5119).
2014-08-26Update Vietnamese translationAllan McRae2-525/+554
2014-08-26Update Ukrainian translationAllan McRae2-478/+507
2014-08-26Update French translationAllan McRae2-526/+500
2014-08-26Update Russian translationAllan McRae2-479/+508
2014-08-26Update Polish translationAllan McRae2-479/+496
2014-08-26Update Czech translationAllan McRae2-478/+507
2014-08-26Update German translationAllan McRae2-478/+495
2014-08-26Update Bulgarian translationAllan McRae2-488/+517
2014-08-26Update Sweedish translationAllan McRae2-499/+516
2014-08-26Update Dutch translationAllan McRae2-481/+510
2014-08-26Update Spanish translationAllan McRae2-478/+497
2014-08-21Remove NOT_IN_libc definition for pthread_atforkSiddhesh Poyarekar2-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.
2014-08-21Remove redundant CPPFLAGS for some programsSiddhesh Poyarekar4-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.
2014-08-21Remove unnecessary uses of NOT_IN_libcSiddhesh Poyarekar30-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.
2014-08-13Mention fixes for BZs 16194 and 16275 in NEWSH.J. Lu2-14/+17
2014-08-13Fix powerpc32 __get_clockfreq for non-power4 (bug 17263).Joseph Myers3-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.
2014-08-13Fix comment error that Jakub pointed out but I forgot to fixSiddhesh Poyarekar2-1/+3
2014-08-13Disable x87 inline functions for x86_64 and SSE [BZ #17262]Siddhesh Poyarekar3-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.
2014-08-12Replace cpuid asm statement with __cpuid_countH.J. Lu3-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.
2014-08-12detect broken linker handling of __ehdr_startMike Frysinger3-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).
2014-08-12Fix powerpc-nofpu __fe_enabled_env and __fe_nonieee_env (bug 17261).Joseph Myers3-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.
2014-08-12NEWS: Mention x86-64 ld.so use of Intel MPX instructions.Roland McGrath2-0/+14
2014-08-12Add BZ #16892 to NEWSWill Newton1-5/+5
2014-08-12Check value of futex before updating in __lll_timedlockBernard Ogden2-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.
2014-08-12malloc: fix comment typoSean Anderson2-1/+5
2014-08-09Regenerate libc.poAllan McRae2-477/+496
2014-08-08tst-gettext2: make setup more robustMike Frysinger2-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).
2014-08-07This patch adds new function libc_feholdsetround_noex_aarch64_ctx, enablingWilco Dijkstra2-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.
2014-08-07Fix performance issue in misaligned strcpy.Wilco2-3/+8
2014-08-06PowerPC: Fix termios definitionsAdhemerval Zanella3-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.
2014-08-05alpha: Fix exception raising from soft-fpRichard Henderson5-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.
2014-08-05alpha: Remove linux lowlevellock.hRichard Henderson1-305/+0
For real this time.
2014-08-05alpha: Remove linux lowlevellock.hRichard Henderson1-0/+4
2014-08-04MIPS - Remove mips lowlevellock.h.Bernard Ogden2-354/+4
* sysdeps/unix/sysv/linux/mips/lowlevellock.h: Remove file.
2014-08-04AArch64: Remove lowlevellock.hWill Newton2-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.
2014-08-04add ChangeLog for previous commitMike Frysinger1-0/+5
2014-08-04ia64: define nocancel entry points in PSEUDOMike Frysinger1-0/+19
The previous set of not-cancel.h headers (prior to the commit 2fbdf5339aaeaa423bd661524f7ec7af41fa2606) did not require the arch to define nocancel entry points, so ia64 never did. However, after the various files were merged, it became a hard requirement for arches which mean ia64 failed to build. Here we add dedicated entry points. It'd be nice to merge with the existing stubs like other arches do, but the ia64 asm does not lend itself to interleaving of functions. If someone has a suggestion on merging these, that'd be great, but at least now we build & pass tests again.
2014-08-04IA64: Consolidate nptl/ subdirectories under linux/...Roland McGrath32-17/+82
2014-08-04IA64: Move NPTL public headers to sysdeps/ia64/nptl/.Roland McGrath4-0/+9
2014-08-04IA64: Define TLS_DEFINE_INIT_TPRoland McGrath5-25/+15
2014-08-04IA64: Consolidate NPTL/non versions of vforkRoland McGrath5-131/+88
2014-08-04IA64: Consolidate NPTL/non versions of cloneRoland McGrath3-11/+6