[C++-sig] boost::python with virtual inheritance and g++ c++0x/11 (testcase attached)

Niall Douglas s_sourceforge at nedprod.com
Mon May 14 16:05:09 CEST 2012


On 14 May 2012 at 15:11, Jonas Wielicki wrote:

> On 05/14/2012 01:33 PM, Niall Douglas wrote:
> > Most distros bundle multiple versions of gcc due to this exact 
> > problem with frequent bugs. Debian, at least, usually has the 
> > previous version and for many years also had the latest from the 3.x 
> > and indeed 2.x series.
> Well, Fedora doesn't. They only ship a 3.4 series compiler as an
> alternative (maybe to build qt3 apps or something?). But actually I like
> -std=C++0x, you know.

Haven't touched Fedora in a decade I'm afraid. I should clarify my 
earlier statement: Debian doesn't necessarily install by default 
multiple versions of compilers, rather they're in the repos available 
as package dependencies. Surely Fedora is the same?

> > Simply have your build chain wire in a non-default compiler by 
> > excluding from a list of known broken gcc's. It's what my build 
> > system does.
> Hm. How did you implement that? I mean, does the build chain build its
> own gcc if neccessary and install it to a well-defined path in the
> user's home directory?

Ah, my build system has been scons for years now. As that's really 
python, it's trivial to scan /usr/bin for anything which can compile 
and invoke each with --version or take a guess from their filename.

My build system simply warns with big letters if the only compiler 
available is known to be broken and suggests you should get a 
different one, but one can force proceed if you wish.

> > A very small testcase is easiest. They don't like testcases bringing 
> > in external libraries such as boost one bit. So be prepared to be 
> > aggressive if needs be.
> Hm. I'm afraid that this bug is not easy to separate in a small
> testcase, because if it was evident, the fedora folks would've (a) filed
> a bug at the gcc or (b) put in a patch themselves but definetly (c) not
> shipped that compiler.

Indeed. My experience has been trying when reporting complex 
metaprogramming bugs in GCC. They say things like "we regularly test 
against Boost and the compiler passes all its regression tests, 
therefore the bug can't be in our compiler". Understandable, but 
frustrating.

> >>> Also, try Clang. Clang seems to generate better 
> >>> debug info for templates anyway.
> >> I'll have a look, thanks.
> Clang doesn't compile boost python 1.49 at all. Sadly.

I am deeply surprised due to 
http://blog.llvm.org/2010/05/clang-builds-boost.html.

http://www.boost.org/development/tests/release/developer/python.html 
reports Clang to be no worse than MSVC, and much better than GCC 4.2.

Niall

-- 
Technology & Consulting Services - ned Productions Limited.
http://www.nedproductions.biz/. VAT reg: IE 9708311Q.
Work Portfolio: http://careers.stackoverflow.com/nialldouglas/





More information about the Cplusplus-sig mailing list