>> Linux/ELF certainly does support DLLs. Shared libraries (.so's) are
>> essentially equivalent.
>I don't think so. DLLs come with a documented, supported API that allows
>dynamic linking at run time, where both the DLL name and the entry point
>name can be computed strings. (See my prior point about failure to
>establish stable higher-level APIs.)
"man dlopen"
>DLLs also have explicit control over
>which names from the link get exported -- they don't automatically export
>all extern names. This makes DLLs much more suitable as a way to package
>reusable functionality.
You could certainly write a program to patch an ELF shared object
file to turn off export of all but a specified list of global symbols, but,
as far as I know, you are correct in that no such utility currently
exists. Note that it would be harder to write such a utility for
static libraries because they are each stored as an archive of .o
files, but we are talking about dynamically loaded libraries here.
I am having a little difficulty thinking of when the lack of
such a utility has actually been a problem in my own experience, but I
can see a use for it.
Adam J. Richter Yggdrasil Computing, Incorporated
(408) 261-6630 "Free Software For The Rest of Us."