Hi,
as I still encounter problems with libtool-1.5.26 and make install
DESTDIR=..., from 'depdemo-inst.test' I've derived a new
'depdemo-instd.test', simply installing depdemo via DESTDIR.
Attached is a patch to add this test for libtool-1.5.26.
When adding this after depdemo-static, depdemo-conf, depdemo-nofast and
depdemo-shared, on platforms where I can test results are:
build/host-triplet staticconfnofastshared
---
i686-pc-linux-gnu PASS PASS FAIL PASS
i386-pc-solaris2.10 PASS PASS PASS PASS
sparc-sun-solaris2.9 PASS PASS PASS PASS
ia64-hp-hpux11.23 PASS PASS PASS PASS
powerpc-ibm-aix5.3.0.0PASS SKIP FAIL *FAIL*
hppa2.0w-hp-hpux11.11 PASS FAIL SKIP FAIL
Ok, failing on hppa2.0w-hp-hpux11.11 is less surprising currently.
More interesting is failing on linux with nofast...
But I'm focussing on 'conf' and 'shared' now, because they are the ones
being normally used AFAICT, so my current problem is 'shared' on
powerpc-ibm-aix5.3.0.0:
Here the problem is around line ltmain.in#2804, when one shared library
needs another in-package shared library:
2803 # Finalize command for both is simple: just hardcode it.
2804 if test $hardcode_direct = yes; then
2805 add=$libdir/$linklib
2806 elif test $hardcode_minus_L = yes; then
...
2809 elif test $hardcode_shlibpath_var = yes; then
...
2815 elif test $hardcode_automatic = yes; then
...
2822 else
2823 # We cannot seem to hardcode it, guess we'll fake it.
...
It is impossible to hardcode_direct using $libdir/$linklib, because
$linklib is not in $libdir yet but in $inst_prefix_dir$libdir.
But hardcoding $inst_prefix_dir$libdir/$linklib is bad either, as
$inst_prefix_dir is not there at runtime lateron.
Remember libtool is configured this way:
hardcode_direct=yes
hardcode_minus_L=no
hardcode_shlibpath_var=unsupported
It simply works when using something like the second attached patch to
fall back to guess we'll fake it (like all my other platforms),
although hardcode_direct IMHO is generally a bad idea when some RUNPATH
can be encoded, even without using DESTDIR.
Thoughts?
Thanks!
/haubi/
diff -rNu libtool-1.5.26.vanilla/tests/Makefile.in libtool-1.5.26.instd-test/tests/Makefile.in
--- libtool-1.5.26.vanilla/tests/Makefile.in 2008-02-01 17:38:41.0 +0100
+++ libtool-1.5.26.instd-test/tests/Makefile.in 2008-03-14 10:49:53.244749000 +0100
@@ -184,6 +184,7 @@
demo-inst.test demo-unst.test \
depdemo-static.test depdemo-make.test \
depdemo-exec.test depdemo-inst.test depdemo-unst.test \
+ depdemo-instd.test depdemo-unst.test \
mdemo-static.test mdemo-make.test mdemo-exec.test \
mdemo-inst.test mdemo-unst.test \
cdemo-conf.test cdemo-make.test cdemo-exec.test \
@@ -191,6 +192,7 @@
demo-inst.test demo-unst.test deplibs.test \
depdemo-conf.test depdemo-make.test \
depdemo-exec.test depdemo-inst.test depdemo-unst.test \
+ depdemo-instd.test depdemo-unst.test \
mdemo-conf.test mdemo-make.test mdemo-exec.test \
mdemo-inst.test mdemo-unst.test dryrun.test \
demo-nofast.test demo-make.test demo-exec.test \
@@ -199,11 +201,13 @@
demo-nopic.test demo-make.test demo-exec.test \
depdemo-nofast.test depdemo-make.test \
depdemo-exec.test depdemo-inst.test depdemo-unst.test \
+ depdemo-instd.test depdemo-unst.test \
cdemo-shared.test cdemo-make.test cdemo-exec.test \
demo-shared.test demo-make.test demo-exec.test demo-inst.test \
hardcode.test build-relink.test noinst-link.test demo-unst.test \
depdemo-shared.test depdemo-make.test \
- depdemo-exec.test depdemo-inst.test build-relink2.test \
+ depdemo-exec.test depdemo-instd.test depdemo-unst.test \
+ depdemo-inst.test build-relink2.test \
depdemo-unst.test \
mdemo-shared.test mdemo-make.test mdemo-exec.test \
mdemo-inst.test mdemo-unst.test \
diff -rNu libtool-1.5.26.vanilla/tests/defs libtool-1.5.26.instd-test/tests/defs
--- libtool-1.5.26.vanilla/tests/defs 2005-07-08 17:50:35.0 +0200
+++ libtool-1.5.26.instd-test/tests/defs 2008-03-14 10:49:53.254752000 +0100
@@ -42,6 +42,16 @@
prefix=NONE
fi
+image=./_image
+if test $need_image = yes; then
+ # An absolute path to an image directory.
+ test -d $image || mkdir $image
+ image=`cd $image pwd`
+else
+ test -d $image rm -rf $image
+ image=
+fi
+
# Extract CC from the libtool configuration
eval `$libtool --config | grep '^CC='`
diff -rNu libtool-1.5.26.vanilla/tests/depdemo-instd.test libtool-1.5.26.instd-test/tests/depdemo-instd.test
--- libtool-1.5.26.vanilla/tests/depdemo-instd.test 1970-01-01 01:00:00.0 +0100
+++ libtool-1.5.26.instd-test/tests/depdemo-instd.test 2008-03-14 10:49:53.264743000 +0100
@@ -0,0 +1,68 @@
+#! /bin/sh
+# depdemo-instd.test - try installing