]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "cmd/link: prefix syms with "_" on darwin links"
authorJeremy Faller <jeremy@golang.org>
Tue, 17 Sep 2019 21:45:28 +0000 (21:45 +0000)
committerJeremy Faller <jeremy@golang.org>
Tue, 17 Sep 2019 22:04:57 +0000 (22:04 +0000)
This reverts commit 06e5529eceae35bb26b51f2430c2c9425149ede2.

Reason for revert: darwin_386 is unhappy. (Almost as unhappy as I am.)

https://build.golang.org/log/292c90a4ef1c93597b865ab8513b66a95d93d022

Change-Id: I690566ce1d8212317fc3dc349ad0d4d5a2bb58eb
Reviewed-on: https://go-review.googlesource.com/c/go/+/196033
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>

src/cmd/link/internal/ld/issue33808_test.go [deleted file]
src/cmd/link/internal/ld/macho.go
src/debug/macho/file.go

diff --git a/src/cmd/link/internal/ld/issue33808_test.go b/src/cmd/link/internal/ld/issue33808_test.go
deleted file mode 100644 (file)
index df928a7..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2019 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ld
-
-import (
-       "internal/testenv"
-       "io/ioutil"
-       "os"
-       "runtime"
-       "strings"
-       "testing"
-)
-
-const prog = `
-package main
-
-import "log"
-
-func main() {
-       log.Fatalf("HERE")
-}
-`
-
-func TestIssue33808(t *testing.T) {
-       if runtime.GOOS != "darwin" {
-               return
-       }
-       testenv.MustHaveGoBuild(t)
-
-       dir, err := ioutil.TempDir("", "TestIssue33808")
-       if err != nil {
-               t.Fatalf("could not create directory: %v", err)
-       }
-       defer os.RemoveAll(dir)
-
-       f := gobuild(t, dir, prog, "-ldflags=-linkmode=external")
-       f.Close()
-
-       syms, err := f.Symbols()
-       if err != nil {
-               t.Fatalf("Error reading symbols: %v", err)
-       }
-
-       name := "log.Fatalf"
-       for _, sym := range syms {
-               if strings.Contains(sym.Name, name) {
-                       return
-               }
-       }
-       t.Fatalf("Didn't find %v", name)
-}
index 7453f37c62fec81c459eaa43cd24bed5e96a9b1f..02e133e31d45952ee63875893effbe13a6a7d216 100644 (file)
@@ -869,7 +869,6 @@ func machosymtab(ctxt *Link) {
                symtab.AddUint32(ctxt.Arch, uint32(symstr.Size))
 
                export := machoShouldExport(ctxt, s)
-               isGoSymbol := strings.Contains(s.Extname(), ".")
 
                // In normal buildmodes, only add _ to C symbols, as
                // Go symbols have dot in the name.
@@ -878,8 +877,8 @@ func machosymtab(ctxt *Link) {
                // symbols like crosscall2 are in pclntab and end up
                // pointing at the host binary, breaking unwinding.
                // See Issue #18190.
-               cexport := !isGoSymbol && (ctxt.BuildMode != BuildModePlugin || onlycsymbol(s))
-               if cexport || export || isGoSymbol {
+               cexport := !strings.Contains(s.Extname(), ".") && (ctxt.BuildMode != BuildModePlugin || onlycsymbol(s))
+               if cexport || export {
                        symstr.AddUint8('_')
                }
 
index 085b0c8219bad436e5438e3aae5190dc2510583b..16708e5247fdfec4155779785a934528d5c1a08c 100644 (file)
@@ -473,12 +473,7 @@ func (f *File) parseSymtab(symdat, strtab, cmddat []byte, hdr *SymtabCmd, offset
                if n.Name >= uint32(len(strtab)) {
                        return nil, &FormatError{offset, "invalid name in symbol table", n.Name}
                }
-               // We add "_" to Go symbols. Strip it here. See issue 33808.
-               name := cstring(strtab[n.Name:])
-               if strings.Contains(name, ".") && name[0] == '_' {
-                       name = name[1:]
-               }
-               sym.Name = name
+               sym.Name = cstring(strtab[n.Name:])
                sym.Type = n.Type
                sym.Sect = n.Sect
                sym.Desc = n.Desc