summaryrefslogtreecommitdiff
path: root/sys/compat/linux/common/linux_exec_elf32.c
diff options
context:
space:
mode:
authorerh <erh@NetBSD.org>2000-11-17 03:55:17 +0000
committererh <erh@NetBSD.org>2000-11-17 03:55:17 +0000
commitf96aee80d6a08c8a1f75576e0848c65847d219f9 (patch)
tree4e5cdfc02abb5d5c57ee951b82cdf86c957c6cae /sys/compat/linux/common/linux_exec_elf32.c
parentbe9b3eeabc949d3589e4d6b3d04b53b4a8a2ccca (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.c8
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