From: Shenghou Ma Date: Mon, 20 Aug 2012 16:34:06 +0000 (+0800) Subject: cmd/ld: skip R_*_NONE relocations, fix Linux/386 build again X-Git-Tag: go1.1rc2~2619 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b1532344ef58fe644c85bbc6e268102528d39c61;p=gostls13.git cmd/ld: skip R_*_NONE relocations, fix Linux/386 build again The last fix was wrong w.r.t C's operator precedence, and it also failed to really skip the NONE relocation. The offending R_386_NONE relocation is a absolute relocation in section .eh_frame. TBR=golang-dev CC=golang-dev https://golang.org/cl/6463058 --- diff --git a/src/cmd/ld/ldelf.c b/src/cmd/ld/ldelf.c index 6376d9370e..f6da33341c 100644 --- a/src/cmd/ld/ldelf.c +++ b/src/cmd/ld/ldelf.c @@ -658,8 +658,11 @@ ldelf(Biobuf *f, char *pkg, int64 len, char *pn) p += 4; } } - if(info & 0xffffffff == 0) // R_*_NONE relocation + if((info & 0xffffffff) == 0) { // skip R_*_NONE relocation + j--; + n--; continue; + } if((info >> 32) == 0) { // absolute relocation, don't bother reading the null symbol rp->sym = S; } else {