Subject: bug#27733: GCC compiler error when building LibreOffice 5.3.2.2

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 17 Jul 2017 06:03:07 -0700

Hello,

While attempting to install LibreOffice 5.3.2.2 with the following
command:

./pre-inst-env guix package -i libreoffice -c 1 -M 1

GCC crashed with the following message:

--8<---------------cut here---------------start------------->8---
[build CXX] sw/source/uibase/app/apphdl.cxx
[build CXX] sw/source/uibase/app/applab.cxx
[build CXX] sw/source/uibase/app/appopt.cxx
[build CXX] sw/source/uibase/app/docsh.cxx
[build CXX] sw/source/uibase/app/docsh2.cxx
[build CXX] sw/source/uibase/app/docshdrw.cxx
[build CXX] sw/source/uibase/app/docshini.cxx
[build CXX] sw/source/uibase/app/docst.cxx
[build CXX] sw/source/uibase/app/docstyle.cxx
In file included from /gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/algorithm:61:0,
                 from /tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/include/com/sun/star/uno/Any.hxx:24
                 from /tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/include/svl/poolitem.hxx:27,
                 from /tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/include/svl/itemset.hxx:25,
                 from /tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/include/svl/itemiter.hxx:23,
                 from /tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/sw/source/uibase/app/docstyle.cxx:2
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algobase.h: In instantiation of ‘_BI2 std::_
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algobase.h:614:5:   required from ‘_BI2 std:**, std::vector<SwRangeRedline*, std::allocator<SwRangeRedline*> > >; _BI2 = __gnu_cxx::__normal_iterator<SwRangeRedlin
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algobase.h:684:48:   required from ‘_BI2 std*, std::allocator<SwRangeRedline*> > >; _BI2 = __gnu_cxx::__normal_iterator<SwRangeRedline**, std::vector<SwRangeRedlin
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algo.h:1846:8:   required from ‘void std::___iterator<SwRangeRedline**, std::vector<SwRangeRedline*, std::allocator<SwRangeRedline*> > >; _Compare = __gnu_cxx::__o
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algo.h:2776:25:   required from ‘void std::_normal_iterator<SwRangeRedline**, std::vector<SwRangeRedline*, std::allocator<SwRangeRedline*> > >; _Compare = __gnu_cx
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algo.h:4863:28:   required from ‘void std::_terator<SwRangeRedline**, std::vector<SwRangeRedline*, std::allocator<SwRangeRedline*> > >; _Compare = __gnu_cxx::__ops
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algo.h:4932:36:   required from ‘void std::seRedline*, std::allocator<SwRangeRedline*> > >; _Compare = CompareSwRedlineTable]’
/tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/include/o3tl/sorted_vector.hxx:186:25:   required from ‘vFind = o3tl::find_partialorder_ptrequals]’
/tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/sw/inc/docary.hxx:362:60:   required from here
/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0/include/c++/bits/stl_algobase.h:607:5: internal compiler error: S
     }
     ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[1]: *** [/tmp/guix-build-libreoffice-5.3.2.2.drv-0/libreoffice-5.3.2.2/solenv/gbuild/LinkTarget.mk:191: /tmp/guix-
make: *** [Makefile:265: build] Error 2
phase `build' failed after 35006.0 seconds
builder for `/gnu/store/mrq8p9v19fvl86igbhfkah0saj5n0awn-libreoffice-5.3.2.2.drv' failed with exit code 1
guix package: error: build failed: build of `/gnu/store/mrq8p9v19fvl86igbhfkah0saj5n0awn-libreoffice-5.3.2.2.drv' faile
--8<---------------cut here---------------end--------------->8---

The reason I'm limiting the number of build processes and cores used to
1 (with the -c and -M flags of `guix build`) is because one dependency
of LibreOffice, vigra, was taking up to 2 GiB of memory per process when
compiling and causing my 4 GiB system to trash.

Maxim