|
Boost : |
From: Joerg Walter (jhr.walter_at_[hidden])
Date: 2003-08-09 15:19:48
Hi Gabriel,
you wrote:
> | >>> On the other hand if your native compiler is GCC and your system
was
> | >>> not configured with that setting, then you may get into trouble --
> | >>> since you'll be mixing translation units with different ABIs.
> | >>
> | >> Furthermore, that sounds like a workaround. Isn't it still a
> | >> compiler bug that it doesn't work without -fabi-version=0?
> | >
> | >No, it's correctly fixed, but since it's a fix that breaks ABI, the
> | >version number was bumbed. By default, GCC 3.3 uses the GCC 3.2 ABI.
> | >If you want to
> | >activate the new version, you have to explicitally say so.
> | >"-fabi-version=0" always selects the last version of the ABI.
> |
> | So are you are saying we should add "-fabi-version=0"?
>
> If you do that unconditionally, you may get ABI incompatible
> libraries/programs compared to what your system come with.
>
> The default ABI version for GCC-3.3.x is 1. You might want to set it
> to 2 and see what happens (for GCC-3.3.x) -- some bugs are fixed in
> -fabi-version=2.
>
>
> This whole thing (-fabi-version) is messy. It is what one gets by
> taking users for beta testers ;-)
That's not the whole story. When testing with GCC 3.3.1 prerelease I noticed
that setting -fabi-version isn't necessary anymore. So I filed a bug report
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11812, which immediately got
closed ;-). The subsequent discussion at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11105 leads me to believe that
GCC 3.3 was too conservative w.r.t. ABI compatibility.
Due to this and the fact that there's been another bug in GCC 3.3
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11198) which manifests when
using ublas, I tend to advise against using GCC 3.3 for ublas.
Thanks,
Joerg
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk