This is the mail archive of the mailing list for the libstdc++ project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: debug mode symbols cleanup

On 14/09/15 20:26 +0200, François Dumont wrote:
On 08/09/2015 22:47, François Dumont wrote:
On 07/09/2015 13:03, Jonathan Wakely wrote:
On 05/09/15 22:53 +0200, François Dumont wrote:
   I remember Paolo saying once that we were not guarantiing any abi
compatibility for debug mode. I haven't found any section for
unversioned symbols in gnu.ver so I simply uncomment the global export.
There is no section, because all exported symbols are versioned.

It's OK if objects compiled with Debug Mode using one version of GCC
don't link to objects compiled with Debug Mode using a different
version of GCC, but you can't change the exported symbols in the DSO.

Your changelog doesn't include the changes to config/abi/pre/gnu.ver,
but those changes are not OK anyway, they fail the abi-check:

FAIL: libstdc++-abi/abi_check

               === libstdc++ Summary ===

# of unexpected failures        1

Sorry, I though policy regarding debug mode symbols was even more relax.
It is not so here is another patch that doesn"t break abi checks.

I eventually made all methods that should not be used deprecated, they
were normally not used explicitely anyway. Their implementation is now
empty. I just needed to add a symbol for the not const _M_message method
which is the correct signature.


I eventually considered doing it without impacting exported symbols. I
just kept the const qualifier on _M_messages and introduced a const_cast
in the implementation.

Is it ok to commit with this version ?

The changes look OK now (assuming it passes 'make check-abi') but what
does it actually do?

Does it significantly improve the output?

(I haven't found time to apply the patch and test it myself, sorry).

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]