Commit Graph

45 Commits

Author SHA1 Message Date
Richard Henderson
dc5ca5d1f6 [BZ #1358]
* sysdeps/unix/alpha/sysdep.h (inline_syscall1): Copy argument(s)
        to a temporary first.
        (inline_syscall2, inline_syscall3, inline_syscall4): Likewise.
        (inline_syscall5, inline_syscall6): Likewise.
2005-09-20 05:35:42 +00:00
Roland McGrath
94645659a4 2004-10-04 Roland McGrath <roland@redhat.com>
* include/errno.h [RTLD_PRIVATE_ERRNO] (errno): Rename the real symbol
	to rtld_errno.
	* sysdeps/generic/errno.c [RTLD_PRIVATE_ERRNO] (rtld_errno): Define it,
	and don't define any other errno names.
	* sysdeps/unix/alpha/sysdep.h [RTLD_PRIVATE_ERRNO]: Use rtld_errno in
	place of errno.
	* sysdeps/unix/i386/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/x86_64/sysdep.S: Likewise.
2004-10-04 20:59:38 +00:00
Richard Henderson
def004d709 * sysdeps/alpha/alphaev6/memcpy.S: Mark .prologue.
* sysdeps/unix/alpha/sysdep.h (LEAF, ENTRY): Align entry points
        to 16 byte boundaries.
2004-09-26 17:40:31 +00:00
Ulrich Drepper
d627d8fb46 (inline_syscall[0-6]): Change name argument to numbers from syscall names.
(INLINE_SYSCALL1): Pass __NR_##name to inline_syscall##nr.
(INTERNAL_SYSCALL_NCS): Renamed from...
(INTERNAL_SYSCALL_1): ... this.  Use INTERNAL_SYSCALL_NCS.
2004-09-23 05:15:41 +00:00
Ulrich Drepper
2acd67aa30 [BZ #231]
(__syscall_error): Avoid !samegp relocation in librt.so.
2004-06-28 21:02:47 +00:00
Ulrich Drepper
d32bff863e (inline_syscall6): Fix a typo. 2004-06-28 21:02:06 +00:00
Ulrich Drepper
5e79bfc674 Lowlevel system dependent code for Unix/Alpha. 2004-06-22 05:55:22 +00:00
Ulrich Drepper
be8cedf82f Additional makefile for Unix on Alpha. 2004-06-22 05:54:44 +00:00
Richard Henderson
6092f9e018 * sysdeps/unix/alpha/sysdep.h: Revert last change. 2004-01-16 06:04:53 +00:00
Richard Henderson
7bd9f5453c * sysdeps/unix/alpha/sysdep.h [PIC] (SYSCALL_ERROR_HANDLER): Use
!samegp relocation.
2004-01-16 06:02:52 +00:00
Richard Henderson
cfbf1a2f78 * sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_xxx_8_int):
Cast old up to uint64_t before back down to inner width.
        (__arch_compare_and_exchange_xxx_16_int): Likewise.
        (__arch_compare_and_exchange_xxx_32_int): Likewise.
        (__arch_compare_and_exchange_xxx_64_int): Likewise.
        (__arch_compare_and_exchange_val_8_int): Cast result to
        the type of the memory.
        (__arch_compare_and_exchange_val_16_int): Likewise.
        (__arch_compare_and_exchange_val_32_int): Likewise.
        (__arch_compare_and_exchange_val_64_int): Likewise.
        (atomic_compare_and_exchange_bool_acq): Use __atomic_bool_bysize.
        (atomic_compare_and_exchange_bool_rel): Likewise.

        * sysdeps/unix/alpha/sysdep.h: Select inline_syscall_r0_asm
        based on HAVE___THREAD instead of USE_TLS.

        * sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIMEX32): New.
        (__adjtimex_tv64): Use it.

        * sysdeps/unix/sysv/linux/alpha/semctl.c (__new_semctl): Cast
        to void* rather than directly to the compatibility structure type.
        * sysdeps/unix/sysv/linux/alpha/shmctl.c (__new_shmctl): Likewise.

        * sysdeps/unix/sysv/linux/alpha/sigaction.c (struct kernel_sigaction):
        Forward declare.
2004-01-13 09:15:58 +00:00
Ulrich Drepper
724bab37c1 (PSEUDO_ERRVAL, PSEUDO_RET_ERRVAL, ret_ERRVAL, PSEUDO_END_ERRVAL): Define. 2003-08-17 00:33:13 +00:00
Richard Henderson
ebcd2cd199 * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL1): Use __builtin_expect.
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_ST_INO_64_BIT)
        Unset for alpha.
        (__ASSUME_TIMEVAL64): Set for alpha.
        * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
        adjtimex, osf_sigprocmask, old_adjtimex.
        * sysdeps/unix/sysv/linux/alpha/adjtime.c: Use INLINE_SYSCALL,
        __ASSUME_TIMEVAL64.  Reorg tv64 functions to avoid uninit variable.
        * sysdeps/unix/sysv/linux/alpha/getitimer.S: Use __ASSUME_TIMEVAL64.
        * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Streamline
        PIC code sequence.
        * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/sigaction.c: New file.
        * sysdeps/unix/sysv/linux/alpha/sigprocmask.c: Use INLINE_SYSCALL.
        * sysdeps/unix/sysv/linux/alpha/ustat.c: Likewise.
        * sysdeps/unix/sysv/linux/alpha/xmknod.c: Likewise.
        * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove osf_sigprocmask,
        sys_ustat, sys_mknod, adjtimex, old_adjtimex.
        * sysdeps/unix/sysv/linux/alpha/sysdep.h (INLINE_SYSCALL): Don't
        defer to __syscall_name; error for rt_sigaction.
        * sysdeps/unix/sysv/linux/alpha/xstatconv.c: Include kernel_stat.h.
2003-06-20 16:24:36 +00:00
Ulrich Drepper
98f7320f07 Define PSEUDO_NOERRNO, PSEUDO_END_NOERRNO, and ret_NOERRNO. 2003-03-23 19:42:23 +00:00
Roland McGrath
3de1f4af04 2003-01-21 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/alpha/sysdep.h (inline_syscall0,
	inline_syscall1, inline_syscall2, inline_syscall3,
	inline_syscall4, inline_syscall5, inline_syscall6): Add __volatile__.
	* sysdeps/unix/sysv/linux/alpha/sysdep.h (INTERNAL_SYSCALL): Add
	__attribute__((unused)) to ChEcK.
2003-01-22 02:07:54 +00:00
Ulrich Drepper
af215add0a (EPILOGUE, GPSAVEREG): New.
(LOADGP) [!PIC]: Rewrite to preserve caller's gp.
2003-01-17 19:19:55 +00:00
Ulrich Drepper
259eb5cdb8 (INLINE_SYSCALL): Undefined before defining. 2003-01-14 01:23:59 +00:00
Ulrich Drepper
aaadd842d8 Add inline syscall definitions.
(PSEUDO_LOADGP): Remove.
(PSEUDO_PROLOGUE): Load GP in non-pic case.
(SYSCALL_ERROR_LABEL): New.
(PSEUDO): Use it in error branch.
(PSEUDO_END): Add $syscall_error label.
2003-01-12 19:25:52 +00:00
Ulrich Drepper
df162e7602 Use correct definition of errno for NOT_IN_libc. 2003-01-12 19:23:03 +00:00
Ulrich Drepper
7d983cbb36 (PSEUDO): Use PSEUDO_PREPARE_ARGS. 2003-01-07 00:47:52 +00:00
Ulrich Drepper
ab18ecf4a7 Change defined(USE___THREAD) to USE___THREAD. 2002-11-28 22:47:04 +00:00
Roland McGrath
d5a256add3 2002-11-07 Richard Henderson <rth@redhat.com>
* elf/tls-macros.h: Add alpha versions.
	* sysdeps/alpha/dl-machine.h (elf_machine_rela): Handle TLS relocs.
	* sysdeps/unix/alpha/sysdep.S: Support USE___THREAD.
	* sysdeps/unix/alpha/sysdep.h: Likewise.  Add SYSCALL_ERROR_HANDLER.
	* sysdeps/unix/sysv/linux/alpha/brk.S: Use it.
	* sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/getitimer.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/syscall.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
2002-11-08 02:18:48 +00:00
Roland McGrath
54df0cf57d 2002-10-18 Roland McGrath <roland@redhat.com>
* sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL, INLINE_SYSCALL1)
	(inline_syscall_clobbers, inline_syscall0, inline_syscall1)
	(inline_syscall2, inline_syscall3, inline_syscall4, inline_syscall5)
	(inline_syscall6): Move these macros ...
	* sysdeps/unix/sysv/linux/alpha/sysdep.h: ... to here.
2002-10-18 22:37:29 +00:00
Roland McGrath
d030d52da2 2002-10-07 Roland McGrath <roland@redhat.com>
* sysdeps/generic/errno.c: New file.
	* csu/Makefile (aux): New variable, list errno.
	* sysdeps/unix/sysv/linux/i386/sysdep.S (errno, _errno): Remove defns.
	* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/cris/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep.S: Likewise.
	* sysdeps/unix/alpha/sysdep.S: Likewise.
	* sysdeps/generic/start.c: Likewise.
	* sysdeps/unix/start.c: Likewise.
	* sysdeps/unix/arm/start.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
	* sysdeps/unix/sparc/start.c: Likewise.
	* sysdeps/unix/sysv/irix4/start.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep.S: File removed.
2002-10-11 10:51:31 +00:00
Roland McGrath
13d6ef283d 2002-07-06 Bruno Haible <bruno@clisp.org>
* sysdeps/unix/sysv/linux/alpha/pipe.S: Moved to ...
	* sysdeps/unix/alpha/pipe.S: ... here.
	* sysdeps/unix/bsd/osf/alpha/pipe.S: File removed.
2002-08-26 11:37:32 +00:00
Andreas Jaeger
3214b89b32 Update to LGPL v2.1. 2001-07-06 04:56:23 +00:00
Ulrich Drepper
6e228438b9 (inline_syscall_clobbers): Add memory clobber. 2000-09-15 17:48:15 +00:00
Ulrich Drepper
13d54c34ab (INLINE_SYSCALL*): New.
(inline_syscall*): New.
1998-10-31 23:37:54 +00:00
Ulrich Drepper
e0ebc3b2ef Use __ASSEMBLER__ test macro not ASSEMBLER. 1998-05-29 10:20:59 +00:00
Ulrich Drepper
48a686308e (SYSCALL_ERROR_HANDLER): Don't store into global errno if we already
store through __errno_location.
1998-03-06 11:38:58 +00:00
Ulrich Drepper
3616c197cd Add _errno definition. 1998-02-26 17:14:15 +00:00
Ulrich Drepper
3acff87e5b Tiny cleanups. 1997-05-31 00:46:24 +00:00
Ulrich Drepper
f1fc182396 update from main archive 961203 1996-12-04 01:41:27 +00:00
Ulrich Drepper
dd4b8913cd update from 961105, second try 1996-11-07 01:34:35 +00:00
Ulrich Drepper
b1691e6dce update from main archive 961001 1996-10-02 01:39:48 +00:00
Ulrich Drepper
44b8acdd3a update from main archive 960906 1996-09-07 04:10:03 +00:00
Ulrich Drepper
11309adfce update from main archive 960904 1996-09-05 02:48:53 +00:00
Roland McGrath
7cc46c1976 Wed Jul 17 10:54:20 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.S: Make errno a bss symbol, not a
	common symbol (makes errno accessible from gdb).
1996-07-18 08:41:25 +00:00
Roland McGrath
8653138520 Fri Jun 28 16:53:01 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.h: Undo PIC-optimization of syscall
	error handling.  It's safer that way.
1996-07-01 22:16:32 +00:00
Roland McGrath
51ac76881f Fri Jun 28 16:53:01 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.S: Make ldgp part of the prologue.
	Fix by Richard Henderson.
1996-07-01 22:16:11 +00:00
Roland McGrath
bb486e187e Mon Jun 10 17:50:31 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.h: Move error-handling code in PSEUDO
 	to PSEUDO_END to improve branch-prediction.  Include .frame
 	directive to make syscalls debugabble.
	(PSEUDO_END): New macro.
	* sysdeps/unix/alpha/sysdep.h, sysdeps/alpha/bb_init_func.S,
 	sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
 	latter is illegal under DEC Unix.
1996-06-19 06:37:57 +00:00
Roland McGrath
e3829e904a Mon Jun 10 17:50:31 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.S: Renamed from
	sysdeps/unix/sysv/linux/alpha/sysdep.S.  This file works for OSF/1
 	as well.
	* sysdeps/unix/bsd/osf/alpha/sysdep.S: Remove (note that the
 	EWOULDBLOCK -> EAGAIN mapping was unnecessary since
 	EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
1996-06-19 06:37:47 +00:00
Roland McGrath
18a403782d Wed May 29 00:57:37 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.h (END): Redefine to use .end
 	directive for both ELF and ECOFF.
	(ret): Delete macro.  It was a dangerous macro and unnecessary
 	since the Alpha assemblers recognizes "ret" as a macro themselves.
Thu May 23 02:15:56 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/alpha/sysdep.h (ret): Remove macro.  It is
 	dangerous and unnecessary since both OSF/1 as and gas define "ret"
 	as a pseudo-instruction.
1996-06-02 18:49:31 +00:00
Roland McGrath
92172913d2 Wed May 22 00:40:50 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.h: Include regdef.h.  Define LEAF macro
	to simplify declaration of leaf functions.
1996-05-23 05:32:14 +00:00
Roland McGrath
bf7a24fce2 Wed Feb 14 00:21:17 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/alpha/sysdep.h: new file (adapted from OSF/1 version).
	* sysdeps/unix/bsd/osf/alpha/sysdep.h: include
 	sysdeps/unix/alpha/sysdep.h and removed definitions now in that file.
1996-03-19 19:54:21 +00:00