Commit Graph

354 Commits

Author SHA1 Message Date
Tom de Vries 32a6153180 Use -fno-unwind-tables for *initfini* on MIPS. 2012-01-04 12:03:20 +00:00
Tom de Vries 04d4502636 Use IA64 backtrace on MIPS. 2012-01-03 16:20:45 +00:00
Joseph Myers a9ff8724b3 Update MIPS dl-lookup.c. 2011-11-11 22:07:55 +00:00
Joseph Myers c3beb30239 Add __sqrt*_finite aliases for MIPS. 2011-10-12 16:12:13 +00:00
Andreas Schwab 9a7e10917d mips: don't call ifunc functions in trace mode 2011-10-05 11:53:16 +02:00
Joseph Myers 329c2e6358 Remove HAVE_TLS_SUPPORT conditionals for MIPS. 2011-09-13 15:55:38 +00:00
Joseph Myers b8ead09ab7 Remove USE_TLS conditionals for MIPS. 2011-09-11 11:22:32 +00:00
Matt Turner e349dfdb68 Workaround R10K ll/sc errata. 2011-08-02 15:18:06 +00:00
Joseph Myers f1d4d4beaf Update MIPS dl-lookup.c. 2011-05-13 10:11:25 +00:00
Joseph Myers a32d0d808b Update MIPS dl-lookup.c from generic version. 2011-05-10 15:52:47 +00:00
Joseph Myers ed36e1de02 Define TLS_DTV_UNALLOCATED for MIPS. 2011-04-11 13:30:52 +00:00
Joseph Myers 8825867bdd Update MIPS dl-lookup.c from generic version. 2011-03-22 20:42:13 +00:00
Joseph Myers 4f46492730 Handle NO_CTORS_DTORS_SECTIONS for MIPS. 2010-12-30 21:36:54 +00:00
Joseph Myers 390651fd1d Define DEFAULT_STACK_PERMS for MIPS. 2010-12-21 00:40:13 +00:00
Joseph Myers 9431b1591b Add hidden feupdateenv and fetestexcept definitions for MIPS. 2010-10-11 14:58:01 +00:00
Joseph Myers 1dbb4edc73 Fix abiversion handling for MIPS. 2010-04-06 20:26:22 +00:00
Joseph Myers cca1fbbc2f Update MIPS dl-lookup.c from generic version. 2010-03-24 18:05:37 +00:00
Mischa Jonker 1eb0725631 Fix bug 11291: add *mem as atomic operation output for MIPS. 2010-03-23 15:03:10 +00:00
Joseph Myers 8256e69afd Add hidden alias for MIPS fegetenv. 2010-02-10 15:15:32 +00:00
Joseph Myers 54b7103af4 Fix microMIPS glibc by avoiding hardcoded instruction length assumptions.
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.
2010-01-29 01:54:52 +00:00
Joseph Myers 872083bf15 Update MIPS dl-lookup.c. 2009-12-16 17:44:03 +00:00
Joseph Myers 84f926688b Update MIPS dl-lookup.c from generic version. 2009-12-01 00:07:32 +00:00
Joseph Myers c67273d5b2 Signal stack support for MIPS ____longjmp_chk.
* 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.
2009-08-05 21:02:50 +00:00
Joseph Myers cda50f828e Update MIPS dl-lookup.c for changes to generic version.
* sysdeps/mips/do-lookup.h: Remove.
	* sysdeps/mips/dl-lookup.c: Update from generic version, with
	non-PIC handling integrated.
2009-07-17 20:39:04 +00:00
Joseph Myers 6a9f82ac93 ____longjmp_chk for MIPS.
* sysdeps/mips/____longjmp_chk.c: New file.
	* sysdeps/mips/__longjmp.c: If CHECK_SP is defined, use it.  Don't
	undefine __longjmp.
	* sysdeps/mips64/__longjmp.c: Likewise.
2009-05-16 22:24:56 +00:00
Andreas Schwab 9c052b7cc1 Remove .cvsignore files 2009-05-16 10:36:20 +02:00
Joseph Myers 6db53cd548 2009-04-15 Maciej W. Rozycki <macro@codesourcery.com>
* sysdeps/mips/sys/fpregdef.h: Update for new ABIs.
2009-04-15 20:22:41 +00:00
Joseph Myers ad32d65a9f * sysdeps/mips/bits/link.h: Uglify function parameter names.
* sysdeps/unix/sysv/linux/mips/sys/cachectl.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/eventfd.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/sysmips.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sys/tas.h: Likewise.
2009-03-15 16:54:26 +00:00
Daniel Jacobowitz f6e40d3894 * sysdeps/mips/dl-dtprocnum.h (DT_MIPS_NUM): Do not redefine.
* sysdeps/mips/dl-machine.h (STO_MIPS_PLT, R_MIPS_COPY,
	R_MIPS_JUMP_SLOT, DT_MIPS_PLTGOT): Do not redefine.
2008-10-15 19:37:36 +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
Joseph Myers 606c1b1771 * sysdeps/mips/fpu_control.h (_FPU_GETCW, _FPU_SETCW): Make asms
volatile.
2008-08-19 15:54:50 +00:00
Daniel Jacobowitz e2570f301f * sysdeps/mips/bits/setjmp.h (__jmp_buf): Give name to structure
type.
2008-07-18 13:24:21 +00:00
Daniel Jacobowitz af7eda0ff6 * sysdeps/mips/fpu/fesetround.c (fesetround): Use fpu_control_t.
* sysdeps/mips/fpu/fgetexcptflg.c (fegetexceptflag): Likewise.
	* sysdeps/mips/fpu/fsetexcptflg.c (fesetexceptflag): Likewise.
2008-03-26 13:21:26 +00:00
Andreas Jaeger 2af06d0d3e [BZ #5753]
* sysdeps/mips/ieee754.h: Use protected namespace
	__BIG_ENDIAN/__LITTLE_ENDIAN.
	Patch by Aurelien Jarno <aurelien@aurel32.net>.
2008-03-10 06:20:30 +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 391da2016b 2007-07-13 Carlos O'Donell <carlos@codesourcery.com>
* sysdeps/mips/bits/wordsize.h [_MIPS_SIM == _ABI64]:
	Define __WORDSIZE_COMPAT32 as 1.
2007-07-13 12:48:34 +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 384fa30ddd * sysdeps/mips/mips64/n32/Implies: Add mips/mips64/soft-fp.
* sysdeps/mips/mips64/n64/Implies: Likewise.
	* sysdeps/mips/mips64/soft-fp/Makefile: New.
	* sysdeps/mips/mips64/soft-fp/e_sqrtl.c: New.
	* sysdeps/mips/mips64/soft-fp/sfp-machine.h: Include <fenv.h> and
	<fpu_control.h>.  Use hardware exception and rounding mode
	settings.
2007-05-23 17:13:59 +00:00
Daniel Jacobowitz 9077d4dc20 * sysdeps/mips/dl-machine.h (elf_machine_reloc): Change type of
r_info argument to ElfW(Addr).
2007-05-23 16:50:14 +00:00
Daniel Jacobowitz f50c692c20 * sysdeps/mips/bits/mathdef.h (float_t): Change to float. 2007-02-01 15:43:00 +00:00
Daniel Jacobowitz cb5bcf7412 * sysdeps/mips/dl-machine.h (ELF_MACHINE_NO_RELA): Delete.
(elf_machine_reloc): New function, retaining the body of
	elf_machine_rel.  Take the reloc's r_info field as an argument,
	not the reloc itself.  Add extra r_addend and inplace_p arguments.
	When inplace_p is false, use r_addend as the addend, not the contents
	of the relocation field.  Hoist the conversion of reloc_addr to
	"ELFW(Addr) *".  Don't try to apply TLS relocations against
	undefined symbols.  Add R_MIPS_GLOB_DAT support.
	(elf_machine_rel, elf_machine_rela): Use elf_machine_reloc.
	(elf_machine_lazy_rel): Change the reloc type from ElfW(Rel)
	to ElfW(Rela).
2007-01-08 15:34:50 +00:00
Daniel Jacobowitz 2caa93e206 * sysdeps/mips/ldsodefs.h: Merge sysdeps/mips/elf/ldsodefs.h. Correct
multiple inclusion guard.
	* sysdeps/mips/elf/ldsodefs.h: Delete file.
2007-01-08 15:26:51 +00:00
Daniel Jacobowitz 6b4d184dc9 * sysdeps/mips/fpu_control.h: If soft-float, don't use
floating-point registers.
	* sysdeps/mips/__longjmp.c, sysdeps/mips/setjmp_aux.c,
	sysdeps/mips/mips64/__longjmp.c, sysdeps/mips/mips64/setjmp_aux.c:
	Likewise.
2006-09-21 21:01:02 +00:00
Daniel Jacobowitz 74321891c1 * sysdeps/mips/mips64/n32/libm-test-ulps,
sysdeps/mips/mips64/n64/libm-test-ulps: New.
2006-07-24 15:51:50 +00:00
Daniel Jacobowitz c6e2897b1c * sysdeps/mips/Makefile (ASFLAGS-.os): Define. 2006-06-02 15:09:39 +00:00
Daniel Jacobowitz 37896d3980 * sysdeps/mips/fpu/feholdexcpt.c: Add libm_hidden_def.
* sysdeps/mips/fpu/fesetround.c: Likewise.
2006-06-02 15:06:07 +00:00
Daniel Jacobowitz 19723bdded * sysdeps/mips/ldsodefs.h: New file.
* sysdeps/mips/tst-audit.h: New file.
2006-05-08 19:19:56 +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
Roland McGrath 92724ebc20 2006-02-20 Roland McGrath <roland@redhat.com>
* sysdeps/mips/shlib-versions: New file.
	* sysdeps/mips/preconfigure: New file.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h: New file.
2006-02-21 02:12:56 +00:00
Roland McGrath 400a25460a 2006-01-31 Roland McGrath <roland@redhat.com>
* sysdeps/alpha/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/alpha/bits/mathdef.h: ... here.
	* sysdeps/i386/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/i386/bits/mathdef.h: ... here.
	* sysdeps/mips/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/mips/bits/mathdef.h: ... here.
	* sysdeps/m68k/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/m68k/bits/mathdef.h: ... here.
	* sysdeps/powerpc/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/powerpc/bits/mathdef.h: ... here.
	* sysdeps/sparc/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/sparc/bits/mathdef.h: ... here.
	* sysdeps/ia64/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/ia64/bits/mathdef.h: ... here.
	* sysdeps/sh/sh4/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/sh/sh4/bits/mathdef.h: ... here.
	* sysdeps/x86_64/fpu/bits/mathdef.h: Moved to ...
	* sysdeps/x86_64/bits/mathdef.h: ... here.
2006-02-01 02:59:59 +00:00