mirror of
https://github.com/golang/go
synced 2024-11-19 21:04:43 -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:
parent
ad102e143c
commit
f0ab14647a
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user