https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61291

            Bug ID: 61291
           Summary: libixion-0.5.0 unable to find boost thread library as
                    lto1 crashes with segfault
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
          Assignee: unassigned at gcc dot gnu.org
          Reporter: steffen at hauihau dot de

The configure script of libixion tries to find the correct name of the boost
thread library, but each try failes with a segmentation fault in lto1.

Here is a snippet from config.log:

configure:15933: x86_64-pc-linux-gnu-g++ -c -march=native -O2 -pipe -ggdb
-floop-interchange -floop-strip-mine -floop-block -ftree-loop-distribution
-fira-loop-pressure -ftree-vectorize -ftree-loop-linear -flto=5
-fuse-linker-plugin -D_REENTRANT -DMDDS_HASH_CONTAINER_BOOST
-D__IXION_BUILDING_DLL -g -Os -fvisibility=hidden -pthread  conftest.cpp >&5
configure:15933: $? = 0
configure:15990: x86_64-pc-linux-gnu-g++ -o conftest -march=native -O2 -pipe
-ggdb -floop-interchange -floop-strip-mine -floop-block
-ftree-loop-distribution -fira-loop-pressure -ftree-vectorize
-ftree-loop-linear -flto=5 -fuse-linker-plugin -D_REENTRANT
-DMDDS_HASH_CONTAINER_BOOST -D__IXION_BUILDING_DLL -g -Os -fvisibility=hidden
-pthread  -Wl,-O1 -Wl,--as-needed -march=native -O2 -pipe -ggdb
-floop-interchange -floop-strip-mine -floop-block -ftree-loop-distribution
-fira-loop-pressure -ftree-vectorize -ftree-loop-linear -flto=5
-fuse-linker-plugin -Wl,-znow -Wl,--sort-common -Wl,--hash-style=gnu
-Wl,--enable-new-dtags -L/usr/local/lib -Wl,-R,/usr/local/lib
-L/usr/local/lib64 conftest.o -lboost_thread-mt-1_55  -lboost_system-mt
-pthread >&5
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/../../../../x86_64-pc-linux-gnu/bin/ld:
error: cannot find -lboost_thread-mt-1_55
lto1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.gentoo.org/> for instructions.
lto-wrapper: /usr/x86_64-pc-linux-gnu/gcc-bin/4.9.0/x86_64-pc-linux-gnu-g++
returned 1 exit status
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/../../../../x86_64-pc-linux-gnu/bin/ld:
fatal error: lto-wrapper failed
collect2: error: ld returned 1 exit status
configure:15990: x86_64-pc-linux-gnu-g++ -o conftest -march=native -O2 -pipe
-ggdb -floop-interchange -floop-strip-mine -floop-block
-ftree-loop-distribution -fira-loop-pressure -ftree-vectorize
-ftree-loop-linear -flto=5 -fuse-linker-plugin -D_REENTRANT
-DMDDS_HASH_CONTAINER_BOOST -D__IXION_BUILDING_DLL -g -Os -fvisibility=hidden
-pthread  -Wl,-O1 -Wl,--as-needed -march=native -O2 -pipe -ggdb
-floop-interchange -floop-strip-mine -floop-block -ftree-loop-distribution
-fira-loop-pressure -ftree-vectorize -ftree-loop-linear -flto=5
-fuse-linker-plugin -Wl,-znow -Wl,--sort-common -Wl,--hash-style=gnu
-Wl,--enable-new-dtags -L/usr/local/lib -Wl,-R,/usr/local/lib
-L/usr/local/lib64 conftest.o -lboost_thread-mt  -lboost_system-mt -pthread >&5
lto1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.gentoo.org/> for instructions.
lto-wrapper: /usr/x86_64-pc-linux-gnu/gcc-bin/4.9.0/x86_64-pc-linux-gnu-g++
returned 1 exit status
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/../../../../x86_64-pc-linux-gnu/bin/ld:
fatal error: lto-wrapper failed
collect2: error: ld returned 1 exit status

It even segfaults with non-existing libraries like boost_thread-mt-1_55.

I've stripped it down to the usage of "-Os" together with "-flto". Here is a
minimal snippet of code which produces the error:

#include <boost/thread.hpp>

int
main ()
{
  boost::thread t; boost::mutex m;
  ;
  return 0;
}


I've compiled it this way:

x86_64-pc-linux-gnu-g++ -c -flto=5 -Os boost_gcc_lto_segfault.cpp
x86_64-pc-linux-gnu-g++ -o boost_gcc_lto_segfault -flto=5 -fuse-linker-plugin
boost_gcc_lto_segfault.o -lboost_thread-mt -lboost_system-mt

Please let me know if you need further information.

This is the output of "gcc -v":
Using built-in specs.
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.0/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with:
/home/misc/gentoo/tmp/portage/sys-devel/gcc-4.9.0/work/gcc-4.9.0/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.9.0
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.0
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.0/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.0/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/include/g++-v4
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.9.0/python
--enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt
--disable-werror --with-system-zlib --enable-nls --without-included-gettext
--enable-checking=release --with-bugurl=https://bugs.gentoo.org/
--with-pkgversion='Gentoo 4.9.0 p1.0, pie-0.6.0' --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 --disable-libmudflap --disable-libssp --enable-lto
--with-cloog --disable-isl-version-check
Thread model: posix
gcc version 4.9.0 (Gentoo 4.9.0 p1.0, pie-0.6.0)

Reply via email to