On 10/30/2009 01:53 PM, Nick Bowler wrote:
> On 13:19 Fri 30 Oct     , Philip A. Prindeville wrote:
>> The problem is that this is an early linkage on the build host, where
>> the eventual DESTDIR hasn't yet been specified, but the resultant
>> libusbpp.la ends up looking like:
> 
> I suspect that you have two libtool libraries in the same source tree,
> with one linked against the other.  Chances are, the compiled binaries
> in the .libs directory are perfectly fine, and libtool is destroying
> them when you run 'make DESTDIR=/path/to/staging/dir install'.
> 
> So we have libfoo.la and libbar.la, libbar links with libfoo and.
> Furthermore, you have a version of libfoo already installed on the host
> system, in /usr/lib.  You cross-compile the package, using
> --prefix=/usr/lib (since that is where it will finally end up).
> 
> Then you do 'make DESTDIR=/path/to/staging/dir install', and libtool
> decides to re-link the libraries against the libraries in the final
> installed location.  In this case, it is /usr/lib.  The problem is that
> the libfoo in /usr/lib is the wrong one, since the cross-compiled libfoo
> never got installed there!
> 
> The workaround here is to manually copy the libraries from .libs into
> your staging directory.  IMHO the fix is to make libtool not re-link
> anything if DESTDIR is set -- correct me if I'm wrong, but it seems to
> me that the current behaviour cannot possibly be correct on any
> platform, even on the ones that require re-linking.

That sounds about right, actually.

So what would be a good fix to have libtool do the right think when DESTDIR is 
set?

Anyone want to come up with a patch for this that I can try?

Thanks,

-Philip


_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool

Reply via email to