--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: simple program compiled with gccgo segfaults
- From: Michael Stapelberg <stapelberg@debian.org>
- Date: Sat, 19 Oct 2013 12:14:18 +0200
- Message-id: <20131019101418.18297.35390.reportbug@midna.lan>
Package: gccgo
Version: 4:4.8.1-3
Severity: important
I wanted to compile a program using gccgo to see how much faster it is.
However, the program segfaults. A minimum example that segfaults is
this:
package main
import (
"flag"
"fmt"
"log"
"os"
"strings"
)
var aflag = flag.String("a", "b", "c")
func verifyExtract(filename string) {
u, err2 := os.Create("/tmp/ex")
if err2 != nil {
log.Fatal(err2)
}
fmt.Printf("%v\n", u)
strings.HasSuffix(filename, ".bz2")
log.Printf("bz2\n")
strings.HasSuffix(filename, ".gzip")
log.Printf("gz\n")
}
func main() {
fmt.Println("This example compiles but segfaults")
b := []string{
"/tmp/bench/audacity_2.0.4.orig.tar.xz",
"/tmp/bench/ardour3_3.4~dfsg.orig.tar.xz",
"/tmp/bench/anjuta_3.8.4.orig.tar.xz",
"/tmp/bench/apache2_2.4.6.orig.tar.bz2",
"/tmp/bench/afterstep_2.2.12.orig.tar.bz2",
"/tmp/bench/abtransfers_0.0.4.1.orig.tar.bz2",
"/tmp/bench/aces3_3.0.6.orig.tar.gz",
"/tmp/bench/9base_6.orig.tar.gz",
"/tmp/bench/3depict_0.0.13.orig.tar.gz",
}
for _, f := range b {
fmt.Printf("f = %v\n", f)
verifyExtract(f)
}
}
$ go build
$ ./helloworld.O
This example compiles but segfaults
f = /tmp/bench/audacity_2.0.4.orig.tar.xz
&{0xc2000662a0}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/ardour3_3.4~dfsg.orig.tar.xz
&{0xc200066480}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/anjuta_3.8.4.orig.tar.xz
&{0xc2000664b0}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/apache2_2.4.6.orig.tar.bz2
&{0xc2000664e0}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/afterstep_2.2.12.orig.tar.bz2
&{0xc200066510}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/abtransfers_0.0.4.1.orig.tar.bz2
&{0xc200066540}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/aces3_3.0.6.orig.tar.gz
&{0xc200066570}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/9base_6.orig.tar.gz
&{0xc2000665a0}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
f = /tmp/bench/3depict_0.0.13.orig.tar.gz
&{0xc2000665d0}
2013/10/19 12:11:05 bz2
2013/10/19 12:11:05 gz
$ go build -compiler gccgo
$ ulimit -c unlimited
$ ./helloworld.O
zsh: segmentation fault (core dumped) ./helloworld.O
$ gdb helloworld.O /tmp/helloworld.O.core.18748
Reading symbols from /home/michael/gocode/src/helloworld.O/helloworld.O...done.
[New LWP 18748]
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fffb3dfe000
Core was generated by `./helloworld.O'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007fd957f2f124 in read_uint32 () from /usr/lib/x86_64-linux-gnu/libgo.so.4
gdb $ bt
#0 0x00007fd957f2f124 in read_uint32 () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#1 0x00007fd957f31c14 in backtrace_dwarf_add () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#2 0x00007fd957f33a97 in elf_add () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#3 0x00007fd957f33e5f in backtrace_initialize () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#4 0x00007fd957f32be5 in fileline_initialize () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#5 0x00007fd957f32ce2 in backtrace_pcinfo () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#6 0x00007fd957f33051 in unwind () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#7 0x00007fd9572f3ea9 in _Unwind_Backtrace () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#8 0x00007fd957f330a5 in backtrace_full () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#9 0x00007fd957ce15e6 in runtime_callers () from /usr/lib/x86_64-linux-gnu/libgo.so.4
#10 0x00007fd957cf1eeb in mcommoninit () at ../../../src/libgo/runtime/proc.c:666
#11 0x00007fd957cf31c3 in runtime_schedinit () at ../../../src/libgo/runtime/proc.c:476
#12 0x0000000000401c61 in main ()
gdb $ quit
$ ldd helloworld.O
linux-vdso.so.1 (0x00007fff373fe000)
libgo.so.4 => /usr/lib/x86_64-linux-gnu/libgo.so.4 (0x00007ff338c4f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff338951000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff33873a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff33838d000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff339998000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff338171000)
$ dpkg -S /usr/lib/x86_64-linux-gnu/libgo.so.4
libgo4:amd64: /usr/lib/x86_64-linux-gnu/libgo.so.4
$ dpkg -S /lib/x86_64-linux-gnu/libm.so.6
libc6:amd64: /lib/x86_64-linux-gnu/libm.so.6
$ dpkg -S /lib/x86_64-linux-gnu/libgcc_s.so.1
libgcc1:amd64: /lib/x86_64-linux-gnu/libgcc_s.so.1
$ dpkg -S /lib/x86_64-linux-gnu/libc.so.6
libc6:amd64: /lib/x86_64-linux-gnu/libc.so.6
$ dpkg -S /lib/x86_64-linux-gnu/libpthread.so.0
libc6:amd64: /lib/x86_64-linux-gnu/libpthread.so.0
$ dpkg -l libc6 libgo4 libgcc1
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================================-======================-======================-===========================================================================
ii libc6:amd64 2.17-2 amd64 Embedded GNU C Library: Shared libraries
rc libc6:armel 2.13-38 armel Embedded GNU C Library: Shared libraries
rc libc6:i386 2.13-38 i386 Embedded GNU C Library: Shared libraries
ii libgcc1:amd64 1:4.8.1-10 amd64 GCC support library
rc libgcc1:armel 1:4.7.2-5 armel GCC support library
rc libgcc1:i386 1:4.7.2-5 i386 GCC support library
ii libgo4:amd64 4.8.1-10 amd64 Runtime library for GNU Go applications
Let me know if you need more information.
-- System Information:
Debian Release: 7.0
APT prefers testing
APT policy: (990, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: armel
i386
Kernel: Linux 3.8.3 (SMP w/8 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages gccgo depends on:
ii cpp 4:4.8.1-3
ii gcc 4:4.8.1-3
ii gccgo-4.8 4.8.1-10
gccgo recommends no packages.
Versions of packages gccgo suggests:
pn gccgo-multilib <none>
-- no debconf information
--- End Message ---