Place socket.h in the correct location.
2009-11-15 Carlos O'Donell <carlos@codesourcery.com>
[BZ #6676]
* sysdeps/unix/sysv/linux/hppa/socket.h: Move from here...
* sysdeps/unix/sysv/linux/hppa/bits/socket.h: ... to here.
Several constants are now defined in a generic file and no longer
need to be defined in the hppa specific file.
2009-11-15 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:
Remove FUTEX_WAITERS, FUTEX_OWNER_DIED, and FUTEX_TID_MASK.
[BZ #10527] Provide corrected socket constants that match the
kernel values.
2009-11-15 Carlos O'Donell <carlos@codesourcery.com>
Aurelian Jarno <aurelien@aurel32.net>
[BZ #10527]
* sysdeps/unix/sysv/linux/hppa/socket.h: New file.
[BZ #10920] Use the new generic override to specify the hppa
specific libgcc_s.so.4 version number. Remove the files which
hppa no longer has to duplicate in order to accomplish
overriding libgcc_s.so version number.
2009-11-08 Carlos O'Donell <carlos@codesourcery.com>
[BZ #10920]
* sysdeps/hppa/libgcc_s.h: New file.
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c: Remove.
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-resume.c: Remove.
Ensure that all objects in ARM EABI glibc have the proper EABI build
attributes to indicate that 8-byte stack alignment is required and
preserved. (GNU ld does not currently give errors for mixing code
requiring 8-byte alignment - such as anything built with GCC - and
code not marked as preserving it, because of the prevalence of
assembly code without proper markers to indicate that alignment is
preserved. The ARM RealView linker does give such errors.)
The bulk of the markers are accomplished by the change to sysdep.h,
but a few .S files do not include sysdep.h. In the case of
internal_accept4.S, no code is generated because EABI does not have
socketcall, but for completeness a dummy file with the right
attributes is used to override the default version in libc.
* sysdeps/arm/sysdep.h: (Tag_ABI_align8_preserved,
Tag_ABI_align8_needed): Attributes added.
* sysdeps/arm/elf/start.S: Likewise.
* sysdeps/arm/eabi/abi-note.S: New file.
* sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S: New
file.
This version of the NPTL POSIX thread ABI for hppa does
not break backwards compatibility with the the old
Linuxthreads ABI, and is therefore suitable for release
by distributions.
sysdeps/unix/sysv/linux/hppa/
* internaltypes.h: New file.
sysdeps/unix/sysv/linux/hppa/nptl/
* pthreadP.h: New file.
* pthread.h: New file.
* pthread_cond_broadcast.c: New file.
* pthread_cond_destroy.c: New file.
* pthread_cond_init.c: New file.
* pthread_cond_signal.c: New file.
* pthread_cond_timedwait.c: New file.
* pthread_cond_wait.c: New file.
* bits/pthreadtypes.h: Make pthread_mutex_t,
pthread_rwlock_t, and pthread_cond_t backwards
compatible.
* sysdeps/mips/____longjmp_chk.c: Remove. Replaced by....
* sysdeps/unix/sysv/linux/mips/____longjmp_chk.c: This. New file.
* sysdeps/mips/__longjmp.c (__longjmp): Use explicit register
variable for env. Use expansion of CHECK_SP macro for check.
* sysdeps/mips/mips64/__longjmp.c (__Longjmp): Likewise.
sysdeps/unix/sysv/linux/internal_accept4.S expects socket.S to be
present if __NR_socketcall is defined (which it is on MIPS o32, even
though there are separate syscalls as well) and __NR_accept4 isn't.
MIPS does not have socket.S, since it uses separate syscalls, but
though the accept4 syscall should be added soon present kernel headers
do not have it. This patch creates a dummy internal_accept4.S for
MIPS o32, and an accept4.c wrapper that undefines __NR_socketcall so
that the main accept4.c falls back to the ENOSYS implementation if
__NR_accept4 isn't defined; it doesn't seem worthwhile to have a
special socketcall-based assembly implementation just for o32 on a few
kernels in the range between accept4 being available via socketcall
and the accept4 syscall being available.
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c:
Update from nptl/sysdeps/pthread/unwind-forcedunwind.c
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-resume.c:
Update from nptl/sysdeps/pthread/unwind-resume.c
* sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
(libgcc_s_handle): New variable.
(pthread_cancel_init): Depend in libgcc_s_handle for decision to
load DSO. Assign last.
(__unwind_freeres): New function.
* sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c:
Likewise.
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c
(libgcc_s_handle): New variable.
(pthread_cancel_init): Depend in libgcc_s_handle for decision to
load DSO. Assign last.
(__unwind_freeres): New function.
Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/dl-machine.h (elf_machine_dynamic): Ditto.
(elf_machine_load_address): Clear T bit of PLT entry contents.
(RTLD_START): Mark function symbols as such. Tweak pc-relative
addressing to avoid depending on pc read pipeline offset.
* sysdeps/arm/machine-gmon.h (MCOUNT): Add Thumb-2 implementation.
* sysdeps/arm/tls-macros.h: Add alignment for Thumb-2.
(ARM_PC_OFFSET): Define.
(TLS_IE): Define differently for Thumb-2.
(TLS_LE, TLS_LD, TLS_GD): Use ARM_PC_OFFSET.
* sysdeps/arm/elf/start.S: Switch to thumb mode for Thumb-2.
* sysdeps/unix/sysv/linux/arm/eabi/sysdep.h (INTERNAL_SYSCALL_RAW):
Add Thumb implementation.
* sysdeps/unix/sysv/linux/arm/eabi/nptl/aio_misc.h: New.
* sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-resume.c: Enforce
alignment for Thumb-2. Adjust offset from PC for Thumb-2.
* sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c: Ditto.
* sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (atomic_full_barrier,
__arch_compare_and_exchange_val_32_acq): Add Thumb-2 implementation.
* sysdeps/unix/sysv/linux/mips/dl-static.c: New file to support
variable page size for MIPS.
* sysdeps/unix/sysv/linux/mips/ldsodefs.h: Likewise.
* sysdeps/unix/sysv/linux/mips/Makefile: Build dl-static in elf.
* sysdeps/unix/sysv/linux/mips/Versions: Add _dl_var_init.
* sysdeps/unix/sysv/linux/alpha/wordexp.c: Contents moved to main
repository's ia64 file; #include that.
* sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Contents moved to main
repository's powerpc file; #include that.
SOCK_NONBLOCK, PF_ISDN and AF_ISDN.
* sysdeps/unix/sysv/linux/mips/sys/epoll.h: New file.
* sysdeps/unix/sysv/linux/mips/sys/eventfd.h: New file.
* sysdeps/unix/sysv/linux/mips/sys/inotify.h: New file.
* sysdeps/unix/sysv/linux/mips/sys/signalfd.h: New file.
* sysdeps/unix/sysv/linux/mips/sys/timerfd.h: New file.
* data/localplt-arm-linux-gnueabi.data: New.
* sysdeps/arm/bsd-_setjmp.S: Use HIDDEN_JUMPTARGET to call
__sigsetjmp.
* sysdeps/arm/bsd-setjmp.S: Likewise.
* sysdeps/arm/eabi/aeabi_localeconv.c: Use __localeconv.
* sysdeps/arm/eabi/find_exidx.c (__gnu_Unwind_Find_exidx): Use
__dl_iterate_phdr.
* sysdeps/arm/eabi/setjmp.S: Add hidden_def (__sigsetjmp).
* sysdeps/arm/memmove.S: Use HIDDEN_JUMPTARGET to call memcpy from
within libc.
* sysdeps/arm/setjmp.S: Add hidden_def (__sigsetjmp).
* sysdeps/unix/sysv/linux/arm/clone.S: Use HIDDEN_JUMPTARGET to
call _exit.
* sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Use __sysctl,
__readlink and fgets_unlocked.
(_ioperm): Use __open and __close.
* sysdeps/m68k/bits/byteswap.h: Allow inclusion from <endian.h>.
(__bswap_constant_16): Define.
(__bswap_16): Allow arguments with side effects.
(__bswap_constant_32): Ensure result is unsigned.
(__bswap_32): Define as inline function in fallback case.
(__bswap_constant_64): Define.
(__bswap_64): Use it for constant arguments.
* sysdeps/m68k/bits/setjmp.h (__jmp_buf): Give name to structure
type.
* sysdeps/m68k/m680x0/fpu/bits/mathinline.h: Only allow inclusion
from <math.h>. Do not use extern inline directly.
* sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Include <bits/uio.h>.
(O_CLOEXEC, SYNC_FILE_RANGE_WAIT_BEFORE, SYNC_FILE_RANGE_WRITE,
SYNC_FILE_RANGE_WAIT_AFTER, SPLICE_F_MOVE, SPLICE_F_NONBLOCK,
SPLICE_F_MORE, SPLICE_F_GIFT): Define.
(sync_file_range, vmsplice, splice, tee): Declare.
* sysdeps/unix/sysv/linux/m68k/bits/mman.h (MADV_REMOVE): Define.
* sysdeps/unix/sysv/linux/m68k/bits/poll.h (POLLMSG, POLLREMOVE,
POLLRDHUP): Define.
* sysdeps/unix/sysv/linux/m68k/bits/stat.h (UTIME_NOW,
UTIME_OMIT): Define.
* sysdeps/unix/sysv/linux/m68k/kernel-features.h: New.
* sysdeps/unix/sysv/linux/m68k/sys/user.h: New.
* sysdeps/unix/sysv/linux/hppa/ucontext_i.sym: New file.
* sysdeps/unix/sysv/linux/hppa/Makefile: New file.
* sysdeps/unix/sysv/linux/hppa/getcontext.S: New file.
* sysdeps/unix/sysv/linux/hppa/makecontext.c: New file.
* sysdeps/unix/sysv/linux/hppa/setcontext.S: New file.
* sysdeps/unix/sysv/linux/hppa/swapcontext.c: New file.
Carlos O'Donell <carlos@systemhalted.org>
[BZ #6037]
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Check for -11
(-EAGAIN) instead of 11. Loop again when the kernel
returns -45 (-EDEADLOCK). Add back memory clobber.
Do not initialize lws_ret and lws_errno.
* sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list: Add
truncate and ftruncate systems calls.
* sysdeps/unix/sysv/linux/mips/mips64/n32/ftruncate64.c: Make an
empty file.
* sysdeps/unix/sysv/linux/mips/mips64/n32/truncate64.c: Ditto.
Reorganize to match other architectures. Replace _timer._timer1
and _timer._timer2 with _timer.si_tid, _timer.si_overrun, and
_timer.si_sigval. Correct the type of _sigpoll.si_band.
(si_timerid, si_overrun): Define.
(__SIGEV_PAD_SIZE): Correct for __WORDSIZE == 64.
(__pthread_attr_s): Remove declaration.
(struct sigevent): Remove XXX. Add _tid.
type and __THROW marker of splice, vmsplice, and tee.
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Correct return value
type and __THROW marker of splice, vmsplice, and tee.
lll_futex_wake not lll_private_futex_wake.
* sysdeps/unix/sysv/linux/arm/bits/fcntl.h (O_CLOEXEC): Define.
* sysdeps/unix/sysv/linux/arm/eabi/sysdep.h: Include <tls.h>
* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c
(__lll_lock_wait_private, __lll_lock_wait): New.
(__lll_timedlock_wait): Don't include in libc.so; Take private
argument. Use atomic_compare_and_exchange_bool_acq.
* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h: Renamed all
lll_mutex_* resp. lll_robust_mutex_* macros to lll_*
resp. lll_robust_*. Renamed all LLL_MUTEX_LOCK_* macros to
LLL_LOCK_*. Include <kernel-features.h>.
(LLL_LOCK_INITIALIZER): Remove duplicate definition.
(__lll_private_flag): Define.
(lll_futex_timed_wait): Pass private flag to syscall.
(lll_futex_wake): Likewise.
(lll_private_futex_wait, lll_private_futex_timed_wait,
lll_private_futex_wake): Remove.
(lll_robust_dead, lll_futex_requeue): Take private arguments.
(lll_futex_wake_unlock): Pass private flag to syscall.
(__lll_robust_trylock): Convert to macro.
(__lll_robust_lock_wait): Add private argument.
(__lll_lock_wait_private, __lll_lock_wait): Declare.
(__lll_lock): Convert to macro. Take private argument.
(__lll_cond_lock): Likewise.
(lll_lock, lll_cond_lock): Take private arguments.
(__lll_robust_lock): Take private argument.
(__lll_timedlock_wait, __lll_robust_timedlock_wait): Take private
arguments.
(__lll_timedlock, __lll_robust_timedlock): Convert to macros.
Take private arguments.
(lll_timedlock, lll_robust_timedlock): Take private arguments.
(__lll_unlock, __lll_robust_unlock): Convert to macros. Take
private arguments.
(lll_unlock, lll_robust_unlock): Take private arguments.
(__lll_mutex_unlock_force, lll_mutex_unlock_force, lll_lock_t,
lll_trylock, lll_lock, lll_unlock, lll_islocked): Remove.
(lll_wait_tid): Pass LLL_SHARED to lll_futex_wait.
(__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
__lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
lll_cond_wake, lll_cond_broadcast): Remove.
* sysdeps/unix/sysv/linux/arm/nptl/pthread_once.c
(clear_once_control, __pthread_once): Use lll_futex_wake not
lll_private_futex_wake.
Add libc_hidden_proto.
(STRTOF): Add libc_hidden_proto.
(___new_strtold_l, ___new_wcstold_l): New weak aliases.
(strtold_l, wcstold_l): Use them as second argument for
long_double_symbol.
nptl/
* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
__lll_robust_unlock): Rewrite as macros instead of inline functions.
* sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
__lll_robust_unlock, __lll_wait_tid): Likewise.