diff options
| author | manu <manu@NetBSD.org> | 2002-01-07 22:07:37 +0000 |
|---|---|---|
| committer | manu <manu@NetBSD.org> | 2002-01-07 22:07:37 +0000 |
| commit | 4398be0cfc243f86d8a1d2c966a2aaa87f150fc0 (patch) | |
| tree | 51a9afaecf8cf0835592b32823e7e06835781f96 | |
| parent | 0b98511d4a62f198ae255fae620933971525f4c8 (diff) | |
Added code to correctly match and launch o32 and n32 IRIX binaires (note that
there is n support yet in the kernel for running n32 binaries)
| -rw-r--r-- | sys/kern/exec_conf.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/sys/kern/exec_conf.c b/sys/kern/exec_conf.c index c1f65b382c1..0c9b219d708 100644 --- a/sys/kern/exec_conf.c +++ b/sys/kern/exec_conf.c @@ -1,4 +1,4 @@ -/* $NetBSD: exec_conf.c,v 1.64 2002/01/04 06:47:46 thorpej Exp $ */ +/* $NetBSD: exec_conf.c,v 1.65 2002/01/07 22:07:37 manu Exp $ */ /* * Copyright (c) 1993, 1994 Christopher G. Demetriou @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: exec_conf.c,v 1.64 2002/01/04 06:47:46 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: exec_conf.c,v 1.65 2002/01/07 22:07:37 manu Exp $"); #include "opt_execfmt.h" #include "opt_compat_freebsd.h" @@ -314,12 +314,27 @@ const struct execsw execsw_builtin[] = { coredump_elf32 }, #endif -#ifdef COMPAT_IRIX - /* IRIX Elf32 (o32 ABI) */ +#ifdef COMPAT_IRIX + /* + * n32 ABI must be before o32 ABI + * See comments in syssrc/sys/compat/irix/irix_exec_elf32.c + */ + /* IRIX Elf32 n32 ABI */ + { sizeof (Elf32_Ehdr), + exec_elf32_makecmds, + { ELF32NAME2(irix,probe_n32) }, + &emul_irix_n32, + EXECSW_PRIO_ANY, + IRIX_AUX_ARGSIZ, + irix_elf32_copyargs, + NULL, + coredump_netbsd }, + + /* IRIX Elf32 o32 ABI */ { sizeof (Elf32_Ehdr), exec_elf32_makecmds, - { ELF32NAME2(irix,probe) }, - &emul_irix, + { ELF32NAME2(irix,probe_o32) }, + &emul_irix_o32, EXECSW_PRIO_ANY, IRIX_AUX_ARGSIZ, irix_elf32_copyargs, |
