Commit Graph

9286 Commits

Author SHA1 Message Date
Joseph Myers
306bc0d1ed Remove sysdeps/mips soft-fp subdirectories.
As noted in
<https://sourceware.org/ml/libc-alpha/2014-10/msg00369.html>, soft-fp
sysdeps subdirectories (and more generally, subdirectories where
sysdeps/foo/Implies contains foo/bar) are unnecessary and should be
eliminated.  This patch does so for MIPS.

Tested for MIPS64 (all three ABIs, soft-float) that installed stripped
shared libraries are unchanged by this patch.

	* sysdeps/mips/soft-fp/sfp-machine.h: Move to ....
	* sysdeps/mips/mips32/sfp-machine.h: ... here.
	* sysdeps/mips/mips64/soft-fp/Makefile: Move to ....
	* sysdeps/mips/mips64/Makefile: ... here.
	* sysdeps/mips/mips64/soft-fp/e_sqrtl.c: Move to ....
	* sysdeps/mips/mips64/e_sqrtl.c: ... here.
	* sysdeps/mips/mips64/soft-fp/sfp-machine.h: Move to ....
	* sysdeps/mips/mips64/sfp-machine.h: ... here.
	* sysdeps/mips/mips32/Implies: Remove mips/soft-fp.
	* sysdeps/mips/mips64/n32/Implies: Remove mips/mips64/soft-fp.
	* sysdeps/mips/mips64/n64/Implies: Likewise.
2015-02-10 22:01:39 +00:00
Evangelos Foutras
132a1328ec Fix __memcpy_chk on non-SSE2 CPUs
In commit 8b4416d, the 1: jump label in __mempcpy_chk was accidentally
moved.  This resulted in failures of mempcpy on CPU without SSE2.
2015-02-10 21:39:06 +10:00
Adhemerval Zanella
bc0cdc4981 powerpc: drop R_PPC_REL16 check
Current minimum support binutils (2.22) supports R_PPC_REL16 as default,
so no need to extra configure checks.
2015-02-10 06:09:22 -05:00
Adhemerval Zanella
83658961f0 powerpc: sysdeps/powerpc configure cleanup
Current minimum binutils supported (2.22) has ".machine altivec" support
as default, so there is no need to add a configure check for such
functionality.  This patches removes the configure checks for it.
2015-02-10 06:08:24 -05:00
Adhemerval Zanella
10169938b1 powerpc: wordcopy/memmove cleanup for ppc32
This patch cleanup some multiarch code related to memmmove
optimization. Initial IFUNC support added specialized wordcopy
symbols which turned in local IFUNC calls used by memmove default
implementation.  The patch removes the internal IFUNC for wordcopy
symbols and uses local branches in the memmmove optimization instead.
2015-02-09 06:42:28 -05:00
Adhemerval Zanella
8548a53d69 powerpc: multiarch Makefile cleanup for powerpc32
This patch cleanups the multiarch Makefile by putting the wide chars
implementation to correct wcsmbs rule.
2015-02-09 06:42:28 -05:00
Adhemerval Zanella
b269211467 powerpc: wordcopy/memmove cleanup for ppc64
This patch cleanup some multiarch code related to memmmove
optimization. Initial IFUNC support added specialized wordcopy
symbols which turned in local IFUNC calls used by memmove default
implementation.

This change by removing then and used the optimized memmove instead
for supported chips.
2015-02-09 06:42:28 -05:00
Adhemerval Zanella
18e270aada powerpc: Remove POWER7 wordcopy ifunc
This patch remove the POWER7 ifunc wordcopy function
(_wordcopy_*_power7), since now GLIBC provides a optimized memmove/bcopy
for POWER7.
2015-02-09 06:42:28 -05:00
Adhemerval Zanella
6f0993a638 powerpc: Simplify bcopy default implementation
This patch simplify the default bcopy symbol for powerpc64 by just using
memmove instead of implementing using the default bcopy.  Since the
symbol is deprecated, it trades speed by code size.
2015-02-09 06:42:28 -05:00
Adhemerval Zanella
3001e54c57 powerpc: multiarch Makefile cleanup for powerpc64
This patch cleanups the multiarch Makefile by putting the wide chars
implementation to correct wcsmbs rule.
2015-02-09 06:42:27 -05:00
Andreas Schwab
59b61c82fe Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (bug 17912) 2015-02-09 10:41:48 +01:00
Samuel Thibault
28b067571e hurd: fix unwind-resume.c build 2015-02-08 18:46:00 +01:00
Samuel Thibault
ff78268891 hurd: fix unwind-resume.c build 2015-02-08 18:35:54 +01:00
Samuel Thibault
4fc81a777a hurd: fix tls.h build 2015-02-08 05:06:17 +01:00
Samuel Thibault
a5eb23deb6 hurd: Ignore bytes beyond sockaddr length for AF_UNIX 2015-02-08 04:26:54 +01:00
Samuel Thibault
f05826f07f hurd: add basic types for ioctls 2015-02-07 22:26:09 +01:00
Samuel Thibault
e86c5b6459 hurd: support mmap with PROT_NONE 2015-02-07 22:22:40 +01:00
Samuel Thibault
5d2556c4fa hurd: fix f?chflags prototypes, declare them and their flags 2015-02-07 21:56:15 +01:00
Samuel Thibault
e2049d17a0 hurd: fix build with pthread aio 2015-02-07 21:48:32 +01:00
Roland McGrath
f8d1bb4c25 ARM: Add missing sfi_breg in LDR_GLOBAL macro. 2015-02-06 14:42:18 -08:00
Roland McGrath
9e7265f4e5 NPTL: Build tests using clone directly only for Linux. 2015-02-06 12:30:23 -08:00
Roland McGrath
ea02c6b812 x86: Clean up __vdso_clock_gettime variable. 2015-02-06 10:44:11 -08:00
Roland McGrath
ac9e0e5e40 Clean up sysdep-dl-routines variable. 2015-02-06 10:42:08 -08:00
Carlos O'Donell
3c0c543b87 hppa: Sync with pthread.h.
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-06 01:59:32 -05:00
Carlos O'Donell
04cb913ddf glibc 2.21 pre-release update.
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-05 23:14:38 -05:00
Carlos O'Donell
3f823f488a hppa: Remove warnings and fix conformance errors.
(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-05 21:37:47 -05:00
Chung-Lin Tang
34c5604814 Function name typo error in non-PIC case, fixed in this patch. 2015-02-05 06:19:36 -08:00
David S. Miller
edac0a60c7 Fix two bugs in sparc atomics.
* 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-31 23:39:50 -08:00
David S. Miller
d4abeca504 Fix sparc semaphore implementation after recent changes.
* 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-31 23:39:50 -08:00
H.J. Lu
5f3d0b78e0 Use AVX unaligned memcpy only if AVX2 is available
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-30 15:37:58 -08:00
Andreas Schwab
b658fdd82b Include <signal.h> in sysdeps/nptl/allocrtsig.c
Architectures which don't use hp-timing-common.h don't include <signal.h>
via <sys/param.h>.
2015-01-29 10:00:25 +01:00
Chris Metcalf
06991eb816 tilegx32: set __HAVE_64B_ATOMICS to 0
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-28 14:51:21 -05:00
Joseph Myers
df34134284 Disable 64-bit atomics for MIPS n32.
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-28 18:40:35 +00:00
Adhemerval Zanella
d4d0ecb244 powerpc: Fix fesetexceptflag [BZ#17885]
This patch fixes a bug introduced by 18f2945ae9, 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-28 05:59:21 -05:00
Adhemerval Zanella
08cee2a464 powerpc: Fix fsqrt build in libm [BZ#16576]
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-28 05:59:16 -05:00
Andreas Schwab
fa20da31c8 ia64: avoid set-but-not-used warning 2015-01-25 23:38:04 +01:00
Andreas Schwab
45819cbca1 m68k/coldfire: avoid warning about volatile register variables 2015-01-25 23:36:02 +01:00
Andreas Schwab
403cc231e6 m68k: fix missing definition of __feraiseexcept 2015-01-25 23:36:02 +01:00
Andreas Schwab
24bb7432a7 m68k: force inlining bswap functions 2015-01-25 23:35:51 +01:00
Adhemerval Zanella
bea5801360 powerpc: Fix powerpc64 build failure with binutils 2.22
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-24 08:40:04 -05:00
Adhemerval Zanella
0e87343e20 powerpc: Fix ifuncmain6pie failure with GCC 4.9
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-24 08:38:39 -05:00
H.J. Lu
972af9e8dd Also treat model numbers 0x5a/0x5d as Silvermont 2015-01-23 18:52:45 -08:00
H.J. Lu
ede0236c86 Treat model numbers 0x4a/0x4d as Silvermont
* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
	Treat model numbers 0x4a/0x4d as Intel Silvermont architecture.
2015-01-23 18:08:10 -08:00
H.J. Lu
22971c35e2 Use uint64_t and (uint64_t) 1 for 64-bit int
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-23 14:48:40 -08:00
Adhemerval Zanella
6b2ba95b6b BZ #16418: Fix powerpc get_clockfreq raciness
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-21 10:46:49 -05:00
Carlos O'Donell
191220b306 Update copyright year to 2015 for new files. 2015-01-21 10:35:31 -05:00
Carlos O'Donell
ccdb048df4 Fix recursive dlopen.
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-21 01:51:10 -05:00
Carlos O'Donell
042e1521c7 Fix semaphore destruction (bug 12674).
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-21 00:46:16 -05:00
Chung-Lin Tang
522e6ee3b4 Commit nios2 port to master. 2015-01-17 22:29:12 -08:00
Stefan Liebler
026eb207ed S390: Get rid of linknamespace failures for utmp functions. 2015-01-16 09:18:58 +01:00