On Sun, Jun 10, 2001 at 05:17:23PM -0700, Peter Wemm wrote:
> This is probably why it wont be committed.  If it uses dlopen() then it
> cannot work for the statically linked /bin/ls, /bin/sh, etc.  Anything in /
> sbin or /bin will never be able to see the usernames.  If you built the
> entire system with NOSHARED=NO, then /bin/ls, /bin/sh etc will be dynamically
> linked and the patches will probably work.  However, you had better have
> /usr on your root (/) file system or you wont be able to boot.  Linux's
> solution is to put the ld.so and libc.so onto the / partition in /lib.

This is the evolution I have in mind:

   nsswitch static only (FreeBSD-CURRENT today)
        |
        V
   nsswitch w/static support for files, dns, nis; modules can be added
   for other sources;  these modules may be compiled statically as part
   of libc, but would generally be loaded dynamically (this is roughly
   the stage the prototype was at)
        |
        V
   `module' implementing stubs to communicate with an external process;
   the external process itself can dynamically load other modules (this
   is my target before my next commit to -CURRENT)
        |
        V
   (finished) the stub/external process module is a standard way of
   providing additional sources, giving three ways to `link' in modules:
   static, dynamic, stub

The static  & stub  cases would support  all executables;  the dynamic
case  of  course  would   only  be  available  for  dynamically-linked
executables.

Supporting the `stub'  case was the primary cause for  designing a new
nsdispatch() API.

Cheers,
-- 
Jacques Vidrine / [EMAIL PROTECTED] / [EMAIL PROTECTED] / [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to