I have compiled the vagrant-libvirt plugin following the instructions here: https://github.com/hashicorp/vagrant/issues/7039#issuecomment-488499883

It compiles fine, but at runtime I get the following error:

3: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
2: from /home/manu/.vagrant.d/gems/2.6.6/gems/ruby-libvirt-0.7.1/lib/libvirt.rb:11:in `<top (required)>'
1: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': /usr/lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b - /home/manu/.vagrant.d/gems/2.6.6/gems/ruby-libvirt-0.7.1/lib/_libvirt.so (LoadError)

However if I inspect /usr/lib64/libk5crypto.so.3 I do have this symbol exported:

$ readelf -Ws /usr/lib64/libk5crypto.so.3 | grep EVP_KDF_ctrl
5: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND EVP_KDF_ctrl@OPENSSL_1_1_1b (5)

On the other hand my system (RHEL 8) has openssl 1.1.1c installed:

rpm -qa | grep openssl

What should I exactly fix here ? Do I have wrong libraries installed ? Did I set wrong ld flags and include paths ?

  • 2
    It says "UND" meaning "undefined" - means it needs that symbol from elsewhere. That's also why its address/offset is zero. – Aaron D. Marasco Jun 19 at 15:57
  • Your are showing us two strings "openssl-1.1.1c" and then "OPENSSL_1_1_1b" ; seem obvious. – Rui F Ribeiro Jun 19 at 16:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.