https://sourceware.org/bugzilla/show_bug.cgi?id=16417
Bug ID: 16417 Summary: executable linked with gold segfaults before main Product: binutils Version: 2.24 Status: NEW Severity: critical Priority: P2 Component: gold Assignee: ian at airs dot com Reporter: i.zaufi at gmail dot com CC: ccoutant at google dot com Created attachment 7342 --> https://sourceware.org/bugzilla/attachment.cgi?id=7342&action=edit output of `cave info` I'm using gentoo w/ my custom compilation flags. I've found that simple pro gram being compiled and linked w/ gold segfaults w/ the following backtrace: Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x00007ffff7f2a1e1 in __gthread_once (__func=0x7ffff7f2a180 <std::locale::_S_initialize_once()>, __once=<optimized out>) at /storage/tmp/paludis/sys-devel-gcc-4.8.2/work/build/x86_64-pc-linux-gnu/lib stdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:699 #2 std::locale::_S_initialize () at /storage/tmp/paludis/sys-devel-gcc-4.8.2/work/gcc-4.8.2/libstdc++-v3/src/c+ +98/locale_init.cc:276 #3 0x00007ffff7f2a223 in std::locale::locale (this=0x7ffff7fbffb8 <__gnu_internal::buf_cout_sync+56>) at /storage/tmp/paludis/sys-devel-gcc-4.8.2/work/gcc-4.8.2/libstdc++-v3/src/c+ +98/locale_init.cc:210 #4 0x00007ffff7f2710c in basic_streambuf (this=<optimized out>) at /storage/tmp/paludis/sys-devel-gcc-4.8.2/work/build/x86_64-pc-linux-gnu/lib stdc++-v3/include/streambuf:466 #5 stdio_sync_filebuf (__f=0x7ffff7dd62a0 <_IO_2_1_stdout_>, this=<opt imized out>) at /storage/tmp/paludis/sys-devel-gcc-4.8.2/work/build/x86_64-pc-linux-gnu/lib stdc++-v3/include/ext/stdio_sync_filebuf.h:77 #6 std::ios_base::Init::Init (this=<optimized out>) at /storage/tmp/paludis/sys-devel-gcc-4.8.2/work/gcc-4.8.2/libstdc++-v3/src/c+ +98/ios_init.cc:85 #7 0x0000000000400dce in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/include/g++-v4/iostream:74 #8 _GLOBAL__sub_I_main () at print_exports.cc:33 #9 0x0000000000400f2d in __libc_csu_init (argc=argc@entry=1, argv=argv@entry=0x7fffffffcc98, envp=0x7fffffffcca8) at elf-init.c:83 #10 0x00007ffff7a55905 in __libc_start_main (main=0x400be0 <main()>, argc =1, ubp_av=0x7fffffffcc98, init=0x400ee0 <__libc_csu_init>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff ffffcc88) at libc-start.c:217 #11 0x0000000000400e11 in _start () at ../sysdeps/x86_64/start.S:123 the source code is: #include <string> #include <iostream> extern char ** environ; int main() { for (char ** it = environ; nullptr != *it; ++it) { std::string str(*it); std::cout << "export " << str.substr(0, str.find('=')) << std::en dl; } } compile commands: x86_64-pc-linux-gnu-g++ -pthread -std=gnu++0x -pedantic -ggdb -O2 -pipe -march=native -minline-stringops-dynamically -mtls-dialect=gnu2 -floop- block -floop-interchange -ftree-loop-distribution -floop-strip-mine -ftree-vector ize -fmerge-all-constants -fira-loop-pressure -pedantic -c -o print_exports.o print_exports.cc x86_64-pc-linux-gnu-g++ -pthread -std=gnu++0x -pedantic -ggdb -O2 -pipe -march=native -minline-stringops-dynamically -mtls-dialect=gnu2 -floop- block -floop-interchange -ftree-loop-distribution -floop-strip-mine -ftree-vector ize -fmerge-all-constants -fira-loop-pressure -pedantic -Wl,-O1 -Wl,--sort-comm on -Wl,--enable-new-dtags -Wl,--gc-sections -Wl,--hash-style=gnu -o print_ex ports print_exports.o -Wl,--as-needed -pthread -Wl,-fuse-ld=gold GCC info: /home/zaufi〉 g++ -v Using built-in specs. COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.2/g++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.2/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /storage/tmp/paludis/sys-devel-gcc-4.8.2/work/gcc-4.8.2/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.2 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/include/g++ -v4 --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.8.2/python --enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-w error --with-system-zlib --disable-nls --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.8.2 p1.2, pie-0.5.8' --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-altivec --disable-fixed-point --enable-targets=all --disable-libgcj --enable-libgomp --enable-libmudflap --disable-libssp --disable-libquadmath --enable-lto --with-cloog --disable-isl-version-check Thread model: posix gcc version 4.8.2 (Gentoo 4.8.2 p1.2, pie-0.5.8) -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils