Subject: pkg/31465: boost-libs compilation takes *extremely* long [with patch]
To: None <,,>
From: Rhialto <>
List: pkgsrc-bugs
Date: 10/04/2005 15:57:00
>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
System: NetBSD 2.0.2 NetBSD 2.0.2 (Radls Doordringend Onjuiste Akkoord) #7: Tue Sep 13 16:03:56 CEST 2005 amd64
Architecture: x86_64
Machine: amd64
	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

	as above

        A new patch, meta-pkgs/boost/patches/patch-ae :


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 

___ Olaf 'Rhialto' Seibert      -- You author it, and I'll reader it.
\X/ rhialto/at/        -- Cetero censeo "authored" delendum esse.