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