https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71161
--- Comment #8 from Uroš Bizjak <ubizjak at gmail dot com> --- Old glibc misaligns the stack on 32bit targets. In my case (Centos 5.11, glibc 2.5), looking into: FAIL: go.go-torture/execute/array-1.go execution, -O0 Starting program: /home/uros/test/a.out [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0xf7997b9b in find_address_ranges (state=state@entry=0xf702d000, base_address=base_address@entry=4144750592, unit_buf=unit_buf@entry=0xffffab48, dwarf_str=0xf6708ef8 "pause_total_ns", dwarf_str_size=676857, dwarf_ranges=0xf6a51baf "R", dwarf_ranges_size=277408, is_bigendian=0, error_callback=0xf75d59d0 <error_callback>, data=0xffffb0ec, u=0xf6bfce38, addrs=0xffffab18) at ../../../../git/gcc/libbacktrace/dwarf.c:1285 1285 for (i = 0; i < abbrev->num_attrs; ++i) (gdb) disass Dump of assembler code for function find_address_ranges: ... 0xf7997b64 <+148>: movl $0x0,0x44(%esp) 0xf7997b6c <+156>: movl $0x0,0x4c(%esp) 0xf7997b74 <+164>: lea 0x90(%esp),%edi 0xf7997b7b <+171>: movl $0x0,0x50(%esp) 0xf7997b83 <+179>: movl $0x0,0x58(%esp) 0xf7997b8b <+187>: movl $0x0,0x30(%esp) 0xf7997b93 <+195>: movl $0x0,0x48(%esp) => 0xf7997b9b <+203>: movaps %xmm0,0x20(%esp) 0xf7997ba0 <+208>: mov %ebx,(%esp) 0xf7997ba3 <+211>: movaps %xmm0,0x10(%esp) 0xf7997ba8 <+216>: jmp 0xf7997bdf <find_address_ranges+271> (gdb) p $esp $1 = (void *) 0xffffa9c8 #0 0xf7997b9b in find_address_ranges (state=state@entry=0xf702d000, base_address=base_address@entry=4144750592, unit_buf=unit_buf@entry=0xffffab48, dwarf_str=0xf6708ef8 "pause_total_ns", dwarf_str_size=676857, dwarf_ranges=0xf6a51baf "R", dwarf_ranges_size=277408, is_bigendian=0, error_callback=0xf75d59d0 <error_callback>, data=0xffffb0ec, u=0xf6bfce38, addrs=0xffffab18) at ../../../../git/gcc/libbacktrace/dwarf.c:1285 #1 0xf799a416 in build_address_map (addrs=0xffffab18, data=<optimized out>, error_callback=0xf75d59d0 <error_callback>, is_bigendian=0, dwarf_str_size=676857, dwarf_str=0xf6708ef8 "pause_total_ns", dwarf_ranges_size=277408, dwarf_ranges=0xf6a51baf "R", dwarf_abbrev_size=247375, dwarf_abbrev=0xf638cf47 "\001\021\001%\016\023\v\003\016\033\016\021\001\022\006\020\027", dwarf_info_size=3526911, dwarf_info=0xf602fe48 "3\034", base_address=4144750592, state=0xf702d000) at ../../../../git/gcc/libbacktrace/dwarf.c:1498 #2 build_dwarf_data (data=<optimized out>, error_callback=0xf75d59d0 <error_callback>, is_bigendian=0, dwarf_str_size=676857, dwarf_str=0xf6708ef8 "pause_total_ns", dwarf_ranges_size=277408, dwarf_ranges=0xf6a51baf "R", dwarf_abbrev_size=247375, dwarf_abbrev=0xf638cf47 "\001\021\001%\016\023\v\003\016\033\016\021\001\022\006\020\027", dwarf_line_size=468966, dwarf_line=0xf63c9596 "\350\001", dwarf_info_size=3526911, dwarf_info=0xf602fe48 "3\034", base_address=4144750592, state=0xf702d000) at ../../../../git/gcc/libbacktrace/dwarf.c:2932 #3 backtrace_dwarf_add (state=0xf702d000, base_address=4144750592, dwarf_info=0xf602fe48 "3\034", dwarf_info_size=3526911, dwarf_line=0xf63c9596 "\350\001", dwarf_line_size=468966, dwarf_abbrev=0xf638cf47 "\001\021\001%\016\023\v\003\016\033\016\021\001\022\006\020\027", dwarf_abbrev_size=247375, dwarf_ranges=0xf6a51baf "R", dwarf_ranges_size=277408, dwarf_str=0xf6708ef8 "pause_total_ns", dwarf_str_size=676857, is_bigendian=0, error_callback=0xf75d59d0 <error_callback>, data=<optimized out>, fileline_fn=0xffffad50) at ../../../../git/gcc/libbacktrace/dwarf.c:2992 #4 0xf799bdb3 in elf_add (state=<optimized out>, descriptor=5, base_address=4144750592, error_callback=0xf75d59d0 <error_callback>, data=0xffffb0ec, fileline_fn=0xffffad50, found_sym=0xffffadf8, found_dwarf=0xffffad54, exe=0) at ../../../../git/gcc/libbacktrace/elf.c:817 #5 0xf799be80 in phdr_callback (info=0xffffad94, size=40, pdata=0xffffae04) at ../../../../git/gcc/libbacktrace/elf.c:902 #6 0x0035c2ea in dl_iterate_phdr () from /lib/libc.so.6 #7 0xf799bf59 in backtrace_initialize (state=0xf702d000, descriptor=<optimized out>, error_callback=0xf75d59d0 <error_callback>, data=0xffffb0ec, fileline_fn=0xffffae78) at ../../../../git/gcc/libbacktrace/elf.c:943 #8 0xf799a9b7 in fileline_initialize (state=state@entry=0xf702d000, error_callback=error_callback@entry=0xf75d59d0 <error_callback>, data=data@entry=0xffffb0ec) at ../../../../git/gcc/libbacktrace/fileline.c:136 #9 0xf799aa7a in backtrace_pcinfo (state=0xf702d000, pc=4150090376, callback=0xf75d5760 <callback>, error_callback=0xf75d59d0 <error_callback>, data=0xffffb0ec) at ../../../../git/gcc/libbacktrace/fileline.c:170 #10 0xf799aff4 in unwind (context=0xffffaf20, vdata=0xffffb094) at ../../../../git/gcc/libbacktrace/backtrace.c:91 #11 0xf70933da in _Unwind_Backtrace (trace=0xf799af90 <unwind>, trace_argument=0xffffb094) at ../../../../git/gcc/libgcc/unwind.inc:295 #12 0xf799b0bb in backtrace_full (state=0xf702d000, skip=0, callback=0xf75d5760 <callback>, error_callback=0xf75d59d0 <error_callback>, data=0xffffb0ec) at ../../../../git/gcc/libbacktrace/backtrace.c:127 #13 0xf75d5a89 in runtime_callers (skip=1, locbuf=0xffffb120, m=32, keep_thunks=0 '\000') at ../../../../git/gcc/libgo/runtime/go-callers.c:170 Frame #6 is suspected.