about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* ARM: Fix handling of concurrent TLS descriptor resolutionWill Newton2014-05-273-20/+19
| | | | | | | | | | | | | | | | | | | | The current code for handling concurrent resolution says that the ABI for _dl_tlsdesc_resolve_hold is the same as that of _dl_tlsdesc_lazy_resolver. However _dl_tlsdesc_resolve_hold is called from the trampoline directly rather than the lazy resolver stub so, for example, r2 has not been pushed so does not needed to be restored. This fixes an intermittent failure in nptl/tst-tls3 when building glibc for arm-linux-gnueabihf with -mtls-dialect=gnu2. ChangeLog: 2014-05-27 Will Newton <will.newton@linaro.org> [BZ #16990] * sysdeps/arm/dl-tlsdesc.S (_dl_tlsdesc_resolve_hold): Save and restore r2 rather than just restoring.
* Fix offset computation for append+ mode on switching from read (BZ #16724)Siddhesh Poyarekar2014-05-276-10/+207
| | | | | | | | | | | | | | | | | The offset computation in write mode uses the fact that _IO_read_end is kept in sync with the external file offset. This however is not true when O_APPEND is in effect since switching to write mode ought to send the external file offset to the end of file without making the necessary adjustment to _IO_read_end. Hence in append mode, offset computation when writing should only consider the effect of unflushed writes, i.e. from _IO_write_base to _IO_write_ptr. The wiki has a detailed document that describes the rationale for offsets returned by ftell in various conditions: https://sourceware.org/glibc/wiki/File%20offsets%20in%20a%20stdio%20stream%20and%20ftell
* Update powerpc-fpu ULPs.Adhemerval Zanella2014-05-262-0/+26
|
* PowerPC: Move remaining nptl/sysdeps/unix/sysv/linux/powerpc/ files.Adhemerval Zanella2014-05-2616-11/+57
|
* PowerPC: Move NPTL ABI headers to sysdeps.Adhemerval Zanella2014-05-263-0/+5
|
* PowerPC: Move powerpc64 timer_*.c out of nptl/Adhemerval Zanella2014-05-268-7/+28
|
* PowerPC: Consolidate NPTL/non versions of cloneAdhemerval Zanella2014-05-265-45/+10
|
* PowerPC: Consolidate NPTL/non versions of vforkAdhemerval Zanella2014-05-267-206/+79
|
* Remove nested function mi_arena from malloc_info.Carlos O'Donell2014-05-262-125/+141
| | | | | | | | | | The nested function mi_arena was removed from malloc_info and made into a non-nested static inline function of the same name with the correct set of arguments passed from malloc_info. This enables building glibc with compilers that don't support nested functions. Future work on malloc_info should remove these functions entirely to support JSON format output. Therefore we do the minimum required to remove the nested function.
* PowerPC: Remove 64 bits instructions in PPC32 codeAdhemerval Zanella2014-05-269-16/+28
| | | | This patch replaces the insrdi by insrwi in powerpc32 assembly.
* Fix searching localedef input on I18NPATH (BZ #16984)Andreas Schwab2014-05-264-3/+10
|
* Disable lock elision for PTHREAD_MUTEX_NORMAL.Stefan Liebler2014-05-262-1/+7
|
* Fix typo in tst-mutex5 ifndef -> ifdefStefan Liebler2014-05-262-1/+6
|
* benchtests: Add new directive for benchmark initialization hookSiddhesh Poyarekar2014-05-264-1/+18
| | | | | | | Add a new 'init' directive that specifies the name of the function to call to do function-specific initialization. This is useful for benchmarks that need to do a one-time initialization before the functions are executed.
* [AARCH64] correct alignment of TLS_TCB_ALIGN (BZ #16796)Kyle McMartin2014-05-263-6/+12
| | | | | | | | | | | | | | | This fixes a variety of testsuite failures for me: tststatic.out Error 1 tststatic2.out Error 1 tst-tls9-static.out Error 1 tst-audit8.out Error 127 tst-audit9.out Error 127 tst-audit1.out Error 127 and also has the added benefit of making LD_AUDIT/sotruss work on AArch64. Otherwise, we bail out early in _dl_try_allocate_static_tls as the alignment requirement of the PT_TLS section in libc is 16.
* Use NSS_STATUS_TRYAGAIN to indicate insufficient buffer (BZ #16878)Siddhesh Poyarekar2014-05-264-10/+20
| | | | | | | | | | | | The netgroups nss modules in the glibc tree use NSS_STATUS_UNAVAIL (with errno as ERANGE) when the supplied buffer does not have sufficient space for the result. This is wrong, because the canonical way to indicate insufficient buffer is to set the errno to ERANGE and the status to NSS_STATUS_TRYAGAIN, as is used by all other modules. This fixes nscd behaviour when the nss_ldap module returns NSS_STATUS_TRYAGAIN to indicate that a netgroup entry is too long to fit into the supplied buffer.
* arm,aarch64: Remove SINGLE_THREAD_P_PICRichard Henderson2014-05-253-2/+5
| | | | | | | | | | This macro was removed by 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com> but not applied to the (still separate) eabi port so necro'd when the eabi port superceded the old abi. It was thence copied into the new AArch64 port.
* aarch64: Tidy syscall error checkRichard Henderson2014-05-253-10/+21
| | | | | Move the error branch from the PSEUDO_RET macro to the PSEUDO macro. This is in line with other architectures, and will enable further improvments.
* aarch64: Remove DOARGS/UNDOARGS macrosRichard Henderson2014-05-253-24/+9
| | | | While they do something for AArch32, they're useless for AArch64.
* aarch64: Fix DO_CALL block commentRichard Henderson2014-05-252-1/+4
|
* alpha: Do non-default symbols in pt-vfork.SRichard Henderson2014-05-253-6/+21
|
* Only provide non-default symbols in libpthread for vforkRichard Henderson2014-05-232-7/+12
| | | | | * nptl/pt-vfork.c (vfork_resolve): Rename from vfork_ifunc. (vfork, __vfork): Define via compat_symbol.
* Only support ifunc in nptl/pt-vfork.cRichard Henderson2014-05-232-19/+23
| | | | | | * nptl/pt-vfork.c: Error if !HAVE_IFUNC. [!HAVE_IFUNC] (vfork_compat): Remove. [!HAVE_IFUNC] (DEFINE_VFORK): Remove.
* Define TSVTX in tar.h for older POSIX (bug 16978).Joseph Myers2014-05-234-3/+9
| | | | | | | | | | | | | | | As noted in bug 16978, older POSIX versions include in the specified contents of <tar.h>, with only the 2001 edition introducing the notion of XSI-conditional definitions and conditioning that definition. Thus, this macro should be defined for !__USE_XOPEN2K as well as for __USE_XOPEN, and this patch duly defines it in that case. Tested x86_64. [BZ #16978] * posix/tar.h [!__USE_XOPEN2K] (TSVTX): Define macro. * conform/Makefile (test-xfail-POSIX/tar.h/conform): Remove variable.
* alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/Richard Henderson2014-05-2333-15/+78
|
* alpha: Consolidate NPTL/non versions of vforkRichard Henderson2014-05-235-59/+70
|
* alpha: Merge standard and nptl clone.SRichard Henderson2014-05-233-15/+7
|
* alpha: Remove nptl/fork.cRichard Henderson2014-05-232-29/+4
| | | | | The merge at ab21431318d99c94e644606dee1e6a4545d98007 failed to properly remove the file.
* Fix log10 (1) in round-downward mode (bug 16977).Joseph Myers2014-05-2311-8/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | As with various other issues of this kind, bug 16977 is log10 (1) wrongly returning -0 rather than +0 in round-downward mode because of an implementation effectively in terms of log1p (x - 1). This patch fixes the issue in the same way used for log. Tested x86_64 and x86 and ulps updated accordingly. Also tested for mips64 to confirm a fix was needed for ldbl-128 and to validate that fix (also applied to ldbl-128ibm since that version of logl is essentially the same as the ldbl-128 one). [BZ #16977] * sysdeps/i386/fpu/e_log10.S (__ieee754_log10): Take absolute value when x - 1 is zero. * sysdeps/i386/fpu/e_log10f.S (__ieee754_log10f): Likewise. * sysdeps/i386/fpu/e_log10l.S (__ieee754_log10l): Likewise. * sysdeps/ieee754/ldbl-128/e_log10l.c (__ieee754_log10l): Return 0.0L for an argument of 1.0L. * sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise. * sysdeps/x86_64/fpu/e_log10l.S (__ieee754_log10l): Take absolute value when x - 1 is zero. * math/libm-test.inc (log10_test): Use ALL_RM_TEST. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* manual: Update prototypes for alphasort and friendsRasmus Villemoes2014-05-232-4/+9
| | | | | | | The four functions {alpha,version}sort{,64} take parameters of type const struct dirent{,64} **, not const void *. Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
* PowerPC: Remove unneeded copysign[f] macrosAdhemerval Zanella2014-05-222-27/+6
| | | | | This patch remove the unneeded copysign[f] macro from powerpc math_private.h, since they are already covered in generic version.
* Fix date in ChangeLogSiddhesh Poyarekar2014-05-221-1/+1
|
* Fix formattingSiddhesh Poyarekar2014-05-222-9/+13
|
* Remove nested functions: crypt/md5-crypt.cKonstantin Serebryany2014-05-222-18/+31
| | | | | | | | | | This patch is the first in the series of patches that remove nested functions from glibc. Rationale: nested functions is a non-standard language feature; removing nested functions will allow to compile glibc with compilers other than GCC and thus benefit from other compilers and code analysis tools.
* PowerPC: Fix memchr ifunc hidden symbol for PPC32Adhemerval Zanella2014-05-223-10/+21
| | | | | | | | | This patch fixes a similar issue to 736c304a1ab4cee36a2f3343f1698bc0abae4608, where for PPC32 if the symbol is defined as hidden (memchr) then compiler will create a local branc (symbol@local) and the linker will not create a required PLT call to make the ifunc work. It changes the default hidden symbol (__GI_memchr) to default memchr symbol for powerpc32 (__memchr_ppc32).
* AArch64: Convert fork.c to arch-fork.hRoland McGrath2014-05-212-4/+7
|
* Don't mention linuxthreads in Depend files.Joseph Myers2014-05-214-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | I noticed that some of the Depend files, used to determine the subdirectory build order in sysd-sorted, still mentioned linuxthreads, although it hasn't been supported for many years. This patch removes those references. In the case of nscd, it substitutes an nptl reference, since I believe there is a fact a thread library dependence there; the others already mentioned nptl. Note that I am not at all confident in the completeness of these Depend files. Note also that references to linuxthreads remain in a comment in sysdeps/unix/sysv/linux/ia64/Versions, and in manual/maint.texi, manual/signal.texi and scripts/documented.sh. Tested x86_64 that the installed shared libraries are unchanged by the patch (as is sysd-sorted). * nscd/Depend (linuxthreads): Remove. (nptl): Add. * resolv/Depend (linuxthreads): Remove. * rt/Depend (linuxthreads): Remove.
* Consistently use $(elf-objpfx).Joseph Myers2014-05-219-24/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As previously noted <https://sourceware.org/ml/libc-alpha/2013-05/msg00696.html>, $(elf-objpfx) and $(elfobjdir) are redundant and should be consolidated. This patch consolidates on $(elf-objpfx) (for consistency with $(csu-objpfx)), also changing direct uses of $(common-objpfx)elf/ to use $(elf-objpfx). Tested x86_64, including that installed shared libraries are unchanged by the patch. * Makeconfig [$(build-hardcoded-path-in-tests) = yes] (rtld-tests-LDFLAGS): Use $(elf-objpfx) instead of $(common-objpfx)elf/. (link-libc-before-gnulib): Likewise. (elfobjdir): Remove variable. * Makefile (install): Use $(elf-objpfx) instead of $(common-objpfx)elf/. * Makerules (link-libc-args): Use $(elf-objpfx) instead of $(elfobjdir)/. (link-libc-deps): Likewise. ($(common-objpfx)libc.so): Likewise. ($(common-objpfx)linkobj/libc.so): Likewise. [$(cross-compiling) = no] (symbolic-link-prog): Use $(elf-objpfx) instead of $(common-objpfx)elf/. (symbolic-link-list): Likewise. * iconvdata/Makefile ($(inst_gconvdir)/gconv-modules) [$(cross-compiling) = no]: Likewise. * sysdeps/arm/Makefile (gnulib-arch): Use $(elf-objpfx) instead of $(elfobjdir)/. (static-gnulib-arch): Likewise. * sysdeps/s390/s390-64/Makefile ($(inst_gconvdir)/gconv-modules) [$(cross-compiling) = no]: Use $(elf-objpfx) instead of $(common-objpfx)elf/. localedata/ChangeLog: * Makefile (LOCALEDEF): Use $(elf-objpfx) instead of $(common-objpfx)elf/.
* aarch64: Merge __local_multiple_threads offset with memory referenceRichard Henderson2014-05-212-5/+8
| | | | | | This also highlights that we'd been loading 64-bits instead of the proper 32-bits. Caught by the linker as a relocation error, since the variable happened to be unaligned for 64-bits.
* aarch64: Merge rtld_errno offset with memory referenceRichard Henderson2014-05-212-2/+6
|
* Fix ARM build with GCC trunk.Joseph Myers2014-05-203-2/+11
| | | | | | | | | | | | | | | | sysdeps/unix/sysv/linux/arm/unwind-resume.c and sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c have static variables that are written in C code but only read from toplevel asms. Current GCC trunk now optimizes away such apparently write-only static variables, so causing a build failure. This patch marks those variables with __attribute_used__ to avoid that optimization. Tested that this fixes the build for ARM. * sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c (libgcc_s_resume): Use __attribute_used__. * sysdeps/unix/sysv/linux/arm/unwind-resume.c (libgcc_s_resume): Likewise.
* Update powerpc-fpu ULPs.Adhemerval Zanella2014-05-202-0/+65
|
* PowerPC: Fix copysignf optimization macroAdhemerval Zanella2014-05-202-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the __copysignf optimized macro meant to internal libm usage when used with constant value. Without the explicit cast to float, if it is used with const double value (for instance, on s_casinhf.c) double constants will be used and it may lead to precision issues in some algorithms. It fixes the following failures on PPC64/POWER7: Failure: Test: Real part of: cacos_downward (inf + 0 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0 Failure: Test: Real part of: cacos_downward (inf - 0 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0 Failure: Test: Real part of: cacos_downward (inf + 0.5 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0 Failure: Test: Real part of: cacos_downward (inf - 0.5 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0 Failure: Test: Real part of: cacos_towardzero (inf + 0 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0 Failure: Test: Real part of: cacos_towardzero (inf - 0 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0 Failure: Test: Real part of: cacos_towardzero (inf + 0.5 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0 Failure: Test: Real part of: cacos_towardzero (inf - 0.5 i) Result: is: 1.19209289550781250000e-07 0x1.00000000000000000000p-23 should be: 0.00000000000000000000e+00 0x0.00000000000000000000p+0
* Fix strtold on 32-bit sparc (and probably others) (BZ #16965)Aurelien Jarno2014-05-203-4/+13
| | | | | | | | | | | | | This patch fixes an issue observed running the tst-strtod-round test on 32 bit sparc. In some conditions, strtold calls round_and_return, which in turn calls __mpn_rshift with cnt = 0, while stdlib/rshift.c explicitly says that cnts should satisfy 0 < CNT < BITS_PER_MP_LIMB. In this case, the code end up doing a logical shift right of the same amount than the register, which is undefined in the C standard. Due to this bug, 32-bit sparc does not correctly convert the value "0x1p-16446", but it is likely that other architectures are also affected for other input values.
* fix nl_langinfo with static linking (BZ #16915)Aurelien Jarno2014-05-206-6/+42
| | | | | | | | | | | | | | | | For static linking the locale code avoids linking code and data for unused categories. However for nl_langinfo we know only at runtime which categories are used, so direct reference to every nl_current_CATEGORY symbol should be done. This was broken by commit bc3e1c127392da88d0c8bf2ae728147982a3d1bc where nl_langinfo_l and nl_langinfo have been merged and some code has been lost in the process. In order to detect locales issues with static linking, compile a version of tst-langinfo with static linking. Note: this is Debian bug#747103 reported by Raphael <raphael.astier@eliot-sa.com>
* alpha: fix sa_flags type (BZ 16967)Richard Henderson2014-05-203-2/+6
|
* alpha: Remove bits/siginfo.h (BZ 16966)Richard Henderson2014-05-203-335/+5
| | | | | | Using the default header instead. This matches the kernel, which also uses the generic header. Fixes the sys/wait.h conform issue, where si_band had the wrong type.
* alpha: Define ELF_MACHINE_NO_RELARichard Henderson2014-05-202-0/+5
|
* AArch64: Fix handling of nocancel syscall failuresWill Newton2014-05-202-0/+6
| | | | | | | | | | | | | | The current code for nocancel syscalls does not do a comparison of the system call return value. This leads to code being generated where the b.cs follows the svc instruction directly without setting the flags on which the branch depends. ChangeLog: 2014-05-20 Will Newton <will.newton@linaro.org> * sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO): Test the return value of the system call in the nocancel case.
* AArch64: Remove asm/ptrace.h inclusion in sys/user.h and sys/procfs.hYvan Roux2014-05-203-21/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes an issue observed by the Xen project, where including signal.h exposes various PSR_MODE #defines. This is due to the usage in sys/user.h and sys/procfs.h of the struct user_pt_regs and user_fpsimd_state included via asm/ptrace.h. The namespace pollution this inclusion introduce is already partially fixed with some #undef of the PTRACE_* symbols, but other symbols like the PSR_MODE ones are still present, and undefining them is not safe since a user can include ptrace.h before user.h. My proposition is to define the 2 structures we need in user.h and get rid of the asm/ptrace.h inclusion. Build and make check are clean on AArch64. 2014-05-20 Will Newton <will.newton@linaro.org> Yvan Roux <yvan.roux@linaro.org> * sysdeps/unix/sysv/linux/aarch64/sys/user.h: Remove unused #include of asm/ptrace.h. (PTRACE_GET_THREAD_AREA): Remove #undef. (PTRACE_GETHBPREGS): Likewise. (PTRACE_SETHBPREGS): Likewise. (struct user_regs_struct): New structure. (struct user_fpsimd_struct): New structure. * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Remove unused #include of asm/ptrace.h and second #include of sys/user.h. (PTRACE_GET_THREAD_AREA): Remove #undef. (PTRACE_GETHBPREGS): Likewise. (PTRACE_SETHBPREGS): Likewise. (ELF_NGREG): Use new struct user_regs_struct. (elf_fpregset_t): Use new struct user_fpsimd_struct.