[Bug 1318027] Re: Go binaries cannot be stripped
Sergio Schvezov
sergio.schvezov at canonical.com
Mon May 19 16:00:52 UTC 2014
On Mon, May 19, 2014 at 11:13 AM, James Page <james.page at ubuntu.com>
wrote:
> If I remember correctly, the stripping on gc built binaries was only
> problematic on armhf - the general upstream advice was 'don't strip - it
> breaks stuff' so we disabled it.
>
> That was with 1.1 - things may have moved on with 1.2 of golang
>
Yeah, default debian rules for stripping worked fine with gc golang (at
least for nuntium)
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.9 in Ubuntu.
https://bugs.launchpad.net/bugs/1318027
Title:
Go binaries cannot be stripped
Status in “gcc-4.9” package in Ubuntu:
New
Status in “golang” package in Ubuntu:
New
Status in “golang” package in Debian:
Fix Released
Bug description:
Binaries built with gccgo-4.9 in utopic cannot be stripped at all.
Doing so causes the binaries to be un-runnable due to lack of
debugging symbols:
$ ./debian/nuntium/usr/bin/nuntium
2014/05/09 19:10:41 Connection error: Unknown address type
$ DH_VERBOSE=1 dh_strip -a
strip --remove-section=.comment --remove-section=.note debian/nuntium/usr/bin/nuntium
strip --remove-section=.comment --remove-section=.note debian/nuntium-decode-cli/usr/bin/nuntium-decode-cli
$ ./debian/nuntium/usr/bin/nuntium
no debug info in ELF executable errno -1
fatal error: no debug info in ELF executable
runtime stack:
no debug info in ELF executable errno -1
panic during panic
$
This problem does not manifest when building with golang-gc.
The problem is also reproducible when calling 'strip --strip-debug';
although this removes substantially fewer symbols, there are still
some go-related symbols that are removed according to objdump -x:
@@ -871,7 +853,6 @@
0000000000471380 l O .data 00000000000002f8 C.382
000000000044e520 l O .rodata 0000000000000028 C191
0000000000471680 l O .data 0000000000000028 C.383
-0000000000000000 l df *ABS* 0000000000000000 contenttype.go
00000000004513b0 l O .rodata 0000000000000010 C0
00000000004513c0 l O .rodata 0000000000000010 C1
00000000004513d0 l O .rodata 0000000000000010 C2
But even passing --keep-file-symbols to strip does not give me a
working binary.
So it looks like gccgo has a hard dependency on the contents of the
debugging sections of the binary, which gc does not.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1318027/+subscriptions
More information about the foundations-bugs
mailing list