libtool-patches
[Top][All Lists]
Advanced

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

Re: another darwin patch


From: Robert Boehne
Subject: Re: another darwin patch
Date: Tue, 04 Mar 2003 01:22:02 -0600

Peter O'Gorman wrote:
> On Tuesday, March 4, 2003, at 01:44  AM, Boehne, Robert wrote:
> >> Then why does pass_all exist?
> > For those linking static libs to executables.
> You didn't get enough coffee today :)
Yes, you are wise beyond your years (I ran out of beans). ;)

I wasn't around when the library dependency code was written,
so I can't tell you why pass_all is used so widely.  I did check
to see how it compares to file_magic (IMHO, the right way) and
file_magic has 17 uses, pass_all has 12.  It appears as the
original designers of the dependency code didn't intend to
leave out the possibility of linking static archives into
shared libraries.  I would say though, that all the work that
went into file_magic is there just to prevent such abuse.
  I agree with the idea that pass_all should not be used
when file_magic is usable, perhaps Linux had trouble supporting
so many different architectures, just look at what "file" gives
us:
file libltdl/.libs/libltdl.so.3.1.0: ELF 32-bit LSB shared object, Intel
80386, version 1 (SYSV), not stripped

It wouldn't suffice to ignore "32-bit", "LSB", "Intel 80386", etc.
because
files of other architectures may be on the system, and we wouldn't
want to accept them.  If I had to guess, I'd say the "pass_all" is a
punt, it's easier than defining file_magic for each one.

Alexandre, do you have anything to add to this thread?

Thanks,

Robert

Peter O'Gorman wrote:
> 
> On Tuesday, March 4, 2003, at 01:44  AM, Boehne, Robert wrote:
> >>
> >> Then why does pass_all exist?
> >
> > For those linking static libs to executables.
> >
> 
> You didn't get enough coffee today :)
> 
> My question was more of a "If libtool is aiming to be the same across
> all platforms, with no platform being allowed to link a shared library
> with a static archive as a dependency lib, then why does the
> lt_cv_deplibs_check_method=pass_all exist, and why is it the method
> which is used for linux and most of the other OSes in libtool.m4?"
> thing.
> 
> Currently, if a developer on one of those systems which have "pass_all"
> as the deplibs_check_method adds (to use Ben Reed's example) -lXinerama
> to LIBADD then build their shared library libtool will not give them
> any portability warnings, it doesn't even check what kind of library
> libXinerama is. How does this help in portability when we then go to
> compile this on darwin, and libtool drops the dependency because it is
> not available as a shared library?
> 
> Then we also get to situation two, developer A's OS Vendor includes
> libfoo as a shared library, developer B includes libfoo, but only in
> their developer package, as a static archive. Developer A's packages
> will not build on developer B's machine. portable?
> 
> pass_all allows developers to make non-portable packages and should be
> removed from libtool.
> 
> Peter
> 
> _______________________________________________
> Libtool-patches mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/libtool-patches




reply via email to

[Prev in Thread] Current Thread [Next in Thread]