Date: Sun, 25 Jun 2006 19:14:05 +0900 From: Norikatsu Shigemura <nork@FreeBSD.org> To: deischen@FreeBSD.org, Alexander Kabaev <kabaev@gmail.com> Cc: Alexander@Leidinger.net, nork@FreeBSD.org, current@FreeBSD.org Subject: Re: Linux-flashplugin7 & rtld - RFC Message-ID: <20060625191405.d0e78240.nork@FreeBSD.org> In-Reply-To: <20060622230416.3907a848@kan.dnsalias.net> References: <44986777.6070601@FreeBSD.org> <20060621061437.GA53019@fit.vutbr.cz> <ygeodwn2fea.wl%ume@mahoroba.org> <2265.211.18.249.19.1150871779.squirrel@mail.ninth-nine.com> <20060621121114.h6udocel5wsgg8sg@netchild.homeip.net> <2692.219.127.74.121.1150885501.squirrel@mail.ninth-nine.com> <20060621155053.d6lseiz8z4ow8wo8@netchild.homeip.net> <Pine.GSO.4.64.0606211204300.23942@sea.ntplx.net> <20060623013106.d4397e26.nork@FreeBSD.org> <Pine.GSO.4.64.0606221244240.427@sea.ntplx.net> <20060622230416.3907a848@kan.dnsalias.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 22 Jun 2006 23:04:16 -0400 Alexander Kabaev <kabaev@gmail.com> wrote: > On Thu, 22 Jun 2006 12:49:59 -0400 (EDT) > Daniel Eischen <deischen@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.... =============================================================================== Case of current LPW approch: If You use following setting: /etc/libmap.conf ----------------------------------------------- [/usr/X11R6/lib/linux-flashplugin7/libflashplayer.so] libpthread.so.0 ?????????????? libdl.so.2 ?????????????? libz.so.1 libz.so.3 libm.so.6 ?????????????? libc.so.6 ?????????????? /etc/libmap.conf ----------------------------------------------- (*) ?????????????? is nork-flash7.so or deischen-flash7.so or libc.so.7/libm.so.4/libpthread.so.2. You can get following result: | wrapper | wrapper/glibc w/o | wrapper/glibc w/ | none ---------------+-----------+---------------------+------------------+----- libc | NG | NG | may be NG | ng libc/glibc-ver | ng | may be NG | may be NG | ng libc/glibc | ok | may be OK | may be OK | OK NOTE #1 ----------------------------------------------------------------- libc: src/lib/libc without SYMVER_ENABLED libc/glibc-ver: src/lib/libc with SYMVER_ENABLED + GLIBC Versions.def libc/glibc: src/lib/libc with SYMVER_ENABLED + GLIBC Versions.def + GLIBC Functions NOTE #2 ----------------------------------------------------------------- wrapper: nork's LPW wrapper/glibc w/o: (deischen's LPW)++. I saw deischen's LPW, and I think that deischen's approch almost works. wrapper/glibc w/: (deischen's LPW)++ with libc/libm/libptread NOTE #3 -------------------------------------------------------------------- OK: I confirmed that this is good works. ok: I considered that this is good works. may be OK: I didn't confirmed, but I think that this is good works. may be NG: I didn't confirmed, but I think that this is not works. ng: I considered that this is not works. NG: I confirmed that this is not works. ------------------------------------------------------------------------- ERROR PATTERN #1: LoadPlugin: failed to initialize shared library /usr/X11R6/lib/linux-flashplugin7/libflashplayer.so [/lib/libc.so.7: version GLIBC_2.1 required by /usr/X11R6/lib/linux-flashplugin7/libflashplayer.so not found] ERROR PATTERN #2: LoadPlugin: failed to initialize shared library /usr/X11R6/lib/linux-flashplugin7/libflashplayer.so [/usr/X11R6/lib/linux-flashplugin7/libflashplayer.so: Undefined symbol "open"] =============================================================================== Case of current LPW + [firefox-bin] approch: If You use following setting: /etc/libmap.conf ----------------------------------------------- [firefox-bin] libc.so.7 ?????????????? libm.so.4 ?????????????? libpthread.so.2 ?????????????? [/usr/X11R6/lib/linux-flashplugin7/libflashplayer.so] libpthread.so.0 ?????????????? libdl.so.2 ?????????????? libz.so.1 libz.so.3 libm.so.6 ?????????????? libc.so.6 ?????????????? /etc/libmap.conf ----------------------------------------------- (*) ?????????????? is nork-flash7.so or deischen-flash7.so or libc.so.7/libm.so.4/libpthread.so.2. You can get following result: | wrapper | wrapper/glibc w/o | wrapper/glibc w/ | none ---------------+-----------+---------------------+------------------+----- libc | NG | NG | may be NG | ng libc/glibc-ver | ng | may be OK | may be OK | ng libc/glibc | ok | may be OK | may be OK | OK ERROR PATTERN #1: nothing =============================================================================== * 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. 1-b. Add GLIBC Version.def to libc/libm/libpthread. 2. firefox doesn't use libc/libm/libpthread. But wrapper has libc/libm/libpthread all codes. /etc/libmap.conf ----------------------------------------------- [firefox-bin] libc.so.7 wrapper.so libm.so.4 wrapper.so libpthread.so.2 wrapper.so /etc/libmap.conf ----------------------------------------------- So I think that glibc functions are integrated to libc/m/pthread. But above issue will be fixed, I may think that separate libraries are good way.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060625191405.d0e78240.nork>