Boost logo

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
> | >>> 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, which immediately got
closed ;-). The subsequent discussion at 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
( which manifests when
using ublas, I tend to advise against using GCC 3.3 for ublas.


Boost list run by bdawes at, gregod at, cpdaniel at, john at