Linux-flashplugin7 & rtld - RFC

Daniel Eischen deischen at freebsd.org
Mon Jun 26 19:39:53 UTC 2006


On Sun, 25 Jun 2006, Norikatsu Shigemura wrote:

> On Thu, 22 Jun 2006 23:04:16 -0400
> Alexander Kabaev <kabaev at gmail.com> wrote:
>> On Thu, 22 Jun 2006 12:49:59 -0400 (EDT)
>> Daniel Eischen <deischen at freebsd.org> wrote:
>>> On Fri, 23 Jun 2006, Norikatsu Shigemura wrote:
>>>> On Wed, 21 Jun 2006 12:39:09 -0400 (EDT)
>> <SKIP>
>>>> 	spamming? junk symbols?  Humm...  I don't think so, but it
>>>> 	is POLICY that I think.  Althought I'm working, I want to
>>>> 	merge 'Userland COMPAT_LINUX technology' to FreeBSD source
>>>> 	tree.  I hope that you do consent.  So I hope to discuss
>>>> 	@GLIBC_2.* symbols:-).
>>> No, I would still oppose that.  I think separate libraries
>>> are the way to go.
>
> 	deischen: Sorry, I didn't read 'separate libraries'.
>
>> ... and I will support Daniel's objection if it will come to that.
>> Sorry, but Linux symbols in FreeBSD native libraries amount to only one
>> thing - pollution and nothing else.
>
> 	Humm.. Even if GLIBC version information in Version.def,
> 	should I say that it was polluted or not....

Yes, any GLIBC symbols in our stock libraries would be pollution
IMHO.

> ===============================================================================
> * Can we separate library to use Linux-flash7?
>  Yes, we need following conditions (1 or more):
>
> 	1. Following error should be banished.
> [/lib/libc.so.7: version GLIBC_2.1 required by /usr/X11R6/lib/linux-flashplugin7/libflashplayer.so not found]
>
> 	1-a. To banish, I think that following code should be fixed at
> 	     check_object_provided_version in src/libexec/rtld-elf/rtld.c.
>
> 		if (vd == NULL) {
> 			_rtld_error("%s: version %s required by %s not defined",
> 			depobj->path, vername, refobj->path);
> 			return (-1);
> 		}
>
> 	     I tried to remove 'return (-1);', but I don't know side-effects.

I think that rtld needs to be fixed so that we fully respect
libmap.conf.  If flashplayer.so requires (Linux) library libc.so.7,
and libc.so.7 is mapped to wrapper.so, then any versioned symbols
should be pulled from wrapper.so, not our own native libc.so.7.

The check for the object providing the correct version should
still be done, but it needs to be checking the correct (libmap'd)
object.

-- 
DE


More information about the freebsd-current mailing list