NetBSD Problem Report #31465

From rhialto@falu.nl  Tue Oct  4 15:56:25 2005
Return-Path: <rhialto@falu.nl>
Received: from smtp.falu.nl (azenomei.xs4all.nl [213.84.74.36])
	by narn.netbsd.org (Postfix) with ESMTP id A5B9E63B8CC
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  4 Oct 2005 15:56:24 +0000 (UTC)
Message-Id: <200510041556.j94FuL6c025066@radl.falu.nl>
Date: Tue, 4 Oct 2005 17:56:21 +0200 (CEST)
From: Rhialto <rhialto@falu.nl>
Reply-To: rhialto@falu.nl
To: gnats-bugs@netbsd.org
Subject: boost-libs compilation takes *extremely* long [with patch]
X-Send-Pr-Version: 3.95

>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:/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.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.