]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/libmach/sym.c
kernel: avoid selecting the boot process in killbig()
[plan9front.git] / sys / src / libmach / sym.c
index c80793d943586c93ffe8347410bfa6f4f43036c3..ab647e621b3529cefc89ce57644c669cedd7adfa 100644 (file)
@@ -102,15 +102,17 @@ syminit(int fd, Fhdr *fp)
        Bseek(&b, fp->symoff, 0);
        nsym = 0;
        size = 0;
+       if((fp->_magic && (fp->magic & HDR_MAGIC)) || mach->szaddr == 8)
+               svalsz = 8;
+       else
+               svalsz = 4;
        for(p = symbols; size < fp->symsz; p++, nsym++) {
-               if(fp->_magic && (fp->magic & HDR_MAGIC)){
-                       svalsz = 8;
+               if(svalsz == 8){
                        if(Bread(&b, &vl, 8) != 8)
                                return symerrmsg(8, "symbol");
                        p->value = beswav(vl);
                }
                else{
-                       svalsz = 4;
                        if(Bread(&b, &l, 4) != 4)
                                return symerrmsg(4, "symbol");
                        p->value = (u32int)beswal(l);