Carlos O'Donell
3680f14a7d
[hppa] Fix incorrect stack frame usage in vfork.
...
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.
2010-06-24 12:13:36 -04:00
Andreas Schwab
c14e796ff6
hppa: Update nptl/pthread.h to match generic file
2010-06-07 14:46:19 +02:00
Carlos O'Donell
b80ec53691
Add correct aligment to pthread_*_t structures.
...
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.
2009-11-25 18:18:56 -05:00
Carlos O'Donell
a2ed3d2a8e
Remove constants which are now defined in generic file.
...
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.
2009-11-15 14:36:46 -05:00
Carlos O'Donell
8ef75725ce
Use LIBGCC_S_SO to override generic version.
...
[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.
2009-11-15 14:19:25 -05:00
Carlos O'Donell
be0f2008ac
Implement new NPTL POSIX Threads ABI for HPPA.
...
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.
2009-09-08 14:32:53 -04:00
Carlos O'Donell
6f5d2fa8aa
2009-02-25 Carlos O'Donell <carlos@codesourcery.com>
...
* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h:
Adjust comment. Sort macros alphabetically. Remove old
lock comments.
2009-02-26 21:36:13 +00:00
Carlos O'Donell
8ff04e6454
2009-02-25 Carlos O'Donell <carlos@codesourcery.com>
...
* 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
2009-02-26 21:29:22 +00:00
Carlos O'Donell
cdc618aab4
2009-02-25 Carlos O'Donell <carlos@codesourcery.com>
...
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Define
FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME,
and FUTEX_BITSET_MATCH_ANY.
2009-02-26 19:46:02 +00:00
Joseph Myers
b3862ba3c8
2009-02-13 Khem Raj <raj.khem@gmail.com>
...
* 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.
2009-02-13 17:34:30 +00:00
Carlos O'Donell
6f85344ee3
2008-06-17 Guy Martin <gmsoft@tuxicoman.be>
...
[BZ #5957 ]
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:
Use shared futex in lll_wait_tid().
2008-06-17 11:44:25 +00:00
Carlos O'Donell
ad9393f0e1
2008-03-14 Carlos O'Donell <carlos@codesourcery.com>
...
Guy Martin <gmsoft@tuxicoman.be>
[BZ #5923 ]
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Pass
timespec and futexp.
2008-03-14 23:40:55 +00:00
Jeff Bailey
9cd7e988d3
2007-12-05 Jeff Bailey <jeffbailey@google.com>
...
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
(__lll_unlock): Use define instead of inline function.
(__lll_robust_unlock): Likewise.
2007-12-09 02:20:34 +00:00
Carlos O'Donell
a732ab4917
2007-10-18 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
(__lll_lock_wait): Add private argument. Pass private
to lll_futex_wait. Use atomic_compare_and_exchange_val_acq.
(__lll_lock_wait_private): New function.
(__lll_timedlock_wait): Add private argument. Pass private
to lll_futex_timed_wait.
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:
Include kernel-features.h and tls.h.
(FUTEX_WAITERS): Define.
(FUTEX_OWNER_DIED): Define.
(FUTEX_TID_MASK): Define.
(__lll_private_flag): Define.
(lll_futex_timed_wait): Use __lll_private_flag.
(lll_futex_wake): Use __lll_private_flag.
(lll_futex_requeue): Use __lll_private_flag.
(lll_robust_mutex_dead): Rename to...
(lll_robust_dead): ... this. Add private argument. Pass private
to lll_futex_wake.
(lll_futex_wake_unlock): Use __lll_private_flag.
(__lll_mutex_trylock): Remove.
(lll_mutex_tryock): Remove.
(__lll_robust_mutex_trylock): Rename to...
(__lll_robust_trylock): ... this.
(lll_robust_mutex_trylock): Rename to...
(lll_robust_trylock): ... this. Call __lll_robust_trylock.
(__lll_mutex_cond_trylock): Rename to...
(__lll_cond_trylock): ... this.
(lll_mutex_cond_trylock): Rename to...
(lll_cond_trylock): ... this. Call __lll_cond_trylock.
(__lll_mutex_lock): Add private argument.
(__lll_robust_mutex_lock): Remove.
(lll_mutex_lock): Define.
(__lll_robust_lock): Define.
(lll_robust_mutex_lock): Remove.
(__lll_mutex_cond_lock): Remove.
(lll_robust_lock) Define.
(lll_robust_cond_lock): Define.
(lll_robust_mutex_cond_lock): Remove.
(__lll_cond_lock): Define.
(lll_cond_lock): Define.
(__lll_mutex_timedlock): Remove.
(__lll_timedlock): Define.
(lll_timedlock): Define.
(lll_robust_mutex_timedlock): Remove.
(lll_robust_timedlock): Define.
(__lll_mutex_unlock): Remove.
(__lll_unlock): Define.
(__lll_robust_mutex_unlock): Remove.
(__lll_robust_unlock): Define.
(lll_robust_mutex_unlock): Remove.
(lll_robust_unlock): Define.
(__lll_mutex_unlock_force): Remove.
(lll_mutex_unlock_force): Remove.
(lll_islocked): Remove.
(lll_mutex_islocked): Rename to...
(lll_islocked): ... this.
(lll_trylock): Remove.
(lll_unlock): Remove.
(lll_wait_tid): Format whitespace.
(lll_cond_wait): Remove.
(lll_cond_timedwait): Remove.
(lll_cond_wake): Remove.
(lll_cond_broadcast): Remove.
2007-10-19 01:47:47 +00:00
Carlos O'Donell
cd1530839c
2007-09-24 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/hppa/nptl/tls.h: Fix comment.
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: Fix comment format.
[__USE_GNU] (O_CLOEXEC): Define.
* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Issue error
if the library is unsupported.
[ASSEMBLER && IS_IN_librt]: Define CENABLE, CDISABLE, and
__local_multiple_threads.
2007-09-24 18:28:33 +00:00
Carlos O'Donell
b599860dc8
2007-07-28 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/unix/sysv/linux/hppa/nptl/internaltypes.h: Remove.
* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h
(pthread_rwlock_t): Split __flags into __pad2, __pad1, __shared,
and __flags. Update comments. Update copyright.
* sysdeps/hppa/nptl/tls.h: Define THREAD_GSCOPE_FLAG_UNUSED,
THREAD_GSCOPE_FLAG_USED, THREAD_GSOPE_FLAG_WAIT,
THREAD_GSCOPE_RSEET_FLAG, THREAD_GSCOPE_SET_FLAG, THREAD_GSCOPE_WAIT.
Update copyright.
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c: Update copyright.
(__lll_lock_wait): Call lll_futex_wait with LLL_SHARED.
(__lll_timedlock_wait): Call lll_futex_timed_wait with LLL_SHARED.
(lll_unlock_Wake_cb): Use lll_private_futex_wake.
(___lll_timedwait_tid): Call lll_futex_timed_wait with LLL_SAHRED.
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Define
FUTEX_PRIVATE_FLAG, LLL_PRIVATE, LLL_SHARED, lll_private_futex_wait,
lll_private_futex_timed_wait, lll_private_Futex_wake. Add private
argument to lll_futex_wait, lll_futex_timed_wait, lll_futex_wake,
lll_futex_wake_unlock.
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_once.c: Update copyright.
(clear_once_control): Use lll_private_futex_wake.
(__pthread_once): Use lll_private_futex_wait, and
lll_private_futex_wake.
2007-07-28 Randolph Chung <tausq@debian.org>
* sysdeps/hppa/nptl/tls.h (DB_THREAD_SELF): Fix definition.
2007-07-28 21:26:44 +00:00
Jeff Bailey
370d74b5df
2007-06-16 Jeff Bailey <jbailey@raspberryginger.com>
...
* sysdeps/unix/sysv/linux/hppa/nptl/configure.in: Require
at least kernel 2.6.9.
* sysdeps/unix/sysv/linux/hppa/nptl/configure: Rebuilt.
2007-06-16 15:38:21 +00:00
Carlos O'Donell
90e01f41f9
2007-05-17 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/unix/sysv/linux/hppa/nptl/bits/semaphore.h
(SEM_VALUE_MAX): Remove.
2007-05-18 02:02:51 +00:00
Carlos O'Donell
d396ccd5ec
2006-11-10 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/hppa/nptl/pthread_spin_init.c: New file.
* sysdeps/hppa/nptl/pthread_spin_unlock.c: Remove strong alias
to pthread_spin_init.
* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Define
RTLD_SINGLE_THREAD_P.
2006-09-20 Carlos O'Donell <carlos@systemhalted.org>
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h (splice): Add offin
and offout arguments to the prototype.
2006-11-11 14:33:27 +00:00
Carlos O'Donell
7cad09f90b
2006-09-15 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/hppa/nptl/tcb-offsets.sym: Define TID_THREAD_OFFSET.
* sysdeps/unix/sysv/linux/hppa/clone.S: Handle RESET_PID, and
restore r19 before call to _exit.
* sysdeps/unix/sysv/linux/hppa/nptl/clone.S: New file.
2006-09-16 00:46:19 +00:00
Carlos O'Donell
0daa050021
2006-09-07 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/hppa/dl-machine.h (elf_machine_fixup_plt): Remove
lvalue cast.
* sysdeps/hppa/dl-trampoline.S (_dl_fixup): Correct stack usage.
(_dl_runtime_profile): LA fixups.
* sysdeps/unix/sysv/linux/hppa/clone.S: Correct stack usage. Return
-1 on error. Use branch and link for error handler funciton.
* sysdeps/unix/sysv/linux/hppa/sysdep.h: Correct stack usage.
Avoid register shuffling.
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h (ASM_EAGAIN): Define
as -EAGAIN.
* sysdeps/unix/sysv/linux/hppa/bits/mman.h: Adjust definitions to
match required standards.
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
(lll_futex_wait): Return __ret.
(lll_futex_timed_wait): Likewise.
(lll_futex_wake): Likewise.
(lll_futex_requeue): Likewise.
* sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Correct stack
usage and adjust error return.
* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Adjust
stack usage for gdb, and avoid extra register loads.
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c: Copy
nptl/sysdeps/pthread/unwind-forcedunwind.c.
(LIBGCC_SO): Define and use.
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-resume.c: Copy
nptl/sysdeps/pthread/unwind-resume.c.
(LIBGCC_SO): Define and use.
2006-09-07 16:34:43 +00:00
Carlos O'Donell
6e0b72525b
2006-08-13 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h (FUTEX_LOCK_PI,
FUTEX_UNLOCK_PI, FUTEX_TRYLOCK_PI): Define.
2006-08-13 18:26:45 +00:00
Carlos O'Donell
259437280c
2006-07-24 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h:
__SIZEOF_PTHREAD_COND_T is 64 bytes. Remove __PAD_ATOMIC_LOCK_T.
2006-07-25 01:58:10 +00:00
Carlos O'Donell
da1ea0f056
2006-07-13 Carlos O'Donell <carlos@systemhalted.org>
...
* sysdeps/unix/sysv/linux/hppa/xstat.c: New file.
* sysdeps/unix/sysv/linux/hppa/lxstat.c: Likewise.
* sysdeps/unix/sysv/linux/hppa/fxstat.c: Likewise.
* sysdeps/unix/sysv/linux/hppa/fxstatat.c: Likewise.
2006-07-13 Carlos O'Donell <carlos@systemhalted.org>
* sysdeps/hppa/nptl/Makefile: New file
* sysdeps/hppa/nptl/jmpbuf-unwind.h: Likewise
* sysdeps/hppa/nptl/pthread_spin_lock.c: Likewise
* sysdeps/hppa/nptl/pthread_spin_trylock.c: Likewise
* sysdeps/hppa/nptl/pthread_spin_unlock.c: Likewise
* sysdeps/hppa/nptl/pthreaddef.h: Likewise
* sysdeps/hppa/nptl/tcb-offsets.sym: Likewise
* sysdeps/hppa/nptl/tls.h: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/bits: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/createthread.c: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/fork.c: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/internaltypes.h: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/libc-lowlevellock.c: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/pt-initfini.c: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/pthread_once.c: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c: Likewise
* sysdeps/unix/sysv/linux/hppa/nptl/unwind-resume.c: Likewise
2006-07-14 13:51:24 +00:00