aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-05-21Consistently use $(elf-objpfx).Joseph Myers9-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/.
2014-05-21aarch64: Merge __local_multiple_threads offset with memory referenceRichard Henderson2-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.
2014-05-21aarch64: Merge rtld_errno offset with memory referenceRichard Henderson2-2/+6
2014-05-20Fix ARM build with GCC trunk.Joseph Myers3-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.
2014-05-20Update powerpc-fpu ULPs.Adhemerval Zanella2-0/+65
2014-05-20PowerPC: Fix copysignf optimization macroAdhemerval Zanella2-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
2014-05-20Fix strtold on 32-bit sparc (and probably others) (BZ #16965)Aurelien Jarno3-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.
2014-05-20fix nl_langinfo with static linking (BZ #16915)Aurelien Jarno6-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>
2014-05-20alpha: fix sa_flags type (BZ 16967)Richard Henderson3-2/+6
2014-05-20alpha: Remove bits/siginfo.h (BZ 16966)Richard Henderson3-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.
2014-05-20alpha: Define ELF_MACHINE_NO_RELARichard Henderson2-0/+5
2014-05-20AArch64: Fix handling of nocancel syscall failuresWill Newton2-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.
2014-05-20AArch64: Remove asm/ptrace.h inclusion in sys/user.h and sys/procfs.hYvan Roux3-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.
2014-05-19PowerPC: Fix multiarch hypotf PPC64 pathAdhemerval Zanella2-0/+5
This patch moves the hypotf multiarch implementation to correct path.
2014-05-19Revert "ARM: Improve fenv implementation"Marcus Shawcroft13-93/+99
This reverts commit c0c08d02c82275353f5c556f935a1a01714d9d7f.
2014-05-17Fix sparc memcpy data corruption when using niagara2 optimized routines.Jose E. Marchesi3-1/+8
* sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Add missing membar to avoid block loads/stores to overlap previous stores.
2014-05-17alpha: Create __syscall_nocancel entry pointsRichard Henderson3-21/+23
2014-05-17Merge remote-tracking branch 'origin/roland/nptl-alpha'Richard Henderson2-10/+11
2014-05-17Fix some termios.h conformtest failures on sparc.David S. Miller2-14/+14
* sysdeps/unix/sysv/linux/sparc/bits/termios.h (PAGEOUT, WRAP): Protect with __USE_GNU. (TIOCSET_TEMPT): Likewise. (TIOCM_LE, TIOCM_DTR, TIOCM_RTS, TIOCM_ST, TIOCM_SR, TIOCM_CTS, TIOCM_CAR, TIOCM_RNG, TIOCM_DSR, TIOCM_CD, TIOCM_RI): Remove as these are already provided in bits/ioctl-types.h
2014-05-16Fix __waitpid_nocancel link error.linaro/masterRoland McGrath2-6/+6
2014-05-16ARM: soft-fp NaN representation correctionMaciej W. Rozycki2-3/+9
Commit 7d92b78723848ae616709eb8f0191ea067025b18 [Fix ARM NAN fraction bits.] removed all the bits set from NANFRAC macros and, when propagated to libgcc, regressed gcc.dg/torture/builtin-math-7.c on soft-fp arm-eabi targets, currently ARMv6-M (`-march=armv6-m -mthumb') only. This is because when used to construct a NaN in the semi-raw mode, they now build an infinity instead. Consequently operations such as (Inf - Inf) now produce Inf rather than NaN. The change worked for the original test case, posted with PR libgcc/60166, because division is made in the canonical mode, where the quiet bit is set separately, from the fp class. This change brings the quiet bit back to these macros, making semi-raw mode calculations produce the expected results again.
2014-05-16Use existing makefile variables for dependencies on glibc libraries.Joseph Myers10-42/+55
glibc's Makeconfig defines some variables such as $(libm) and $(libdl) for linking with libraries built by glibc, and nptl/Makeconfig (included by the toplevel Makeconfig) defines others such as $(shared-thread-library). In some places glibc's Makefiles use those variables when linking against the relevant libraries, but in other places they hardcode the location of the libraries in the build tree. This patch cleans up various places to use the variables that already exist (in the case of libm, replacing several duplicate definitions of a $(link-libm) variable in subdirectory Makefiles). (It's not necessarily exactly equivalent to what the existing code does - in particular, $(shared-thread-library) includes libpthread_nonshared, but is replacing places that just referred to libpthread.so. But I think that change is desirable on the general principle of linking things as close as possible to the way in which they would be linked with an installed library, unless there is a clear reason not to do so.) To support running tests with an installed copy of glibc without needing the full build tree from when that copy was built, I think it will be useful to use such variables more generally and systematically - every time the rules for building a test refer to some file from the build tree that's also installed by glibc, use a makefile variable so that the installed-testing case can point those variables to installed copies of the files. This patch just deals with straightforward cases where such variables already exist. It's quite possible some uses of $(shared-thread-library) should actually be a new $(thread-library) variable that's set appropriately in the --disable-shared case, if those uses would in fact work without shared libraries. I didn't change the status quo that those cases hardcode use of a shared library whether or not it's actually needed (but other uses such as $(libm) and $(libdl) would now get the static library if the shared library isn't built, when some previously hardcoded use of the shared library - if they actually need shared libraries, the test itself needs an enable-shared conditional anyway). Tested x86_64. * benchtests/Makefile ($(addprefix $(objpfx)bench-,$(bench-math))): Depend on $(libm), not $(common-objpfx)math/libm.so. ($(addprefix $(objpfx)bench-,$(bench-pthread))): Depend on $(shared-thread-library), not $(common-objpfx)nptl/libpthread.so. * elf/Makefile ($(objpfx)noload): Depend on $(libdl), not $(common-objpfx)dlfcn/libdl.so. ($(objpfx)tst-audit8): Depend on $(libm), not $(common-objpfx)math/libm.so. * malloc/Makefile ($(objpfx)libmemusage.so): Depend on $(libdl), not $(common-objpfx)dlfcn/libdl.so. * math/Makefile ($(addprefix $(objpfx),$(filter-out $(tests-static),$(tests)))): Depend on $(libm), not $(objpfx)libm.so. Do not condition on [$(build-shared) = yes]. ($(objpfx)test-fenv-tls): Depend on $(shared-thread-library), not $(common-objpfx)nptl/libpthread.so. * misc/Makefile ($(objpfx)tst-tsearch): Depend on $(libm), not $(common-objpfx)math/libm.so$(libm.so-version) or $(common-objpfx)math/libm.a depending on [$(build-shared) = yes]. * nptl/Makefile ($(objpfx)tst-unload): Depend on $(libdl), not $(common-objpfx)dlfcn/libdl.so. * setjmp/Makefile (link-libm): Remove variable. ($(objpfx)tst-setjmp-fp): Depend on $(libm), not $(link-libm). * stdio-common/Makefile (link-libm): Remove variable. ($(objpfx)tst-printf-round): Depend on $(libm), not $(link-libm). * stdlib/Makefile (link-libm): Remove variable. ($(objpfx)bug-getcontext): Depend on $(libm), not $(link-libm). ($(objpfx)tst-strtod-round): Likewise. ($(objpfx)tst-tininess): Likewise. ($(objpfx)tst-strtod-underflow): Likewise. ($(objpfx)tst-strtod6): Likewise. ($(objpfx)tst-tls-atexit): Depend on $(shared-thread-library) and $(libdl), not $(common-objpfx)nptl/libpthread.so and $(common-objpfx)dlfcn/libdl.so.
2014-05-16PowerPC: clean BSD Terminal Modes expectation in termios.hAdhemerval Zanella2-2/+14
This patch guard the BSD definition for terminal modes in PowerPC specific header fixing the following conformance failures: FAIL: conform/POSIX/termios.h/conform FAIL: conform/POSIX2008/termios.h/conform FAIL: conform/UNIX98/termios.h/conform
2014-05-16Alpha: Convert fork.c to arch-fork.hRoland McGrath2-10/+11
2014-05-16ARM: Convert fork.c to arch-fork.hRoland McGrath2-10/+10
2014-05-16Add stub arch-fork.h header.Roland McGrath2-0/+28
2014-05-16Split arch-fork.h from fork.hRoland McGrath8-6/+20
2014-05-16Update Swedish translationsAllan McRae2-6/+8
2014-05-16Fix variable used in sed expression in timezone/MakefileAllan McRae2-1/+6
2014-05-16SPARC: add prlimit and prlimit64 in <bits/resource.h> (BZ #16943)Aurelien Jarno3-1/+32
prlimit and prlimit64 have been added in the main <bits/resource.h>, but not in the SPARC specific version. Fix that. Note: this is Debian bug#703559, reported by Emilio Pozuelo Monfort <pochu@debian.org>
2014-05-16ptsname_r: don't leak uninitialized memory (BZ #16917)Aurelien Jarno5-3/+122
If the fd refers to a terminal device, but not a pty master, the TIOCGPTN ioctl returns with ENOTTY. This error is not caught, and the possibly undefined buffer passed to ptsname_r is sent directly to the stat64 syscall. Fix this by using a fallback to the old method only if the TIOCGPTN ioctl fails with EINVAL. This also fix the return value in that specific case (it return ENOENT without this patch). Also add tests to the ptsname_r function (and ptsname at the same time). Note: this is Debian bug#741482, reported by Jakub Wilk <jwilk@debian.org>
2014-05-15ARM: Improve fenv implementationWilco13-99/+93
2014-05-15ARM: Improve fenv implementationWilco17-233/+190
2014-05-15Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849)Siddhesh Poyarekar3-4/+9
getaddrinfo correctly returns EAI_AGAIN for AF_INET and AF_INET6 queries. For AF_UNSPEC however, an older change (a682a1bf553b1efe4dbb03207fece5b719cec482) broke the check and due to that the returned error was EAI_NONAME. This patch fixes the check so that a non-authoritative not-found is returned as EAI_AGAIN to the user instead of EAI_NONAME.
2014-05-14x86: Move abilist files out of nptl/ subdirectories.Roland McGrath44-0/+90
2014-05-14Move remaining files out of nptl/sysdeps/unix/sysv/linux/x86/.Roland McGrath17-3/+38
2014-05-14Fix mips fork after i386 reorganization.Roland McGrath3-1/+4
2014-05-14Move remaining nptl/sysdeps/unix/sysv/linux/i386/ files.Roland McGrath61-1/+153
2014-05-14Fix powerpc fork after i386 reorganization.Roland McGrath3-1/+4
2014-05-14Update alpha and ia64 timer_*.c files for x86_64 file moves.Roland McGrath11-10/+20
2014-05-14i386: Remove useless pthread_spin_{init,unlock} wrapper files.Roland McGrath3-2/+3
2014-05-14Move remaining nptl/sysdeps/unix/sysv/linux/x86_64/ files.Roland McGrath26-2/+55
2014-05-14x86: Consolidate NPTL fork.Roland McGrath4-16/+16
2014-05-14Consolidate not-cancel.h files.Roland McGrath11-172/+38
2014-05-14Update s390 timer_*.c files for x86_64 file moves.Roland McGrath6-5/+10
2014-05-14x86_64: Remove useless pthread_spin_{init,unlock} wrapper files.Roland McGrath3-2/+3
2014-05-14Move x86_64 compat-timer.h out of nptl/Roland McGrath2-0/+2
2014-05-14Move x86_64 timer_*.c out of nptl/Roland McGrath18-22/+56
2014-05-14x86: Consolidate NPTL/non versions of cloneRoland McGrath5-29/+6
2014-05-14Move NPTL public ABI headers for x86 to sysdeps/x86/nptl/.Roland McGrath5-0/+9