From: Shawn Walker-Salas Date: Thu, 7 Apr 2016 22:26:57 +0000 (-0700) Subject: cmd/link: external linking can fail on Solaris 11.2+ X-Git-Tag: go1.7beta1~771 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e79fef8e55f8a893c65f41566bbec10339d45dec;p=gostls13.git cmd/link: external linking can fail on Solaris 11.2+ Workaround external linking issues encountered on Solaris 11.2+ due to the go.o object file being created with a NULL STT_FILE symtab entry by using a placeholder name. Fixes #14957 Change-Id: I89c501b4c548469f3c878151947d35588057982b Reviewed-on: https://go-review.googlesource.com/21636 Reviewed-by: David Crawshaw --- diff --git a/src/cmd/link/internal/ld/symtab.go b/src/cmd/link/internal/ld/symtab.go index c7c2733507..ae0b17c259 100644 --- a/src/cmd/link/internal/ld/symtab.go +++ b/src/cmd/link/internal/ld/symtab.go @@ -198,7 +198,9 @@ func Asmelfsym() { // Some linkers will add a FILE sym if one is not present. // Avoid having the working directory inserted into the symbol table. - putelfsyment(0, 0, 0, STB_LOCAL<<4|STT_FILE, SHN_ABS, 0) + // It is added with a name to avoid problems with external linking + // encountered on some versions of Solaris. See issue #14957. + putelfsyment(putelfstr("go.go"), 0, 0, STB_LOCAL<<4|STT_FILE, SHN_ABS, 0) numelfsym++ elfbind = STB_LOCAL