mirror of
https://github.com/golang/go
synced 2024-11-17 22:44:41 -07:00
Revert "cmd/link: prefix syms with "_" on external darwin links"
This reverts CL 194381 Reason for revert: break tests like add2line. Change-Id: I9e858c7ada340a842bd0cad719616ad30fae4aaa Reviewed-on: https://go-review.googlesource.com/c/go/+/195137 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
6c6ad3086e
commit
03f63654c4
@ -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)
|
|
||||||
}
|
|
@ -869,7 +869,6 @@ func machosymtab(ctxt *Link) {
|
|||||||
symtab.AddUint32(ctxt.Arch, uint32(symstr.Size))
|
symtab.AddUint32(ctxt.Arch, uint32(symstr.Size))
|
||||||
|
|
||||||
export := machoShouldExport(ctxt, s)
|
export := machoShouldExport(ctxt, s)
|
||||||
isGoSymbol := strings.Contains(s.Extname(), ".")
|
|
||||||
|
|
||||||
// In normal buildmodes, only add _ to C symbols, as
|
// In normal buildmodes, only add _ to C symbols, as
|
||||||
// Go symbols have dot in the name.
|
// Go symbols have dot in the name.
|
||||||
@ -878,8 +877,8 @@ func machosymtab(ctxt *Link) {
|
|||||||
// symbols like crosscall2 are in pclntab and end up
|
// symbols like crosscall2 are in pclntab and end up
|
||||||
// pointing at the host binary, breaking unwinding.
|
// pointing at the host binary, breaking unwinding.
|
||||||
// See Issue #18190.
|
// See Issue #18190.
|
||||||
cexport := !isGoSymbol && (ctxt.BuildMode != BuildModePlugin || onlycsymbol(s))
|
cexport := !strings.Contains(s.Extname(), ".") && (ctxt.BuildMode != BuildModePlugin || onlycsymbol(s))
|
||||||
if cexport || export || isGoSymbol {
|
if cexport || export {
|
||||||
symstr.AddUint8('_')
|
symstr.AddUint8('_')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user