Subject: Re: HEADS UP: migration to fully dynamic linked "base" system
To: None <lennart@augustsson.net, thorpej@wasabisystems.com>
From: Lennart Augustsson <lennart@augustsson.net>
List: current-users
Date: 08/26/2002 20:48:38
Jason wrote:
>  > Why should using dlopen() require that the executable is dynamically
>  > linked?  Requiring this is, imo, broken.  If using dlopen() is the
>  > reason to go to a dynamically linked /bin, then fix dlopen() instead.
> 
> dlopen() CANNOT be fixed in this case:
> 
>         1. In ELF, the kernel runs a dynamic executable my mapping the
>            interpreter (ld.elf_so), and passing info about the program
>            to it.  The interpreter then maps stuff, and jumps into the
>            program.
> 
>         2. The interpreter provides dlopen(), etc.
> 
> A statically-linked executable has no interpreter, and thus has no
> dlopen().
I'm sorry Jason, but that's just nonsense.  Of course I can write
a dlopen() function which is statically linked into my program and
which is different from the dynamic dlopen(), but which will provide
the same functionality.  It's might be non-trivial%, but it's not impossible.
(No, I'm not volunteering. :)

	-- Lennart

% The non-trivial part being to get all the information from the
  statically linked binary into tables that dlopen() can access.
  This part will probably need some fiddling while linking.