On Sun, Aug 30, 2009 at 11:22:39PM +0200, Martin Costabel wrote:
> Jack Howarth wrote:
> >   Considering that Apple's X11 developers are recommending that
> > we tell user to nuke their installations and rebuild everything
> > from scratch under Snow Leopard as well as never install .la
> > files, why don't we take this opportunity to do just that. It may
> > cause some minor breakage in fink unstable (which should be
> > easily fixable), but we could modify fink to automatically purge
> > any *.la files from the packaged files in the debs created. Sure
> > we will need to correct some info file to remove the *.la from
> > the file list but that will be trivial. We really should embrace
> > this opportunity to purge out *.la files from 10.6 and later
> > releases.

See below for my thoughts on that proposal.

> Is anyone aware of a large-scale test of what happens if we indeed let 
> libtool build all those *.la files and then simply remove them, despite 
> each one of them screaming
> 
>   # Please DO NOT delete this file!
>   # It is necessary for linking the library.
> 
> ? Are there situations where they are really useful or perhaps even needed?

I think (please chime in here pogma!) they're used by libltdl when it
opens libs at runtime. I assume that falls back to opening the lib,
but the .la contains the install_name and other synonymous files, so
it might be more reliable. I don't know if libltdl uses the dependency
info to assist in opening the lib for loaders or loadees that are not
fully linked against all dependent libs to resolve symbols. I don't
know how libltdl (if no .la present) figures out whether to try a
.dylib or a .so.

They're used when libtool is used to link against the lib to propagate
linking against indirect/dependent libs. I think this is a poor thing
to be doing, since it introduces lots of un-necessary linking, which
results in lots of extraneous dependency propagation. Some packages
now blank the dependency lines in the .la to avoid that mess. Not
propagating these subdep links (either blanking dep lines in .la or
nuking .la altogether) makes it harder to trace builddepends of
packages that use pkgconfig to propagate dependent -I flags. It's
probably worth the extra effort to do that tracing correctly instead
of side-effect of otherwise-useless linking.

They're useful when static-linking an executable or when some
intermediate-level lib is available static-only. The .la should
propagate the subdependencies of directly linked libs. IMO,
static-linking is rarely used by users and many of our libs don't
provide .a anyway, so this is not a good reason alone to keep things.

> BTW, just for laughs: Those *.la-phobic Apple developers didn't quite 
> manage to get rid of them: They nuked the standard ones that really hurt 
> many previously-built dev packages, like libexpat.la, libiconv.la, 
> libxml2.la, but they didn't look in all subdirectories of /usr/lib. The 
> result is that the number of *.la files below /usr/lib increased from 75 
> (10.5) to 124 (10.6).

Debian is moving towards scrapping them in two steps. In the next
major release cycle, they're keeping .la but blanking their dependency
lines. In the subsequent release cycle, they're eliminating the .la
entirely. I don't think that's any better than just nuking them right
away, since we always get in trouble when we assume users keep
up-to-date regularly and that they don't use fink as a basis for
external things that contain propagated .la references.

dan

-- 
Daniel Macks
dma...@netspace.org
http://www.netspace.org/~dmacks


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to