From 4073be88f426180030971d0b06a7598ec46a0583 Mon Sep 17 00:00:00 2001 From: Dave Cheney Date: Tue, 21 Oct 2014 23:42:13 +0000 Subject: [PATCH] undo CL 156430044 / 5d69cad4faaf MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Partial undo, changes to ldelf.c retained. Some platforms are still not working even with the integrated assembler disabled, will have to find another solution. ««« original CL description cmd/cgo: disable clang's integrated assembler Fixes #8348. Clang's internal assembler (introduced by default in clang 3.4) understands the .arch directive, but doesn't change the default value of -march. This causes the build to fail when we use BLX (armv5 and above) when clang is compiled for the default armv4t architecture (which appears to be the default on all the distros I've used). This is probably a clang bug, so work around it for the time being by disabling the integrated assembler when compiling the cgo assembly shim. This CL also includes a small change to ldelf.c which was required as clang 3.4 and above generate more weird symtab entries. LGTM=iant R=golang-codereviews, iant CC=golang-codereviews https://golang.org/cl/156430044 »»» LGTM=minux R=iant, minux CC=golang-codereviews https://golang.org/cl/162880044 --- src/cmd/cgo/gcc.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index e45839e8a4..d77d56c22a 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -745,13 +745,7 @@ func (p *Package) gccMachine() []string { case "386": return []string{"-m32"} case "arm": - args := []string{"-marm"} // not thumb - if strings.Contains(p.gccBaseCmd()[0], "clang") { - // The clang integrated assembler understands the .arch directive - // but does not appear to honor it, so disable it. Issue 8348. - args = append(args, "-no-integrated-as") - } - return args + return []string{"-marm"} // not thumb } return nil } -- 2.50.0