This commit is contained in:
Ertuğrul Erata
2017-08-21 13:10:28 +03:00
parent 0efb7f1837
commit a5d4521cf1
3 changed files with 77 additions and 4 deletions
+2 -2
View File
@@ -16,12 +16,12 @@ def build():
shelltools.export("go_platform","linux-amd64")
shelltools.export("go_linker","/lib/ld-linux-x86-64.so.2")
shelltools.export("GOROOT", "%s/go-go1.7.5" % get.workDIR()) #0
shelltools.export("GOROOT", "%s/go-go1.7.6" % get.workDIR()) #0
shelltools.export("GOBIN", "$GOROOT/bin") #1
shelltools.export("GOPATH", "%s" % get.workDIR())
shelltools.export("GOROOT_FINAL", "/usr/lib/go")
shelltools.export("GOROOT_BOOTSTRAP", "%s/go-go1.7.5/go-linux-amd64-bootstrap" % get.workDIR()) #2
shelltools.export("GOROOT_BOOTSTRAP", "%s/go-go1.7.6/go-linux-amd64-bootstrap" % get.workDIR()) #2
shelltools.export("GOOS","linux")
shelltools.export("GOARCH","amd64")
@@ -0,0 +1,63 @@
Upstream: yes
From 45f759500ec80a1362deecd3693cbe44a354bf98 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <iant@golang.org>
Date: Mon, 28 Nov 2016 16:19:03 -0800
Subject: [PATCH] cmd/link: handle STT_COMMON symbols
Tested by running
GOTRACEBACK=2 CGO_CFLAGS="-Wa,--elf-stt-common=yes" go test -ldflags=-linkmode=internal
in misc/cgo/test. That failed before this CL, succeeded after.
I don't think it's worth doing that as a regular test, though,
especially since only recent versions of the GNU binutils support the
--elf-stt-common option.
Fixes #18088.
Change-Id: I893d86181faee217b1504c054b0ed3f7c8d977d3
Reviewed-on: https://go-review.googlesource.com/33653
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
---
src/cmd/link/internal/ld/ldelf.go | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/cmd/link/internal/ld/ldelf.go b/src/cmd/link/internal/ld/ldelf.go
index d700aa6..00e8f37 100644
--- a/src/cmd/link/internal/ld/ldelf.go
+++ b/src/cmd/link/internal/ld/ldelf.go
@@ -137,6 +137,8 @@ const (
ElfSymTypeFunc = 2
ElfSymTypeSection = 3
ElfSymTypeFile = 4
+ ElfSymTypeCommon = 5
+ ElfSymTypeTLS = 6
)
const (
@@ -751,10 +753,10 @@ func ldelf(ctxt *Link, f *bio.Reader, pkg string, length int64, pn string) {
goto bad
}
symbols[i] = sym.sym
- if sym.type_ != ElfSymTypeFunc && sym.type_ != ElfSymTypeObject && sym.type_ != ElfSymTypeNone {
+ if sym.type_ != ElfSymTypeFunc && sym.type_ != ElfSymTypeObject && sym.type_ != ElfSymTypeNone && sym.type_ != ElfSymTypeCommon {
continue
}
- if sym.shndx == ElfSymShnCommon {
+ if sym.shndx == ElfSymShnCommon || sym.type_ == ElfSymTypeCommon {
s = sym.sym
if uint64(s.Size) < sym.size {
s.Size = int64(sym.size)
@@ -1035,7 +1037,7 @@ func readelfsym(ctxt *Link, elfobj *ElfObj, i int, sym *ElfSym, needSym int, loc
case ElfSymTypeSection:
s = elfobj.sect[sym.shndx].sym
- case ElfSymTypeObject, ElfSymTypeFunc, ElfSymTypeNone:
+ case ElfSymTypeObject, ElfSymTypeFunc, ElfSymTypeNone, ElfSymTypeCommon:
switch sym.bind {
case ElfSymBindGlobal:
if needSym != 0 {
+12 -2
View File
@@ -12,14 +12,17 @@
<IsA>app:console</IsA>
<Summary>Compiler and tools for the Go programming language from Google</Summary>
<Description>Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.</Description>
<Archive sha1sum="f603ac63fe935df29cb15f4a9db62622c3ca3de0" type="targz">https://github.com/golang/go/archive/go1.7.5.tar.gz</Archive>
<Archive sha1sum="97058ade5ad63119f78aa5d1717b1ac26c9f5f7b" type="tarbz2" target="go-go1.7.5">https://dev.gentoo.org/~williamh/dist/go-linux-amd64-bootstrap.tbz</Archive>
<Archive sha1sum="3591e9c184d75f3abdae6954796c779d1b2265a1" type="targz">https://github.com/golang/go/archive/go1.7.6.tar.gz</Archive>
<Archive sha1sum="97058ade5ad63119f78aa5d1717b1ac26c9f5f7b" type="tarbz2" target="go-go1.7.6">https://dev.gentoo.org/~williamh/dist/go-linux-amd64-bootstrap.tbz</Archive>
<!--BuildDependencies>
<Dependency>perl</Dependency>
<Dependency>gawk</Dependency>
<Dependency>mercurial</Dependency>
<Dependency>git</Dependency>
</BuildDependencies-->
<Patches>
<Patch>45f759500ec80a1362deecd3693cbe44a354bf98.patch</Patch>
</Patches>
</Source>
<Package>
<Name>golang</Name>
@@ -38,6 +41,13 @@
</Package>
<History>
<Update release="6">
<Date>2017-08-21</Date>
<Version>1.7.6</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="5">
<Date>2017-03-20</Date>
<Version>1.7.5</Version>