On Wed, May 22, 2013 at 05:05:42PM -0500, Rich Johnston wrote:
> On 05/22/2013 04:22 PM, Eric Sandeen wrote:
> >On 5/22/13 3:58 PM, rjohnston@xxxxxxx wrote:
> >>In the default section of libhandle/Makefile, ltdepend prevented
> >>libhandle.so from being installed properly so remove it.
> >Can you explain how it prevented it?
> >[sandeen@sandeen xfsprogs]$ grep ltdepend */Makefile
> >libdisk/Makefile:default: ltdepend $(LTLIBRARY)
> >libhandle/Makefile:default: ltdepend $(LTLIBRARY)
> >libxcmd/Makefile:default: ltdepend $(LTLIBRARY)
> >libxfs/Makefile:default: crc32selftest ltdepend $(LTLIBRARY)
> >libxlog/Makefile:default: ltdepend $(LTLIBRARY)
> >seems to exist in every subdir, why is this one causing trouble?
> Because libhandle is the only one that is installed. ;)
So, after you've done a builds what does libhandle/.libs contain?
it shoul dlook something lik ethis:
$ ls -l libhandle/.libs/ total 180
-rw-r--r-- 1 dave dave 39416 May 23 08:50 handle.o
-rw-r--r-- 1 dave dave 21936 May 23 08:50 jdm.o
-rw-r--r-- 1 dave dave 61834 May 23 08:50 libhandle.a
lrwxrwxrwx 1 dave dave 15 May 23 08:50 libhandle.la -> ../libhandle.la
-rw-r--r-- 1 dave dave 938 May 23 08:50 libhandle.lai
lrwxrwxrwx 1 dave dave 18 May 23 08:50 libhandle.so -> libhandle.so.1.0.3
lrwxrwxrwx 1 dave dave 18 May 23 08:50 libhandle.so.1 -> libhandle.so.1.0.3
-rwxr-xr-x 1 dave dave 45667 May 23 08:50 libhandle.so.1.0.3
And the libhandle.lai should contain:
$ cat libhandle/.libs/libhandle.lai
libhandle.la - a libtool library file
# Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.1
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
# Names of this library.
library_names='libhandle.so.1.0.3 libhandle.so.1 libhandle.so'
# The name of the static archive.
# Linker flags that can not go in dependency_libs.
# Libraries that this one depends upon.
# Names of additional weak libraries provided by this library
# Version information for libhandle.
# Is this an already installed library?
# Should we warn about portability when linking against -modules?
# Files to dlopen/dlpreopen
# Directory that this library needs to be installed in:
See $library_names? That should be all the names that are created,
and there are three. The are set up via 'install-sh -T so_????'
So, look at the install rules being run:
> cd ../libhandle/.libs;
> ../../install-sh -o root -g root -m 755 -d /lib64;
Setting owner/perms on /lib64.
> ../../install-sh -o root -g root -m 755 -T so_dot_version libhandle.lai
"-T so_dot_version" is supposed to copy libhandle.so.1.0.3 to
/lib64/libhandle.so.1.0.3. i.e. install the current library.
> ../../install-sh -o root -g root -T so_dot_current libhandle.lai /lib64
That's supposed to set up the /lib64/libhandle.so.1 link back to
And that's it. So, what's missing?
Right - there's nothing that sets up /lib64/libhandle.so i.e.
this is missing:
../../install-sh -o root -g root -T so_base libhandle.lai /lib64
which would set up the /lib64/libhandle.so link to