diff options
| author | Anthony Martin <ality@pbrane.org> | 2011-05-11 23:52:05 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2011-05-11 23:52:05 -0400 |
| commit | 4fca3953210ded1ff08e0c1681c027b620c206b2 (patch) | |
| tree | 8db8fb3fd795bba56d25c8485ea06aa38a598860 /src/cmd/ld | |
| parent | f58d911698e8e4690675fe276dac4795c39a9dfe (diff) | |
| download | go-4fca3953210ded1ff08e0c1681c027b620c206b2.tar.xz | |
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
Diffstat (limited to 'src/cmd/ld')
| -rw-r--r-- | src/cmd/ld/data.c | 4 |
1 files changed, 1 insertions, 3 deletions
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; |
