Commit Graph

81 Commits

Author SHA1 Message Date
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
Carlos O'Donell 131fafa7da [hppa] Fix *context stack usage for varargs
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.
2010-06-23 17:03:11 -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 3af825d53b hppa: Define MSG_WAITFORONE.
Signed-off-by: Carlos O'Donell <carlos@codesourcery.com>
2010-03-31 13:52:39 -04:00
Matt Turner f3ed03373a Fix SOCK_CLOEXEC on HPPA to match O_CLOEXEC.
The kernel defines SOCK_CLOEXEC as
include/linux/net.h:#define SOCK_CLOEXEC        O_CLOEXEC
arch/parisc/include/asm/fcntl.h:#define O_CLOEXEC   010000000

But glibc was defining
sysdeps/unix/sysv/linux/hppa/bits/socket.h:  SOCK_CLOEXEC = 01000000,

Signed-off-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Kyle McMartin <kyle@redhat.com>
Signed-off-by: Carlos O'Donell <carlos@codesourcery.com>
2010-02-17 09:52:26 -05:00
Carlos O'Donell 317d0e66a0 Define MADV_MERGEABLE and MADV_UNMERGEABLE.
Add MADV_MERGEABLE and MADV_UNMERGEABLE to bits/mman.h,
matching HPPA values used in Linux kernel 2.6.32.
2010-02-17 09:27:42 -05:00
Carlos O'Donell d143075adc Update __set_cr27() to mark r31 clobbered.
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().
2010-02-17 09:27:41 -05:00
Carlos O'Donell 40215fde03 Add unlimited argument support to makecontext()
The initial implementation of makecontext()
supported only 8 arguments. This change adds
support for unlimited argument processing given
a large enough stack.
2010-02-17 09:27:40 -05:00
Carlos O'Donell fa1b9bae63 Fix SOCK_CLOEXEC for accept4
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.
2010-02-01 17:55:00 -05:00
Carlos O'Donell cbbda7adb2 Adjust errlist-compat to 257 for GLIBC_2.12
Added definitions for EOWNERDEAD, ENOTRECOVERABLE
and ERFKILL.
2010-02-01 17:54:59 -05:00
Carlos O'Donell b8eca7ff8c Update constants and rearrange file.
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.
2010-02-01 17:54:58 -05: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 8fe357d5c6 Avoid warnings when including atomic.h.
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.
2009-11-25 18:17:27 -05:00
Carlos O'Donell b8b2e2b9d1 Move socket.h to bits/socket.h
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.
2009-11-15 15:53:20 -05:00
Carlos O'Donell c832a3a9b7 Update bits/fcntl.h for hppa.
Define values for F_GETOWN_EX and F_SETOWN_EX.
Define fallocate64@@GLIBC_2.11 and provide declarations
in fcntl.h with appropriate aliases.

2009-11-15  Carlos O'Donell  <carlos@codesourcery.com>

	* sysdeps/unix/sysv/linux/hppa/Versions (libc): Add
	fallocate64@@GLIBC_2.11.
	* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
	[__USE_GNU]: Define F_GETOWN_EX, and F_SETOWN_EX.
	[!__USE_FILE_OFFSET64]: Define fallocate.
	[__USE_FILE_OFFSET64 && __REDIRECT]: Define __REDIRECT.
	[__USE_FILE_OFFSET64 && !__REDIRECT]: Define fallocate as
	fallocate64.
	[__USE_LARGEFILE64]: define fallocate64.
2009-11-15 15:46:46 -05:00
Carlos O'Donell 057c783bca Implement ELF_MACHINE_LOAD_ADDRESS using PC relative loads.
The current ELF_MACHINE_LOAD_ADDRESS used by the generic
function pointer code was not safe for use before relocation.
The macro has been rewritten to use only PC relative loads.

2009-11-15  Carlos O'Donell  <carlos@codesourcery.com>

	* sysdeps/hppa/dl-fptr.h: Update copyright year.
	Reduce ELF_MACHINE_BOOT_FPTR_TABLE_LEN to 64.
	Implement ELF_MACHINE_LOAD_ADDRESS using PC relative loads.
2009-11-15 15:11:48 -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 926d329540 Fix socket constants.
[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.
2009-11-15 14:33:51 -05:00
Carlos O'Donell d086703d6c Enable the use of -fPIE on hppa
[BZ #6676] Use PIC relocations in start.S to support the use of -fPIE
on hppa.

2009-11-15  Carlos O'Donell  <carlos@codesourcery.com>

	[BZ #6676]

	* sysdeps/hppa/elf/start.S: Use R_PARISC_DLTIND* relocations
	to support -fPIE.
2009-11-15 14:30:29 -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 84c54b39d2 2009-04-24 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/hppa/hppa1.1/s_signbit.c: New file.
2009-04-24 20:37:17 +00:00
Carlos O'Donell ec4cafcbcd 2009-04-23 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/hppa/dl-machine.h: Remove VALID_ELF_OSABI,
	VALID_ELF_ABIVERSION, and VALID_ELF_HEADER.
2009-04-24 02:53:23 +00:00
Carlos O'Donell 783398d8c2 2009-04-23 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Do not include
	sysdep.h. Document the reason for other includes.
2009-04-24 02:50:30 +00:00
Carlos O'Donell fa34de4116 2009-04-23 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/sysdep.h [!__ASSEMBLER__]:
	Include errno.h.
2009-04-24 02:48:15 +00: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
Carlos O'Donell d4bf22dbef 2009-02-22 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/Versions: Add missing bracket.
2009-02-22 17:15:19 +00:00
Carlos O'Donell 370b2f2c97 2009-02-22 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/hppa/dl-machine.h: Use _dl_runtime_profile.
2009-02-22 17:02:14 +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 ab4340a815 2009-02-09 Arthur Loiret <aloiret@debian.org>
[BZ #9717]

	* sysdeps/unix/sysv/linux/hppa/linuxthreads/malloc-machine.h
	(MALLOC): Adjust __libc_tsd_define arguments.
	(tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
	arguments.
2009-02-09 20:27:56 +00:00
Carlos O'Donell 5bccf60972 2008-08-07 Helge Deller <deller@gmx.de>
* 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.
2008-08-07 23:52:34 +00:00
Carlos O'Donell 2906e90e24 2008-06-17 Aurelian Jarno <aurelien@aurel32.net>
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.
2008-06-17 11:45:52 +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 601352feab 2008-05-12 Aurelien Jarno <aurelien@aurel32.net>
[BZ #6506]
	* sysdeps/hppa/fpu/fesetenv.c: bufptr is always read, temp is
	read while writing back status word.
2008-05-12 12:09:21 +00:00
Daniel Jacobowitz 89e412f535 * sysdeps/unix/sysv/linux/hppa/bits/shm.h: Fix comment describing
shmid_ds.

	* sysdeps/unix/sysv/linux/mips/bits/shm.h: Fix comment describing
	shmid_ds.
2008-04-21 15:45:00 +00:00
Carlos O'Donell f6fe80ef8d 2008-04-04 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Remove
	memory contraint and instead indicate that *mem is
	written to.
2008-04-04 18:57:47 +00:00
Carlos O'Donell b5186f3bba 2008-03-24 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/sys/user.h: New file.
2008-03-24 13:07:56 +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
Carlos O'Donell 9d9e479801 2008-02-22 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/unix/sysv/linux/hppa/Makefile: Remove.
	* sysdeps/hppa/nptl/Makefile: Set tst-oddstacklimit-ENV.
2008-02-23 01:18:18 +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
Daniel Jacobowitz 7e0bd9eb99 Define F_DUPFD_CLOEXEC. 2007-10-22 13:11:49 +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 d3fad32baf 2007-10-17 Carlos O'Donell <carlos@systemhalted.org>
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: Correct return value
	type and __THROW marker of splice, vmsplice, and tee.
2007-10-18 02:19:00 +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 57165d450f 2007-08-03 Aurelien Jarno <aurelien@aurel32.net>
* sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h:
	(__local_multiple_threads): Declare as hidden only in libc and
	in libpthread.
2007-08-03 22:58:57 +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 e8955bf409 2006-07-16 Jeff Bailey <jbailey@raspberryginger.com>
* sysdeps/unix/sysv/linux/hppa/sys/procfs.h: Don't
        include asm/elf.h.  Declare elf_greg_t, elf_gregset_t,
        elf_fpreg_t, and elf_fpregset_t.
2007-06-16 16:36:53 +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