./libstdc++-v3/include/bits/stl_alloc.h : Incompatibility between g++ 3.3 and g++ 3.2?

Martin Beaudoin beaudoin.martin@ireq.ca
Fri Sep 5 14:28:00 GMT 2003


Hello,

I am experiencing some STL compatibility problems between  

g++ (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7)

and

g++ (GCC) 3.3 20030226 (prerelease) (SuSE Linux 8.2)


I have a library compiled with g++ version 3.3 on Suse 8.2. The library 
is making heavy use of STL.

When I link this library with a program compiled with gcc 3.2 on RedHat 
8.0,  the linker complains about the  

undefined reference to `std::__default_alloc_template<(bool)1, 
(int)0>::_S_force_new'

Indeed, S_force_new is defined in 
./libstdc++-v3/include/bits/stl_alloc.h for g++ 3.3, but not for g++ 3.2.

But when I look at the online  CVS archive (savannah.gnu.org using 
viewcvs, or gcc.gnu.org using cvsweb), I see that the file 
./libstdc++-v3/include/bits/stl_alloc.h is in the CVS Attic for both 
those versions of gcc.  

So my understanding is that stl_alloc.h was not supposed to be present 
for neither g++ 3.3 and g++ 3.2.

But doing a cvs checkout for both these versions of g++ (tag: 
gcc_3_3_release and gcc_3_2_release, and even tag = gcc_3_3_1_release), 
gives me a ./libstdc++-v3/include/bits/stl_alloc.h file, and some other 
files under ./libstdc++-v3/include/bits (stl_tree.h) are still using 
this file. But stl_alloc.h is in the Attic for those versions....

Only the latest version of gcc seems have gotten rid of 
./libstdc++-v3/include/bits/stl_alloc.h

So, is this a known problem? I can't find anyting on the mailing lists 
about STL incompatibilities between g++ 3.2 and g++ 3.3.

Did someone forgot to to commit the removal of stl_alloc.h for those 
versions? I would like to understand what is happening here on the CVS side.


Now, as for my incompatibilitiy problem (stl_alloc.h is not downward 
compatible from g++ 3.3 to g++ 3.2), the only solution I can see is that 
I need to standardize my development Linux stations over one and only 
one g++ compiler version. 

I would have expected this for major differences in version of g++; I 
expect incompatibilities between gcc 3.x and gcc 2.x., and I would not 
mind upgrading to a newer version in such situations.

But STL incompatibilities between 3.2 and 3.3, I would not have expected 
this.

Any advice or comments on those issues are more than welcomed.

--
Martin Beaudoin
IREQ




More information about the Libstdc++ mailing list