1
0
mirror of https://github.com/golang/go synced 2024-11-19 23:24:45 -07:00

ld: preserve symbol sizes during data layout

Fixes the broken linux/amd64 build.
The symbol table, itself a symbol, was having
its size rounded up to the nearest word boundary.
If the rounding add >7 zero bytes then it confused
the debug/gosym symbol table parser.  So you've
got a 1/8 chance to hit the bug on an amd64 system.

Just started in the recent change because I fixed
the rounding to round to word boundary instead
of to 4-byte boundary.

R=r
CC=golang-dev
https://golang.org/cl/4241056
This commit is contained in:
Russ Cox 2011-03-09 11:18:29 -05:00
parent ad102e143c
commit f0ab14647a

View File

@ -788,7 +788,6 @@ dodata(void)
for(; s != nil && s->type < SDATA; s = s->next) {
s->type = SRODATA;
t = rnd(s->size, PtrSize);
s->size = t;
s->value = datsize;
datsize += t;
}
@ -835,7 +834,6 @@ dodata(void)
datsize = rnd(datsize, 4);
else
datsize = rnd(datsize, 8);
s->size = t;
s->value = datsize;
datsize += t;
}