diff options
| author | manu <manu@NetBSD.org> | 2003-10-20 22:42:40 +0000 |
|---|---|---|
| committer | manu <manu@NetBSD.org> | 2003-10-20 22:42:40 +0000 |
| commit | a591d65ec78ca2a2b216cd5751df931965ab4ace (patch) | |
| tree | 28d839485f75703942697cd961706a9e917e1d96 /sys/kern/exec_macho.c | |
| parent | 36a2ba5ccd19f7a5449bf208ac97447de907fac3 (diff) | |
One more section type in the Mach-O format. Now /usr/X11R6/bin/quartz-wm links
and run (it aborts because the dock is not launched).
Diffstat (limited to 'sys/kern/exec_macho.c')
| -rw-r--r-- | sys/kern/exec_macho.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/kern/exec_macho.c b/sys/kern/exec_macho.c index 9c6fb889ae8..4e49b3fb4a9 100644 --- a/sys/kern/exec_macho.c +++ b/sys/kern/exec_macho.c @@ -1,4 +1,4 @@ -/* $NetBSD: exec_macho.c,v 1.28 2003/10/19 07:52:22 manu Exp $ */ +/* $NetBSD: exec_macho.c,v 1.29 2003/10/20 22:42:40 manu Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: exec_macho.c,v 1.28 2003/10/19 07:52:22 manu Exp $"); +__KERNEL_RCSID(0, "$NetBSD: exec_macho.c,v 1.29 2003/10/20 22:42:40 manu Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -207,6 +207,7 @@ exec_macho_load_segment(epp, vp, foff, ls, type) strcmp(ls->segname, "__LOCK") != 0 && strcmp(ls->segname, "__OBJC") != 0 && strcmp(ls->segname, "__CGSERVER") != 0 && + strcmp(ls->segname, "__IMAGE") != 0 && strcmp(ls->segname, "__LINKEDIT") != 0) { DPRINTF(("Unknown exec_macho segment %s\n", ls->segname)); return ENOEXEC; @@ -218,11 +219,9 @@ exec_macho_load_segment(epp, vp, foff, ls, type) emea->macho_hdr = (struct exec_macho_object_header *)addr; } - if (strcmp(ls->segname, "__DATA") == 0) { - epp->ep_daddr = addr; - epp->ep_dsize = round_page(ls->vmsize); - } - if ((strcmp(ls->segname, "__OBJC") == 0) || + if ((strcmp(ls->segname, "__DATA") == 0) || + (strcmp(ls->segname, "__OBJC") == 0) || + (strcmp(ls->segname, "__IMAGE") == 0) || (strcmp(ls->segname, "__CGSERVER") == 0)) { epp->ep_daddr = addr; epp->ep_dsize = round_page(ls->vmsize); |
