Commit Graph

16 Commits

Author SHA1 Message Date
Joseph Myers
bb3b3056df * sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h: Define
FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
2009-01-12 16:38:17 +00:00
Joseph Myers
9a9863b435 * sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h: Define
FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET.
2008-12-03 23:37:48 +00:00
Daniel Jacobowitz
63fb881a04 2008-10-01 Mark Shinwell <shinwell@codesourcery.com>
Daniel Jacobowitz  <dan@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* sysdeps/mips/dl-dtprocnum.h (DT_MIPS_NUM): Redefine.
	* sysdeps/mips/dl-lookup.c: New.
	* sysdeps/mips/do-lookup.h: New.
	* sysdeps/mips/dl-machine.h (ELF_MACHINE_NO_PLT): Remove
	definition.
	(STO_MIPS_PLT, R_MIPS_COPY, R_MIPS_JUMP_SLOT, DT_MIPS_PLTGOT): Define
	if needed.
	(ELF_MACHINE_JMP_SLOT): Alter definition and update comment.
	(elf_machine_type_class): Likewise.
	(ELF_MACHINE_PLT_REL): Define.
	(elf_machine_fixup_plt): New.
	(elf_machine_plt_value): New.
	(elf_machine_reloc): Handle jump slot and copy relocations.
	(elf_machine_lazy_rel): Point relocation place at PLT if
	required.
	(RESOLVE_GOTSYM): Take a relocation type argument.
	(elf_machine_got_rel): Bind lazy stubs directly to their target if
	!lazy.  Skip lazy binding for PLT symbols.
	(elf_machine_runtime_setup): Fill in .got.plt header.
	* sysdeps/mips/dl-trampoline.c (IFNEWABI): New macro.
	(ELF_DL_PLT_FRAME_SIZE, ELF_DL_PLT_SAVE_ARG_REGS,
	ELF_DL_PLT_RESTORE_ARG_REGS): Define.
	(_dl_runtime_pltresolve): New.
	* sysdeps/mips/bits/linkmap.h: New file.
	* sysdeps/mips/tls-macros.h: Load $gp as required.  Merge 32-bit and
	64-bit versions.

	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (SYSCALL_ERROR_LABEL):
	Delete definition.
	* sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h (PSEUDO_CPLOAD,
	PSEUDO_ERRJMP, PSEUDO_SAVEGP, PSEUDO_LOADGP): Define.
	(PSEUDO): Use them.  Move outside __PIC__.
	(PSEUDO_JMP): New.
	(CENABLE, CDISABLE): Use it.
2008-10-01 13:28:14 +00:00
Daniel Jacobowitz
560bab7691 * sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h: Undefine
ARG_MAX if <linux/limits.h> has defined it.
2008-03-28 17:43:50 +00:00
Daniel Jacobowitz
8c2766740d * sysdeps/mips/nptl/tls.h (THREAD_GSCOPE_RESET_FLAG): Pass
LLL_PRIVATE argument to lll_futex_wake.
	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h (O_CLOEXEC): Define.
	* sysdeps/unix/sysv/linux/mips/bits/socket.h (PF_UNIX): Update
	comment.
	(PF_IUCV, PF_RXRPC): Define.
	(PF_MAX): Update.
	(AF_IUCV, AF_RXRPC): Define.
	(MSG_CMSG_CLOEXEC): Define.
	(_EXTERN_INLINE): Define to __extern_inline.
	* sysdeps/unix/sysv/linux/mips/bits/stat.h (UTIME_NOW,
	UTIME_OMIT): Define.
	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: Include <tls.h>.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/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, LLL_SHARED, __lll_private_flag): Define.
	* sysdeps/unix/sysv/linux/mips/nptl/pthread_once.c
	(clear_once_control, __pthread_once): Pass LLL_PRIVATE argument to
	lll_futex_wait.
	(lll_futex_wait, lll_futex_timed_wait, lll_futex_wake,
	lll_robust_dead, lll_futex_requeue, lll_futex_wake_unlock): Take
	private arguments.
	(__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.  Convert to macro.
	(lll_robust_lock, __lll_cond_lock, lll_cond_lock,
	lll_robust_cond_lock): Take private arguments.
	(__lll_timedlock_wait, __lll_robust_timedlock_wait): Take private
	arguments.
	(__lll_timedlock, __lll_robust_timedlock): 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/mips/sys/tas.h (_EXTERN_INLINE): Define
	to __extern_inline.
2007-09-12 12:57:41 +00:00
Daniel Jacobowitz
2b4095f394 2007-07-13 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h: Copy from
	libc/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h.  Increase
	PTHREAD_STACK_MIN.
2007-07-13 12:46:12 +00:00
Daniel Jacobowitz
8323b1abc6 * sysdeps/arm/nptl/tls.h (THREAD_GSCOPE_RESET_FLAG): Use
lll_private_futex_wake.
	* sysdeps/unix/sysv/linux/arm/check_pf.c: Update from generic version.
	* sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c
	(pthread_cancel_init): Add noinline and barriers.
	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c
	(__lll_timedlock_wait): Update call to lll_futex_timed_wait.
	(__lll_timedwait_tid): Likewise.
	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h (LLL_PRIVATE,
	LLL_SHARED): Define.
	(lll_futex_wait): Use lll_futex_timed_wait.
	(lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Take a
	PRIVATE argument.
	(lll_private_futex_wait, lll_private_futex_timed_wait,
	lll_private_futex_wake): New.
	(lll_robust_mutex_dead,  __lll_mutex_lock, __lll_mutex_cond_lock,
	__lll_mutex_unlock, __lll_robust_mutex_unlock,
	__lll_mutex_unlock_force, lll_wait_tid): Update calls.
	* sysdeps/unix/sysv/linux/arm/nptl/pthread_once.c (clear_once_control,
	__pthread_once): Use private futexes.
	* sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
	(pthread_cancel_init): Add noinline and barriers.

	* sysdeps/unix/sysv/aix/bits/fcntl.h,
	sysdeps/unix/sysv/linux/am33/bits/fcntl.h,
	sysdeps/unix/sysv/linux/arm/bits/fcntl.h,
	sysdeps/unix/sysv/linux/cris/bits/fcntl.h,
	sysdeps/unix/sysv/linux/m68k/bits/fcntl.h,
	sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Comment fix.

	* sysdeps/unix/sysv/linux/arm/nptl/bits/semaphore.h (SEM_VALUE_MAX):
	Delete.
	* sysdeps/unix/sysv/linux/mips/nptl/bits/semaphore.h (SEM_VALUE_MAX):
	Delete.
2007-07-10 13:35:30 +00:00
Daniel Jacobowitz
30efab519e * sysdeps/arm/nptl/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT): Define.
	(THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c
	(lll_unlock_wake_cb): Delete.
	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
	(FUTEX_PRIVATE_FLAG): Define.
	(lll_unlock_wake_cb): Delete prototype.
	* sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h: Include
	<endian.h>.
	(pthread_rwlock_t): Shrink __flags and add __shared.
	* sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
	(RTLD_SINGLE_THREAD_P): Define.

	* sysdeps/mips/nptl/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT): Define.
	(THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
	THREAD_GSCOPE_WAIT): Define.
	* sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
	(FUTEX_PRIVATE_FLAG): Define.
	(lll_unlock_wake_cb): Delete prototype.
	* sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h: Include
	<endian.h>.
	(pthread_rwlock_t): Shrink __flags and add __shared.
2007-06-06 17:27:04 +00:00
Daniel Jacobowitz
3ed8d993f9 * sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h
(RTLD_SINGLE_THREAD_P): Define.
	* sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h: Likewise.
2006-10-31 17:39:15 +00:00
Daniel Jacobowitz
0ad4d3b0cb * sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h (FUTEX_LOCK_PI,
FUTEX_UNLOCK_PI, FUTEX_TRYLOCK_PI): Define.
2006-08-04 18:54:56 +00:00
Daniel Jacobowitz
712619d7b6 * sysdeps/unix/sysv/linux/mips/nptl/fork.c: Correct path to
i386/fork.c.
2006-03-11 16:20:03 +00:00
Daniel Jacobowitz
13d7881aeb 2006-03-02 Lior Balkohen <balkohen@gmail.com>
* sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h
	(__pthread_list_t, __pthread_slist_t): New typedefs.
	(pthread_mutex_t): Replace __next and __prev fields with __list.
	* sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h (FUTEX_WAKE_OP,
	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
	(lll_futex_wake_unlock): Define.
	(lll_robust_mutex_dead, lll_robust_mutex_trylock, lll_robust_mutex_lock,
	lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
	lll_robust_mutex_unlock): New macros.
	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
	* sysdeps/unix/sysv/linux/mips/nptl/pt-vfork.S: Use correct path to
	vfork.S.
	* sysdeps/unix/sysv/linux/mips/nptl/vfork.S: Likewise.
2006-03-03 01:16:30 +00:00
Daniel Jacobowitz
6428ce3cda * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
(INTERNAL_SYSCALL): Update internal_syscall##nr invocation.
	(INTERNAL_SYSCALL_NCS): New.
	(internal_syscall0, internal_syscall1, internal_syscall2,
	internal_syscall3, internal_syscall4, internal_syscall5,
	internal_syscall6): Take ncs_init, cs_init, and input arguments.
	Use them.  Correct types for registers.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
	(INTERNAL_SYSCALL): Update internal_syscall##nr invocation.
	(INTERNAL_SYSCALL_NCS): New.
	(internal_syscall0, internal_syscall1, internal_syscall2,
	internal_syscall3, internal_syscall4, internal_syscall5,
	internal_syscall6): Take ncs_init, cs_init, and input arguments.
	Use them.
	* sysdeps/unix/sysv/linux/mips/mips64/syscalls.list: Remove
	recvfrom and sendto.  Mark lseek, msgrcv, and msgsnd as cancellation
	points.
	* sysdeps/mips/dl-machine.h (elf_machine_rel): Remove unused "value".
	Use Elf(Addr) for TLS relocation targets.
	* sysdeps/unix/sysv/linux/mips/mips64/Makefile: New file.
	* sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h (lll_futex_wait,
	lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): Cast
	futexp to long for n64.
	* sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h: New file.
2006-03-03 01:06:48 +00:00
Andreas Jaeger
3398852b27 [BZ #2167]
* sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
        (pthread_mutex_t): Follow changes for other archs.  Based on patch
        by Jim Gifford <patches@jg555.com>.
2006-01-18 08:41:47 +00:00
Andreas Jaeger
60bb0e6188 MIPS NPTL specific pthreadtypes.h 2005-03-29 19:56:26 +00:00
Andreas Jaeger
2568b67466 MIPS NPTL support 2005-03-28 09:21:52 +00:00