Problem with openssl libraries in ubuntu 16.04 (but not in 14.04)


I’ve recently tried linux graphics debugger ver 2.0 but I’m getting an error related to openssl. The message is:

./nvidia-gfx-debugger.bin: relocation error: /usr/lib/x86_64-linux-gnu/ symbol EVP_aes_128_cbc_hmac_sha256, version OPENSSL_1.0.2 not defined in file with link time reference

I’ve tried the same in another system with older 14.04 and there the debugger worked like a charm.

Any idea how to workaround this issue?

I’ve found the solution. It’s to build openssl from source and use that instead of Ubuntu’s one.

I’ll write the process so that people won have to waste time trying to figure out the openssl’s broken build system:

  • Download openssl-1.0.1u.tar.gz
  • Install makedepend: sudo apt-get install xutils-dev
  • Configure like this: ./config --prefix=/opt/openssl-1.0.1u shared -fPIC no-ssl2 no-ssl3 no-comp
  • make install
  • Run the debugger with the new lib: LD_LIBRARY_PATH=/opt/openssl-1.0.1u/lib /path/to/nvidia_debugger/nvidia-gfx-debugger

In addition to Your post:

I had to LD_PRELOAD from openssl dir, without it I still had undefined symbol: EVP_aes_128_cbc_hmac_sha256.

So my full launch looks like:
LD_LIBRARY_PATH=/opt/openssl-1.0.2k/lib LD_PRELOAD=/opt/openssl-1.0.2k/lib/ /usr/local/Tegra-Graphics-Debugger/nvidia-gfx-debugger

I didn’t have to build SSL from the source just did
LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/ /usr/local/Tegra-Graphics-Debugger/nvidia-gfx-debugger to make it work on my 16.04 machine

psharma’s answer worked for me too on 16.04.