This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug driver/33772] collect2 doesn't strip .sl version
- From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Oct 2007 23:55:50 -0000
- Subject: [Bug driver/33772] collect2 doesn't strip .sl version
- References: <bug-33772-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from dave at hiauly1 dot hia dot nrc dot ca 2007-10-18 23:55 -------
Subject: Re: New: collect2 doesn't strip .sl version
On Sun, 14 Oct 2007, danglin at gcc dot gnu dot org wrote:
> After recently updating libgmp, I find that shared libraries that
> were linked against the old version are broken. For example, libtool
> links libguile.sl against libgmp.sl.7, /usr/local/lib/libltdl.sl.4,
> /usr/lib/libc.1 and /users/gcc/gcc-4.2.0/lib/libgcc_s.sl.
The reason previously installed libraries break is the dependent libraries
have hardcoded dependencies on the `*GLOBAL*' symbols used for constructors,
destructors and EH exception support (hppa2.0w-hp-hpux* currently has
its EH data in the data section).
The attached patch fixes the versioning problem. However, we still have
a random portion in every `*GLOBAL_F*' symbol. This can easily change
from one build to the next. So, I'm thinking we need to bury them
in special sections similar to .init_array and .fini_array. However,
the dynamic loader doesn't provide direct support for this, so this
it's going to take some thinking as to the best way to do this.
Dave
------- Comment #2 from dave at hiauly1 dot hia dot nrc dot ca 2007-10-18 23:55 -------
Created an attachment (id=14371)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14371&action=view)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33772