Handle kernel load addresses better. [jmk] --rw-rw-r-- M 1428987 glenda sys 2085 Jan 28 12:56 sys/src/libmach/2.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/2.c:76,82 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/2.c:76,82 0, /* value */ 0x2000, /* page size */ 0x80000000ULL, /* kernel base */ - 0, /* kernel text mask */ + 0x80000000ULL, /* kernel text mask */ 0x7FFFFFFFULL, /* user stack top */ 2, /* quantization of pc */ 4, /* szaddr */ [jmk] --rw-rw-r-- M 1428987 glenda sys 1564 Jan 28 12:56 sys/src/libmach/5.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/5.c:54,60 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/5.c:54,60 0, /* static base register value */ 0x1000, /* page size */ 0xC0000000ULL, /* kernel base */ - 0, /* kernel text mask */ + 0xC0000000ULL, /* kernel text mask */ 0x7FFFFFFFULL, /* user stack top */ 4, /* quantization of pc */ 4, /* szaddr */ [jmk] --rw-rw-r-- M 1428987 jmk sys 3482 Jan 28 12:56 sys/src/libmach/6.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/6.c:107,113 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/6.c:107,113 0, /* static base register value */ 0x1000, /* page size */ 0xFFFFFFFF80110000ULL, /* kernel base */ - 0, /* kernel text mask */ + 0xFFFF800000000000ULL, /* kernel text mask */ 0x00007FFFFFFFF000ULL, /* user stack top */ 1, /* quantization of pc */ 8, /* szaddr */ [jmk] --rw-rw-r-- M 1428987 glenda sys 3310 Jan 28 12:57 sys/src/libmach/7.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/7.c:104,110 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/7.c:104,110 0, /* static base register value */ 0x2000, /* page size */ 0x80000000ULL, /* kernel base */ - 0, /* kernel text mask */ + 0xF0000000ULL, /* kernel text mask */ 0x7FFFFFFFULL, /* user stack top */ 4, /* quantization of pc */ 4, /* szaddr */ [jmk] --rw-rw-r-- M 1428987 glenda sys 2071 Jan 28 12:57 sys/src/libmach/8.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/8.c:69,75 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/8.c:69,75 0, /* static base register value */ 0x1000, /* page size */ 0x80100000ULL, /* kernel base */ - 0, /* kernel text mask */ + 0xF0000000ULL, /* kernel text mask */ 0x7FFFFFFFULL, /* user stack top */ 1, /* quantization of pc */ 4, /* szaddr */ [jmk] --rw-rw-r-- M 1428987 glenda sys 16006 Jan 28 12:56 sys/src/libmach/executable.c [diffs elided - too long] [diff -c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/executable.c /n/sourcesdump/2006/0129/plan9/sys/src/libmach/executable.c] [jmk] --rw-rw-r-- M 1428987 glenda sys 3381 Jan 28 12:57 sys/src/libmach/k.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/k.c:108,114 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/k.c:108,114 0, /* value */ 0x1000, /* page size */ 0xE0000000ULL, /* kernel base */ - 0, /* kernel text mask */ + 0xE0000000ULL, /* kernel text mask */ 0x7FFFFFFFULL, /* user stack top */ 4, /* quantization of pc */ 4, /* szaddr */ [jmk] --rw-rw-r-- M 1428987 glenda sys 26745 Jan 28 12:56 sys/src/libmach/sym.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/sym.c:103,109 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/sym.c:103,109 nsym = 0; size = 0; for(p = symbols; size < fp->symsz; p++, nsym++) { - if(fp->magic & HDR_MAGIC){ + if(fp->_magic && (fp->magic & HDR_MAGIC)){ svalsz = 8; if(Bread(&b, &vl, 8) != 8) return symerrmsg(8, "symbol"); [jmk] --rw-rw-r-- M 1428987 jmk sys 3447 Jan 28 12:56 sys/src/libmach/u.c /n/sourcesdump/2006/0128/plan9/sys/src/libmach/u.c:109,115 - /n/sourcesdump/2006/0129/plan9/sys/src/libmach/u.c:109,115 0, /* value */ 0x2000, /* page size */ 0x80000000ULL, /* kernel base */ - 0, /* kernel text mask */ + 0x80000000ULL, /* kernel text mask */ 0x7FFFFFFFULL, /* user stack top */ 4, /* quantization of pc */ 4, /* szaddr */