This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

[v3] symbol versioning fixups


 
Here's the deal: the export list checking for 3.4.4 and 4.0.0 missed
several new exported symbols. These symbols were given the default
versioning, ie GLIBCXX_3.4, instead of what would be more accurate and
appropriate, ie GLIBCXX_3.4.5.

This is a recoverable failure. What this means is that forward compat
is still fine, but people who compile with 4.0.0 and try to link on 3.4
based systems may get an undefined symbol error, and instead of it
saying "foo version 3.4.5 cannot be found" it will say "foo version 3.4
cannot be found" which may be confusing. 

To fix this, this patch edits/augments exports for the dynamic library.
Basically, all the newly exported symbols will be placed into
GLIBCXX_3.4.5, and shims for GLIBCXX_3.4 will be provided.

Thanks to Jakub, Uli, Jason, and Richard for the help.

This will require the generation of new abi baselines to deal with the
aliased symbols. Until then, abi-check will appear to fail (but it is
actually correctly testing exports now.) I expect to have corrected
baselines for linux targets within 24 hrs, but don't consider this
critical.

This patch is against gcc-4_0-branch. A similar patch can be constructed for mainline.

In addition, I have put up a tarball of this directory so that people
will be able to do testing without dealing with configure/make autogen
issues.

See:
http://people.redhat.com/bkoz/libstdc++-v3.versioning-7.tar.bz2

tested x86/linux 
tested alpha/linux


Attachment: p.20050615-4
Description: Text document


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