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