pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/31465: boost-libs compilation takes *extremely* long [with patch]
>Number: 31465
>Category: pkg
>Synopsis: boost-libs compilation takes *extremely* long [with >patch]
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Oct 04 15:57:00 +0000 2005
>Originator: Rhialto
>Release: NetBSD 2.0.2
>Organization:
>Environment:
System: NetBSD radl.falu.nl 2.0.2 NetBSD 2.0.2 (Radls Doordringend Onjuiste
Akkoord) #7: Tue Sep 13 16:03:56 CEST 2005
rhialto%radl.falu.nl@localhost:/usr/src/sys/arch/amd64/compile/RADL amd64
Architecture: x86_64
Machine: amd64
>Description:
While attempting to build devel/boost-libs with the system's gcc
(gcc version 3.3.3 (NetBSD nb3 20040520)), I noticed that it
took near infinite time (I lost patience after about two hours
of cpu time of an amd64 "3000+") to compile boost/libs/wave/src/-
instantiate_cpp_literalgrs.cpp. This file does some template
instantiation (and if I'm reading it right, not even a very
concrete one at that, so it might be pretty useless).
When compiling boost-libs with gcc 3.4, I found that compilation
finishes in finite time.
However, apparently the C++ ABI changed in an incompatible way
betwen these g++ versions. If I compiled devel/monotone, which
uses boost, with the system compiler, any invocation of it
resulted in an internal error message. With gcc 3.4 it worked
(or at least did not produce the error message).
However, requiring all users of boost to use gcc 3.4 seems
unacceptable to me.
Fortunately there is a feature-test #define which controls the
template instantiation. With the attached patch I simply turn it
off. This may have consequences for users of the "wave" library
of boost, but that seems less bad than punishing all users.
Maybe the patch can be improved by making it conditional on the
compiler version, but I don't know if that is desirable from the
POLA.
>How-To-Repeat:
as above
>Fix:
A new patch, meta-pkgs/boost/patches/patch-ae :
$NetBSD$
Turn off this feature, since with gcc 3.3.x it takes near infinite
compilation time.
Another option is to require gcc 3.4 (GCC_REQD += 3.4) but then
all applications linking to boost should also use gcc 3.4.
Apparently there is an incompatible ABI change between them.
--- boost/wave/wave_config.hpp.dist 2005-10-04 16:02:35.000000000 +0200
+++ boost/wave/wave_config.hpp 2005-10-04 16:23:07.000000000 +0200
@@ -259,7 +259,7 @@
// To use the grammar inclusion model, uncomment the following
//
#if !defined(BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION)
-#define BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION 1
+#define BOOST_WAVE_SEPARATE_GRAMMAR_INSTANTIATION 0
#endif
///////////////////////////////////////////////////////////////////////////////
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- You author it, and I'll reader it.
\X/ rhialto/at/xs4all.nl -- Cetero censeo "authored" delendum esse.
Home |
Main Index |
Thread Index |
Old Index