Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jun 2001 09:31:31 -0500
From:      "Jacques A. Vidrine" <n@nectar.com>
To:        Peter Wemm <peter@wemm.org>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: nsswitch dynamically loadable modules
Message-ID:  <20010611093131.A17422@shade.nectar.com>
In-Reply-To: <20010611001723.C9A7F380E@overcee.netplex.com.au>; from peter@wemm.org on Sun, Jun 10, 2001 at 05:17:23PM -0700
References:  <20010610200113.T89118-100000@fourier.szit.bme.hu> <20010611001723.C9A7F380E@overcee.netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
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 / n@nectar.com / jvidrine@verio.net / nectar@FreeBSD.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010611093131.A17422>