From 4fca3953210ded1ff08e0c1681c027b620c206b2 Mon Sep 17 00:00:00 2001 From: Anthony Martin Date: Wed, 11 May 2011 23:52:05 -0400 Subject: ld: fix alignment of rodata section on Plan 9 This was causing a panic in the reflect package since type.* pointers with their low bits set are assumed to have certain flags set that disallow the use of reflection. Thanks to Pavel and Taru for help tracking down this bug. R=rsc, paulzhol, taruti CC=golang-dev https://golang.org/cl/4511041 --- src/cmd/ld/data.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/cmd/ld/data.c') diff --git a/src/cmd/ld/data.c b/src/cmd/ld/data.c index 0cb2b2138f..f6f71305fd 100644 --- a/src/cmd/ld/data.c +++ b/src/cmd/ld/data.c @@ -899,10 +899,8 @@ address(void) segdata.fileoff = va - segtext.vaddr + segtext.fileoff; if(HEADTYPE == Hwindows) segdata.fileoff = segtext.fileoff + rnd(segtext.len, PEFILEALIGN); - if(HEADTYPE == Hplan9x32) { - segdata.vaddr = va = rnd(va, 4096); + if(HEADTYPE == Hplan9x32) segdata.fileoff = segtext.fileoff + segtext.filelen; - } for(s=segdata.sect; s != nil; s=s->next) { s->vaddr = va; va += s->len; -- cgit v1.3-5-g9baa