summaryrefslogtreecommitdiff
path: root/sys/src/libmach/sym.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-07-30 19:11:16 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2012-07-30 19:11:16 +0200
commit4f33c88a51587681b7be1ae57cfbc43b627c6bc4 (patch)
tree25560404dc80007e5dc268811242c9071f6a1017 /sys/src/libmach/sym.c
parentfcc5e75d07e5bc6cb3ddac6d9a437e7ec62d0d95 (diff)
import updated compilers from sources
Diffstat (limited to 'sys/src/libmach/sym.c')
-rw-r--r--sys/src/libmach/sym.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/libmach/sym.c b/sys/src/libmach/sym.c
index c80793d94..ab647e621 100644
--- a/sys/src/libmach/sym.c
+++ b/sys/src/libmach/sym.c
@@ -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);