- Align hwcap names with kernel (arch/arm/kernel/setup.c)
- Align HWCAP_ARM_* definitions with kernel
- Make VFP and NEON as HWCAP_IMPORTANT, this can help in scenarios
where VFP/NEON HW optimizations can be utilized.
In a multithreaded environment the call to vfork was
incorrectly creating a stack frame. Given that the
child unwinds the stack frame first to call exec, it
will corrupt any values the parent stored in the stack
frame. The solution is to avoid creating a stack frame
unless required to call an error function, in which case
we are assured no child was created.
The getcontext, and setcontext functions should
not adjust the stack, and should load the stack
pointer from the machine context. Calling makecontext
should create a frame for spilled incoming arguments,
and sync uc_stack.ss_sp to the machine context.
We do not support calling getcontext, modifying ss_sp,
and calling setcontext directly.
Partial revert of bebc49030c. Even with the revert, ceil and floor are
still faster than libcpml's equivalent.
Fixes bug 5350.
Signed-off-by: Matt Turner <mattst88@gmail.com>
The static program builds in libc were getting multiple
definition errors between dl-sysdep and dl-support.
Signed-off-by: Richard Henderson <rth@twiddle.net>
GCC 4.5 was able to tell that BAR was read-only and zero, and
elided the load. Which caused the pattern match to fail.
Signed-off-by: Richard Henderson <rth@twiddle.net>
The function __set_cr27() uses the `ble`
instruction without marking the link register
r31 as clobbered. This change adds r31 to the
list of clobbers. The TLS thread register is
cr27 and is set by calling __set_cr27().
The initial implementation of makecontext()
supported only 8 arguments. This change adds
support for unlimited argument processing given
a large enough stack.
Adjust the value of SOCK_CLOEXEC to match the kernel
value used for accept4. This has never worked in the
past, and all old applications are broken, therefore
we change this value to match the kernel value.
Update F_SETOWN_EX and F_GETOWN_EX. Rearrange
the file to match other targets, reducing future
diffs against other targets and making maintenance
easier.
microMIPS is a variable-length encoding of the MIPS32 instruction set
(plus some extra instructions). As it supports almost all of MIPS32,
assembly sources in glibc do not generally need changes to work with
microMIPS, but dl-trampoline.c contains some code with a hardcoded
assumption that three instructions occupy twelve bytes. This patch
fixes this code for microMIPS by using the difference between two
labels to let the assembler calculate the relevant length.
Similar to the problems I fixed for posix_fallocate
<http://sourceware.org/ml/libc-ports/2008-12/msg00007.html> and
fallocate <http://sourceware.org/ml/libc-ports/2009-05/msg00031.html>,
MIPS64 posix_advise also needs fixes to use the correct syscall
interfaces. Although the existing n32 posix_fadvise64 is OK, getting
posix_fadvise from syscalls.list does not work correctly, as this
function is supposed to return an error code instead of storing it in
errno as the generic syscall implementations from syscalls.list do.
In the switch to NPTL the pthrad_mutex_t, pthread_cond_t,
and pthread_rwlock_t structures were made binary compatible
with the Linuxthread versions. However, their aligment when
embedded in other structures was changed. When rebuilding
libstdc++ this was detected, and the following changes return
the structures to their original Linuxthreads alignments.
2009-11-25 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h:
Use correct alignment for pthread_mutex_t, pthread_cond_t,
and pthread_rwlock_t.
Cast oldval to the same type as ret to avoid warnings when
including atomic.h.
2009-11-22 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Avoid warnings
by casting oldval to int.