Change to DSO-linking semantics of the compiler
Adam Williamson
awilliam at redhat.com
Wed Jan 13 09:03:09 UTC 2010
On Wed, 2010-01-13 at 01:15 +0100, Kevin Kofler wrote:
> On Wednesday 13 January 2010, Adam Williamson wrote:
> > On Tue, 2010-01-12 at 01:59 +0100, Milos Jakubicek wrote:
> > > Also I have really doubts what concerns upstreamability of the necessary
> > > changes in packages. Especially if other distributions will (???)
> > > continue shipping ld with the traditional semantics, this means hours of
> > > headache discussions with upstream not willing to accept the patch.
> >
> > I may be misunderstanding, but I believe this is the same thing Mandriva
> > refers to as underlinking:
> >
> > http://wiki.mandriva.com/en/Underlinking
>
> No, it's not the same thing: Consider an executable a, a library libb.so and a
> library libc.so, and a is linked against -lb:
> * underlinking is if libb.so uses symbols from libc.so, but does not link
> against -lc. Then you have to link a explicitly against -lb -lc even if it
> only uses symbols from libb.so. This is a bug in libb.so.
> * what is being discussed here is if libb.so DOES link libc.so, but now
> executable a uses symbols from libc.so without also using -lc. If libb shipped
> a libb.la file which did -lb -lc (which .la files tend to do), then a will link
> file everywhere else, just not on Fedora because we delete .la files. The old
> semantics made this case work without the .la file, the new semantics lead to
> programs failing to link in Fedora, making Fedora incompatible with upstream
> (unless we start to ship .la files again).
I see - thanks for the explanation. I'm clear now!
--
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Fedora Talk: adamwill AT fedoraproject DOT org
http://www.happyassassin.net
More information about the devel
mailing list