aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-04-24 18:17:16 +0000
committerRoland McGrath <roland@gnu.org>2002-04-24 18:17:16 +0000
commit39bbac1e95d6d1c4004ac4c34525c891307b651b (patch)
tree57dff8e09f22b0e5d3ff60986f60ce0833ef3492 /sysdeps
parent5edf59cf936359225f9ccef8c64382e4ba38a994 (diff)
downloadglibc-39bbac1e95d6d1c4004ac4c34525c891307b651b.zip
glibc-39bbac1e95d6d1c4004ac4c34525c891307b651b.tar.gz
glibc-39bbac1e95d6d1c4004ac4c34525c891307b651b.tar.bz2
* sysdeps/mach/alpha/syscall.S: Don't use .frame, ENTRY will have it;
use END macro instead of our own .end directive. Use `callsys' insn mnemonic instead of `call_pal'. * sysdeps/mach/alpha/sysdep.h (ENTRY): New macro. * sysdeps/alpha/dl-machine.h (ELF_MACHINE_USER_ADDRESS_MASK): New macro; we need this for Hurd. Log entry was missing for 2002/03/24 commit of rev 1.8, goes with 2002-03-17 changes. * sysdeps/mach/hurd/i386/Makefile [$(subdir) = misc] (sysdep_routines): Append ioperm here. (sysdep_headers): Append sys/io.h here.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/alpha/dl-machine.h4
-rw-r--r--sysdeps/mach/alpha/syscall.S10
-rw-r--r--sysdeps/mach/alpha/sysdep.h9
3 files changed, 17 insertions, 6 deletions
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index f6d3373..2b15e33 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -29,6 +29,10 @@
#include <string.h>
+/* Mask identifying addresses reserved for the user program,
+ where the dynamic linker should not map anything. */
+#define ELF_MACHINE_USER_ADDRESS_MASK 0x120000000UL
+
/* Return nonzero iff ELF header is compatible with the running host. */
static inline int
elf_machine_matches_host (const Elf64_Ehdr *ehdr)
diff --git a/sysdeps/mach/alpha/syscall.S b/sysdeps/mach/alpha/syscall.S
index 8cb85bf..15fc5b7 100644
--- a/sysdeps/mach/alpha/syscall.S
+++ b/sysdeps/mach/alpha/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994,97,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,8 @@
02111-1307 USA. */
#include <sysdep.h>
-#include <mach/machine/alpha_instruction.h>
ENTRY (syscall)
- .frame sp,0,ra
mov a0, v0 /* Load system call number from first arg. */
mov a1, a0
mov a2, a1
@@ -34,6 +32,6 @@ ENTRY (syscall)
ldq t2,24(sp)
ldq t3,32(sp)
ldq t4,40(sp)
- call_pal op_chmk
- RET
- .end syscall
+ callsys
+ ret
+END (syscall)
diff --git a/sysdeps/mach/alpha/sysdep.h b/sysdeps/mach/alpha/sysdep.h
index ddd98d6..84e21c8 100644
--- a/sysdeps/mach/alpha/sysdep.h
+++ b/sysdeps/mach/alpha/sysdep.h
@@ -43,6 +43,15 @@
#define ALIGN 3
#include <sysdeps/mach/sysdep.h>
+/* Alpha needs the .ent and .frame magic that the generic version lacks. */
+#undef ENTRY
+#define ENTRY(name) \
+ .globl name; \
+ .align 3; \
+ .ent name, 0; \
+ name##: \
+ .frame sp, 0, ra
+
#include <mach/alpha/asm.h>
#undef at
#define at 28