diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/alpha/dl-machine.h | 4 | ||||
-rw-r--r-- | sysdeps/mach/alpha/syscall.S | 10 | ||||
-rw-r--r-- | sysdeps/mach/alpha/sysdep.h | 9 |
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 |