Unfortunately this series doesn't work with the real VDDK library :-(

I see:

  nbdkit: debug: vddk: config_complete
  nbdkit: debug: dlopen shim prefix set to 
/home/rjones/tmp/vddk-6.7.3/vmware-vix-disklib-distrib/lib64

Then a little bit later during VDDK initialization it fails with:

  nbdkit: debug: VixDiskLib: Could not load default plugins from 
/home/rjones/tmp/vddk-6.7.3/vmware-vix-disklib-distrib/lib64/libdiskLibPlugin.so:
 Cannot open library: libcrypto.so.1.0.2: cannot open shared object file: No 
such file or directory.

I was curious if the replacement dlopen() was being called at all, and
it is certainly called from plugins/vddk/vddk.c:

  nbdkit: debug: dlopen: 
/home/rjones/tmp/vddk-6.7.3/vmware-vix-disklib-distrib/lib64/libvixDiskLib.so.6 
flags=2

It's also called from VDDK itself:

  nbdkit: debug: dlopen: 
/home/rjones/tmp/vddk-6.7.3/vmware-vix-disklib-distrib/lib64/libdiskLibPlugin.so
 flags=257

but it's not being explicitly called for libcrypto.so because
immediately after the above message I see the error:

  nbdkit: debug: VixDiskLib: Could not load default plugins from 
/home/rjones/tmp/vddk-6.7.3/vmware-vix-disklib-distrib/lib64/libdiskLibPlugin.so:
 Cannot open library: libcrypto.so.1.0.2: cannot open shared object file: No 
such file or directory.

So I guess libcrypto is actually loaded from a DT_NEEDED entry:

  $ eu-readelf -d 
/home/rjones/tmp/vddk-6.7.3/vmware-vix-disklib-distrib/lib64/libdiskLibPlugin.so
  | grep NEEDED
    NEEDED            Shared library: [libpthread.so.0]
    NEEDED            Shared library: [libstdc++.so.6]
    NEEDED            Shared library: [libdl.so.2]
    NEEDED            Shared library: [libcrypto.so.1.0.2]
    NEEDED            Shared library: [libssl.so.1.0.2]
    NEEDED            Shared library: [libexpat.so]
    NEEDED            Shared library: [libz.so.1]
    NEEDED            Shared library: [libvmacore.so]
    NEEDED            Shared library: [libvmomi.so]
    NEEDED            Shared library: [libvim-types.so]
    NEEDED            Shared library: [librt.so.1]
    NEEDED            Shared library: [libgcc_s.so.1]
    NEEDED            Shared library: [libc.so.6]
    NEEDED            Shared library: [ld-linux-x86-64.so.2]

which I suppose doesn't actually go through dlopen ...

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v

_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to