[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: SUMMARY: Re: shared library -dev package naming proposal


> > - Kill the .la files and .a files.  Drop support for static linking.  Not
> >   something that should be done lightly and without prior project-wide
> >   discussion.
> > - Leave the .la files in place; -dev packages need to depend on -dev
> >   packages corresponding to those runtime dependencies that are also
> > built using libtool.  This is the status quo.
> - Option 4 (requires volunteers): fix libtool

Blankly stating that libtool needs to be 'fixed'
because it is 'broken' is not very helpful.
Would you care to explain what needs to be fixed and why 
it is broken?  Good working examples would be good.

The following are background informations, please do comment
if you find something is wrong about these:

libnewt is an example library that requires libslang.
The names are just symbollic; they just represent
random library.

fact 1: shared library 

  gcc -lnewt a.c
should work, since slang dependency is declared in NEEDED field
of libnewt.so, which the link will be resolved at run-time.

fact 2: static library

  gcc -lslang -lnewt a.c
is required for static lib linking, since .a files do not have
dependency information, and symbols need to be resolved at link time.

fact 3: libtool library
libtool tries to implement a wrapper around shared library and 
static library, so that both of them can be uniformly processed,
and allows specifying just:
  libtool cc -lnewt a.c

(implementation detail: .la files contain the dependency 
information for .a).

Debian implementation:

Packages Build-Depend on -dev packages they directly require,
thus a package requiring newt will Build-Depend on libnewt-dev,
but not libslang2-dev.

libnewt-dev will need to Depend on libslang2-dev, or
static lib compilation with libtool will break.


Junichi Uekawa, Debian Developer   http://www.netfort.gr.jp/~dancer/
183A 70FC 4732 1B87 57A5  CE82 D837 7D4E E81E 55C1 

Reply to: