On Thu, Aug 23, 2001 at 05:35:09PM -0400, Brian S. Julin wrote:
> On Thu, 23 Aug 2001, Andreas Beck wrote:
> > The problem about having a static version of LibGGI is that it will still
> > try to dynamically load the .so driver files which are dynamic libraries
> > basically.
>
> Hopefully this is not what Debian wants -- what makes most sense
> for Debian is to build libraries/sublibs that are statically linked against
> everything else (libc/xlib/etc) but still are dynamically loaded by
> a statically linked libggi (which is statically linked to libgii/libgg).
I've read some of the policy now. (www.debian.org/doc/debian-policy/)
I quote:
"Shared object files (often .so files) that are not public
libraries, that is, they are not meant to be linked to by third
party executables (binaries of other packages), should be
installed in subdirectories of the /usr/lib directory. Such files
are exempt from the rules that govern ordinary shared libraries,
except that they must not be installed executable and should be
stripped.[37]"
Footnote [37] reads:
"A common example are the so-called ``plug-ins'', internal shared
objects that are dynamically loaded by programs using dlopen(3)."
The rules that don't apply include the one saying: "All libraries must
have a shared version in the lib* package and a static version in the
lib*-dev package."
This makes me wonder what the purpose of the static libraries is. The
one I could think of doesn't work now. (I should probably not ask
you, but Debian people.)
> That is, assuming a staticly linked library _can_ dlopen (?)
AFAIK statically linking with a library and just adding all the .o
files to the link command does the same thing, so I can't see how this
could disable dlopen(). (There's a difference that I know of: static
linking doesn't include .o files that aren't referenced, but that
should hardly matter.)
And with the quoted paragraphs above I'd be surprised if a statically
linked program couldn't link to plugins.
> I cannot believe we are the first software package to chafe against
> this Debian policy. There must be other highly modular libraries
> that cannot be truly made into statics.
SDL, XMMS, AlsaPlayer, ...
--
Niklas