[gst-devel] interposing / dup. symbols interest ...

michael meeks michael.meeks at novell.com
Mon Dec 12 07:33:05 CET 2005


On Mon, 2005-12-12 at 15:40 +0100, Jan Schmidt wrote:
> > 	Right; a link map or somesuch would be a good idea there I guess -
> > should improve link performance too.
> 
> What's a link map? How would it be handy? :)

	A link map allows you to control which symbols you want to export, and
hence which are internally bound at link time; however it's almost
always easier to just use the 'static' modifier for C method impl.s and
(potentially) namespace cross-module, internal calls with a '_' eg.
'_glib_do_foo' and then remove them with a regexp filter at link time
[ I forget how that's done, but it's not too hard ].

> > 	It turns out that this ELF feature for which we pay a huge performance
> > cost at link time is not only almost useless, but creates tons of silent
> > bugs.
> 
> Which ELF feature? 

	This is an aside ;-) but there is a huge cost to looking up every
symbol from every library in every other library to resolve it - a clear
N*N problem in the linker, 

> Mingling with this dark voodoo isn't going to cost me my soul, right?

	Hopefully not ;-) you'll be pleased to know though that you're in good
company; eg. the Java Runtime Environment libraries like to (helpfully)
export things like 'free_list' and 'list_size' ;-> /me is poking them
too

	Good to get them fixed though,

	Regards,

		Michael.

-- 
 michael.meeks at novell.com  <><, Pseudo Engineer, itinerant idiot





More information about the gstreamer-devel mailing list