debug algo patch

François Dumont francois.cppdevs@free.fr
Wed May 25 19:59:00 GMT 2011


In fact there is already a binary incompatibility, some tests are 
failing because of:

/home/fdt/dev/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/stl_algobase.h:484: 
undefined reference to 
`__gnu_cxx::__enable_if<std::__is_char<char>::__value, 
std::ostreambuf_iterator<char, std::char_traits<char> > >::__type 
std::__detail::__copy_move_a2<false, char>(char const*, char const*, 
std::ostreambuf_iterator<char, std::char_traits<char> >)'

But of course it wouldn't be very complicated to restore exported 
__copy_move_a2 symbol namespace.

However to make the patch work I will have to do additional 
modifications that will surely introduce more binary incompatibility. 
Perhaps only to the debug mode but I already know that some maintainers 
don't want any binary incompatibility, even in debug mode.

Maybe we could do a branch for binary incompatible debug mode different 
from the one impacting normal mode ? However it will make branch 
management more complicated. Is there any plan to break binary 
compatibility in a version to come ?

François

On 05/24/2011 10:06 PM, Christopher Jefferson wrote:
> On 24 May 2011, at 20:46, François Dumont wrote:
>
>> ....
>>
>>     I am considering to start the SVN binary incompatible branch with this patch as soon as it works.
> Out of interest, which parts of this will be binary incompatible?
>
> It is obviously vital not to break the non-debugging containers and algorithms, but remaining internal functions won't do that, if you are careful.
>
> Further (and I certainly don't speak for everyone), as long as you put them in a different namespace, I wouldn't mind a binary-incompatable debugging library. I do not know if there has ever been an assumption of ABI compatibility in debug mode, but I certainly haven't assumed it. Others may of course disagree.
>
> Chris



More information about the Libstdc++ mailing list