4

I am getting this symbol lookup error from my Xilinx Vivado environment when I try to launch atom (exec atom) in the tcl console, it should execute this command in the system environment. (I have already posted this issue in their forums too). Commands such as exec gedit successfully work, but this does not. This is the error I am presented with:

/usr/share/atom/atom: symbol lookup error: /lib/x86_64-linux-gnu/libgnutls.so.30: undefined symbol: __gmpz_limbs_write

I have checked my system and there is Not two versions of gnutls and it is on the latest stable version according to apt cache policy.

    apt-cache policy libgnutls30
libgnutls30:
  Installed: 3.6.13-2ubuntu1.2
  Candidate: 3.6.13-2ubuntu1.2
  Version table:
 *** 3.6.13-2ubuntu1.2 500
        500 http://gb.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     3.6.13-2ubuntu1.1 500
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
     3.6.13-2ubuntu1 500
        500 http://gb.archive.ubuntu.com/ubuntu focal/main amd64 Packages

Ldd on the shared object file prints:

ldd libgnutls.so.30
linux-vdso.so.1 (0x00007ffeb5900000)
libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f4dd6455000)
libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f4dd6434000)
libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f4dd62b2000)
libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f4dd629c000)
libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f4dd6262000)
libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f4dd622a000)
libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f4dd61a4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4dd5fb2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4dd6779000)
libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f4dd5fa6000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4dd5fa0000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4dd5f7d000)

I am on Ubuntu 20.04 and I am fully up to date, kindly let me know if there are other details to provide. I would say I am an intermediate Linux user but I am not sure how to go about fixing shared object files and links. Any help would be greatly appreciated.


I posted in the Xilinx forum: Forum Link

and was able to solve it there, I believe this post is also the correct answer, so I am going to flag that as the solution.

andrew.46
  • 39,359

1 Answers1

0

I got a similar issue when setting vs code as external editor in Vivado 2022.2 (Ubuntu 22.04.1 LTS). Vivado uses it's own libgmp depending on Ubuntu release:

~/Xilinx/Vivado/2022.2/lib/lnx64.o/Ubuntu $ find . -name 'libgmp.so'
./libgmp.so
./20/libgmp.so

the top-level libgmp (the one that is being used) doesn't contain that symbol:

~/Xilinx/Vivado/2022.2/lib/lnx64.o/Ubuntu $ grep -r gmpz_limbs_write
grep: 20/libgmp.so.10.4.0: binary file matches

Workaround was to replace or symlink top-level libgmp to 20/libgmp:

~/Xilinx/Vivado/2022.2/lib/lnx64.o/Ubuntu $ mv libgmp.so.10.0.3 _libgmp.so.10.0.3.bak
~/Xilinx/Vivado/2022.2/lib/lnx64.o/Ubuntu $ cp 20/libgmp.so.10.4.0 libgmp.so.10.0.3
David
  • 116