David S. Miller [Mon, 29 Oct 2012 06:19:00 +0000 (23:19 -0700)]
Define a BUSY_WAIT_NOP for sparc.
nptl/
* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
Define when we have v9 instructions available.
* sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile: New
file.
* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Add cpu_relax
to libpthread-routines.
Andreas Jaeger [Sat, 27 Oct 2012 11:49:30 +0000 (13:49 +0200)]
Remove redundant defines of __O_LARGEFILE
* sysdeps/unix/sysv/linux/x86/bits/fcntl.h (__O_LARGEFILE)
[!__x86_64]: Do not define, take value from <bits/fcntl-linux.h>.
* sysdeps/unix/sysv/linux/s390/bits/fcntl.h (__O_LARGEFILE):
[__WORDSIZE != 64]: Likewise.
* sysdeps/unix/sysv/linux/generic/bits/fcntl.h: (__O_LARGEFILE)
[__WORDSIZE != 64]: Do not define, take value from
<bits/fcntl-linux.h>.
Andreas Jaeger [Fri, 26 Oct 2012 19:17:06 +0000 (21:17 +0200)]
HPPA: Use <bits/fcntl-linux.h>
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
(__O_PATH): Define.
Andreas Jaeger [Thu, 25 Oct 2012 18:14:21 +0000 (20:14 +0200)]
Convert ia64, linux-generic, m68k <bits/fcntl.h> to use <bits/fcntl-linux.h>
* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
* sysdeps/unix/sysv/linux/generic/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
Mike Frysinger [Tue, 23 Oct 2012 03:40:42 +0000 (23:40 -0400)]
change ifunc assembly test to a link test
The test currently tests the binutils frontend support which passes for
all versions of binutils we currently require (2.20+). It doesn't test
the backend which is required for ifunc to actually work, and which most
targets don't yet support.
Change the assembly code so that when we link it, we get a file that has
ifunc relocations if the backend supports it. That way we can test to
see if binutils supports everything we need.
Andreas Jaeger [Wed, 24 Oct 2012 20:13:15 +0000 (22:13 +0200)]
Convert MIPS to use <bits/fcntl-linux.h>
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
Andreas Jaeger [Wed, 24 Oct 2012 06:57:47 +0000 (08:57 +0200)]
Always define off_t, mode_t, pid_t
* io/fcntl.h: Always define mode_t, off_t, pid_t and use these
types for creat, creat64, lockf, posix_fadvise, posix_fallocate.
[__USE_LARGEFILE64 && !__off64_t_defined]: Define off64_t.
[__USE_LARGEFILE64]: Use off64_t in declaration of lock64,
posix_fadvise64, posix_fallocate64.
Andreas Jaeger [Mon, 22 Oct 2012 07:34:11 +0000 (09:34 +0200)]
ARM: Use <bits/fcntl-linux.h>
* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
Chris Metcalf [Thu, 11 Oct 2012 16:15:45 +0000 (12:15 -0400)]
tilegx: add optimized sched_getcpu() using TILE_COORD SPR
We can discover our x,y coordinate in the core mesh with an
mfspr instruction, multiply y by the core mesh width, and have
the core number without needing to ask the kernel.
Carlos O'Donell [Thu, 11 Oct 2012 03:28:52 +0000 (23:28 -0400)]
Fix formatting in nptl/sysdeps/pthread/pthread.h.
The macro pthread_cleanup_push_defer_np in pthread.h has a misaligned
line continuation marker. This marker was previously aligned, but
recent changes have moved it out of alignment. This change realigns
the marker. This also reduces the diff against the hppa version of
pthread.h where the marker is aligned.
Carlos O'Donell [Thu, 11 Oct 2012 03:00:00 +0000 (23:00 -0400)]
hppa: Update pthread.h
Updates the hppa-specific pthread.h from the generic version.
After this update the only difference between the generic
version and the hppa version is the footer protected by the
_PTHREAD_H_HPPA_ guard.
Alexandre Oliva [Wed, 10 Oct 2012 10:05:46 +0000 (07:05 -0300)]
* crypt/crypt-entry.c: Include fips-private.h.
(__crypt_r, __crypt): Disable MD5 and DES if FIPS is enabled.
* crypt/md5c-test.c (main): Tolerate disabled MD5.
* sysdeps/unix/sysv/linux/fips-private.h: New file.
* sysdeps/generic/fips-private.h: New file, dummy fallback.
Alexandre Oliva [Wed, 10 Oct 2012 10:05:10 +0000 (07:05 -0300)]
* crypt/crypt-private.h: Include stdbool.h.
(_ufc_setup_salt_r): Return bool.
* crypt/crypt-entry.c: Include errno.h.
(__crypt_r): Return NULL with EINVAL for bad salt.
* crypt/crypt_util.c (bad_for_salt): New.
(_ufc_setup_salt_r): Check that salt is long enough and within
the specified alphabet.
* crypt/badsalttest.c: New file.
* crypt/Makefile (tests): Add it.
($(objpfx)badsalttest): New.
Take lock in pthread_cond_wait cleanup handler only when needed
[BZ #14652]
When a thread waiting in pthread_cond_wait with a PI mutex is
cancelled after it has returned successfully from the futex syscall
but just before async cancellation is disabled, it enters its
cancellation handler with the mutex held and simply calling a
mutex_lock again will result in a deadlock. Hence, it is necessary to
see if the thread owns the lock and try to lock it only if it doesn't.