[v3] default linux allocator
Mark Mitchell
mark@codesourcery.com
Wed Jul 14 22:39:00 GMT 2004
Carlo Wood wrote:
>On Wed, Jul 14, 2004 at 10:34:28AM -0700, Mark Mitchell wrote:
>
>
>>What if you recompile half of the .o files in your program and not the
>>other half? Do you known have containers in one half using one
>>allocator and containers in the other using the other half? And if so,
>>does that work?
>>
>>
>
>Fyi, a similar change was already done going from 3.4.0 to 3.4.1.
>In 3.4.0 we have:
>
> template<bool __threads, int __inst>
> class __pool_alloc
>
>in 3.4.1 that is:
>
> template<typename _Tp>
> class __pool_alloc : private __pool_alloc_base
>
>Note the different number of template parameters.
>As a result - people who upgrade their compiler from 3.4.0
>to 3.4.1 have to recompile libcwd.
>
>
That's exactly the kind of thing I'm worried about.
If in file1.h, I do:
std::vector<int> v;
and file1.cc, compiled with 3.4.1 does:
v.push(3)
and file 2.cc, compiled with 3.4.2 does:
v.push(4)
what allocator is being used by these files? How do we know it will be
compatible, even if the allocator code has been inlined into the .o files?
--
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com
More information about the Libstdc++
mailing list