diff options
| author | erh <erh@NetBSD.org> | 2000-11-17 03:55:17 +0000 |
|---|---|---|
| committer | erh <erh@NetBSD.org> | 2000-11-17 03:55:17 +0000 |
| commit | f96aee80d6a08c8a1f75576e0848c65847d219f9 (patch) | |
| tree | 4e5cdfc02abb5d5c57ee951b82cdf86c957c6cae /sys/compat/linux/common/linux_exec_elf32.c | |
| parent | be9b3eeabc949d3589e4d6b3d04b53b4a8a2ccca (diff) | |
Make the linux compatibilty code work on the alpha. (horay!) (at last!)
Two main changes:
Create a linux_elf64_copyargs that uses the linux specific LinuxAuxInfo
structure. This is only used on the alpha. i386 and m68k use the
standard elf copyargs function.
Since linux's approach to binary compatibilty is to look as much
like osf1 as possible, add all the osf1 syscalls that we have
implemented to the linux syscall table. This includes get/setsysinfo,
ported from FreeBSD.
In order for linux compat to work you must have COMPAT_OSF1, COMPAT_43,
COMPAT_09, COMPAT_12 and COMPAT_13 on also.
Diffstat (limited to 'sys/compat/linux/common/linux_exec_elf32.c')
| -rw-r--r-- | sys/compat/linux/common/linux_exec_elf32.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/compat/linux/common/linux_exec_elf32.c b/sys/compat/linux/common/linux_exec_elf32.c index e975abbf443..d9a7b8c278e 100644 --- a/sys/compat/linux/common/linux_exec_elf32.c +++ b/sys/compat/linux/common/linux_exec_elf32.c @@ -1,4 +1,4 @@ -/* $NetBSD: linux_exec_elf32.c,v 1.46 2000/11/13 21:32:18 jdolecek Exp $ */ +/* $NetBSD: linux_exec_elf32.c,v 1.47 2000/11/17 03:55:18 erh Exp $ */ /*- * Copyright (c) 1995, 1998 The NetBSD Foundation, Inc. @@ -78,9 +78,6 @@ static int ELFNAME2(linux,gcc_signature) __P((struct proc *p, struct exec_package *, Elf_Ehdr *)); #endif -#define LINUX_ELF_AUX_ARGSIZ howmany(sizeof(AuxInfo) * 8, sizeof(char *)) - - extern char linux_sigcode[], linux_esigcode[]; extern struct sysent linux_sysent[]; extern const char * const linux_syscallnames[]; @@ -94,13 +91,12 @@ struct emul ELFNAMEEND(emul_linux) = { linux_sysent, linux_syscallnames, LINUX_ELF_AUX_ARGSIZ, - ELFNAME(copyargs), + LINUX_COPYARGS_FUNCTION, linux_setregs, linux_sigcode, linux_esigcode, }; - #ifdef LINUX_GCC_SIGNATURE /* * Take advantage of the fact that all the linux binaries are compiled |
