Comment 8 for bug 1200255

Revision history for this message
Dave Cheney (dave-cheney) wrote : Re: [Bug 1200255] Re: go get ... fails with SIGILL on armhf

To quote myself: "Please do not strip Go binaries, it is not
supported, not tested, is often broken, and doesn't do what you want"

To unpack that a bit

* not supported, as in, we don't support it, and recommend against it when asked
* not tested, we don't test stripped binaries as part of the build CI process
* is often broken, stripping a go binary will produce anywhere from
no, to subtle, to outright execution failure, see above
* doesn't do what you want, we have a flag called -g, but the
information it stores in the elf sections is a superset of what strip
thinks it is removing, in short, strip does not strip out the debug
data, we hide it too well.

On Tue, Jul 16, 2013 at 8:53 AM, David Cheney
<email address hidden> wrote:
> We are stripping the binaries.
>
> alarm(~) % file ./go.1
> ./go.1: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
> dynamically linked (uses shared libs), stripped
>
> That is why it falis.
>
> On Tue, Jul 16, 2013 at 12:46 AM, Robie Basak
> <email address hidden> wrote:
>> go binary from saucy attached (/usr/bin/go from 2:1.1.1-0ubuntu1). I
>> couldn't get it to give me a core file - it seems to trap SEGV with
>> golang-specific handling. Any hints?
>>
>> ** Attachment added: "go"
>> https://bugs.launchpad.net/ubuntu/+source/golang/+bug/1200255/+attachment/3737603/+files/go
>>
>> --
>> You received this bug notification because you are subscribed to the bug
>> report.
>> https://bugs.launchpad.net/bugs/1200255
>>
>> Title:
>> go get ... fails with SIGILL on armhf
>>
>> Status in “golang” package in Ubuntu:
>> Confirmed
>>
>> Bug description:
>> jamespage@winehouse:~/go$ go get -v launchpad.net/juju-core/...
>> SIGILL: illegal instruction
>> PC=0x6854e
>>
>> net._C2func_getaddrinfo(0xb6935138, 0x0, 0x10723300, 0x106f3190, 0xb6a7509c, ...)
>> net/_obj/_cgo_defun.c:43 +0x30
>> net.cgoLookupIPCNAME(0x10723200, 0x12, 0x0, 0x0, 0x0, ...)
>> net/_obj/_cgo_gotypes.go:180 +0xfc
>> net.cgoLookupIP(0x10723200, 0x12, 0x0, 0x0, 0x0, ...)
>> net/_obj/_cgo_gotypes.go:226 +0x54
>> net.cgoLookupHost(0x10723200, 0x12, 0x0, 0x0, 0x0, ...)
>> net/_obj/_cgo_gotypes.go:104 +0x54
>> net.lookupHost(0x10723200, 0x12, 0x0, 0x0, 0x0, ...)
>> /usr/lib/go/src/pkg/net/lookup_unix.go:56 +0x4c
>> net.lookupHostDeadline(0x10723200, 0x12, 0x0, 0x0, 0x0, ...)
>> /usr/lib/go/src/pkg/net/lookup.go:19 +0xf4
>> net.resolveInternetAddr(0x3044f0, 0x3, 0x10723200, 0x16, 0x0, ...)
>> /usr/lib/go/src/pkg/net/ipsock.go:210 +0x344
>> net.resolveAddr(0x309890, 0x4, 0x3044f0, 0x3, 0x10723200, ...)
>> /usr/lib/go/src/pkg/net/dial.go:97 +0x3b0
>> net.resolveAndDial(0x3044f0, 0x3, 0x10723200, 0x16, 0x0, ...)
>> /usr/lib/go/src/pkg/net/fd_unix.go:45 +0x74
>> net.(*Dialer).Dial(0xb6a40e70, 0x3044f0, 0x3, 0x10723200, 0x16, ...)
>> /usr/lib/go/src/pkg/net/dial.go:146 +0xa4
>> net.Dial(0x3044f0, 0x3, 0x10723200, 0x16, 0x1197e0, ...)
>> /usr/lib/go/src/pkg/net/dial.go:131 +0x60
>> net/http.(*Transport).dial(0x1069b4e0, 0x3044f0, 0x3, 0x10723200, 0x16, ...)
>> /usr/lib/go/src/pkg/net/http/transport.go:384 +0xb0
>> net/http.(*Transport).dialConn(0x1069b4e0, 0x10723220, 0x106f30f0, 0x2, 0xb6a7500c, ...)
>> /usr/lib/go/src/pkg/net/http/transport.go:427 +0x68
>> net/http.func·012()
>> /usr/lib/go/src/pkg/net/http/transport.go:402 +0x40
>> created by net/http.(*Transport).getConn
>> /usr/lib/go/src/pkg/net/http/transport.go:404 +0x114
>>
>> goroutine 1 [select]:
>> net/http.(*Transport).getConn(0x1069b4e0, 0x10723220, 0x10723220, 0x0, 0x0, ...)
>> /usr/lib/go/src/pkg/net/http/transport.go:407 +0x224
>> net/http.(*Transport).RoundTrip(0x1069b4e0, 0x10745700, 0x16bac0, 0x0, 0x0, ...)
>> /usr/lib/go/src/pkg/net/http/transport.go:181 +0x2b8
>> net/http.send(0x10745700, 0x1066bf40, 0x1069b4e0, 0x0, 0x0, ...)
>> /usr/lib/go/src/pkg/net/http/client.go:166 +0x340
>> net/http.(*Client).send(0x4ddae8, 0x10745700, 0x3b, 0x2, 0x10735d06, ...)
>> /usr/lib/go/src/pkg/net/http/client.go:100 +0x10c
>> net/http.(*Client).doFollowingRedirects(0x4ddae8, 0x10745700, 0x35cd10, 0x0, 0x0, ...)
>> /usr/lib/go/src/pkg/net/http/client.go:282 +0x5c8
>> net/http.(*Client).Get(0x4ddae8, 0x10735d00, 0x3b, 0x3, 0x0, ...)
>> /usr/lib/go/src/pkg/net/http/client.go:236 +0xac
>> main.httpGET(0x10735d00, 0x3b, 0x0, 0x0, 0x0, ...)
>> /usr/lib/go/src/cmd/go/http.go:29 +0x58
>> main.launchpadVCS(0x107231c0, 0x107231c0, 0x30b990)
>> /usr/lib/go/src/cmd/go/vcs.go:681 +0xdc
>> main.repoRootForImportPathStatic(0xbef9a6f9, 0x1b, 0x301db0, 0x0, 0x141bcb1, ...)
>> /usr/lib/go/src/cmd/go/vcs.go:397 +0x6b4
>> main.repoRootForImportPath(0xbef9a6f9, 0x1b, 0xbef9a6f9, 0x1b, 0xbef9a6f9, ...)
>> /usr/lib/go/src/cmd/go/vcs.go:332 +0x48
>> main.downloadPackage(0x1068b8c0, 0x106ba700, 0xbef9a6f9)
>> /usr/lib/go/src/cmd/go/get.go:278 +0xdf0
>> main.download(0xbef9a6f9, 0x1b, 0x10691d30)
>> /usr/lib/go/src/cmd/go/get.go:161 +0x678
>> main.runGet(0x4d8228, 0x1066b018, 0x1, 0x1)
>> /usr/lib/go/src/cmd/go/get.go:68 +0xc4
>> main.main()
>> /usr/lib/go/src/cmd/go/main.go:156 +0x4ec
>>
>> goroutine 2 [syscall]:
>>
>> goroutine 4 [syscall]:
>> created by os/signal.init·1
>> /usr/lib/go/src/pkg/os/signal/signal_unix.go:27 +0x44
>>
>> trap 0x6
>> error 0x0
>> oldmask 0x0
>> r0 0x0
>> r1 0xb6f816d5
>> r2 0x5
>> r3 0x1070d000
>> r4 0x6f
>> r5 0xbef9a118
>> r6 0x0
>> r7 0xbef9a118
>> r8 0x2
>> r9 0x4e1958
>> r10 0x1070d000
>> fp 0xbef9a11d
>> ip 0xe81eff09
>> sp 0xbef9a0d8
>> lr 0xb6f15a2a
>> pc 0x6854e
>> cpsr 0x400f0130
>> fault 0x1bc
>>
>> ProblemType: Bug
>> DistroRelease: Ubuntu 13.10
>> Package: golang 2:1.1.1-0ubuntu1
>> ProcVersionSignature: Ubuntu 3.5.0-223.34-omap4 3.5.7.9
>> Uname: Linux 3.5.0-223-omap4 armv7l
>> ApportVersion: 2.10.2-0ubuntu4
>> Architecture: armhf
>> Date: Thu Jul 11 15:46:53 2013
>> MarkForUpload: True
>> PackageArchitecture: all
>> SourcePackage: golang
>> UpgradeStatus: Upgraded to saucy on 2013-02-28 (133 days ago)
>>
>> To manage notifications about this bug go to:
>> https://bugs.launchpad.net/ubuntu/+source/golang/+bug/1200255/+subscriptions