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