From f0ab14647ad3c61cd13ffd169ef4a64275e87a21 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 9 Mar 2011 11:18:29 -0500 Subject: [PATCH] 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 --- src/cmd/ld/data.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/cmd/ld/data.c b/src/cmd/ld/data.c index 4066cd8143..848c3637d3 100644 --- a/src/cmd/ld/data.c +++ b/src/cmd/ld/data.c @@ -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; } -- 2.50.0