dptech-corp / Uni-Dock

Uni-Dock: a GPU-accelerated molecular docking program
188 stars 40 forks source link

Compatibility issues with rocky 8.5 #4

Closed andreacarotti331 closed 1 year ago

andreacarotti331 commented 1 year ago

Dear all, I'm at University of Perugia (ITLAY), I'm running an OS Rocky 8.5 that ships with gcc 2.28. When running the precompiled unidock exec I have this errors.

./unidock: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./unidock)

./unidock: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./unidock)

Could you compile it with the static option? or can you suggest me how to overcome this issue. Thanks Andrea

caic99 commented 1 year ago

Hi @andreacarotti331 , Would you try installing gcc-9 to match the glibc version? The exetutable is compiled using gcc 9.4.0, fyi.

andreacarotti331 commented 1 year ago

Hi, it's not so simple to upgrade the gcc...usually this means the risk to break something is high. By the way I managed to workaround by following this answer https://stackoverflow.com/a/61738375. I downloaded two rpm (libstdc++-11.3.1-4.3.el9.x86_64.rpm and glibc-2.34-68.el9.x86_64.rpm) and extracted by rpm2cpio in a private local folder. Now the program is running.

pkuyyj commented 1 year ago

Maybe we can compile Uni-Dock using older glibc version to solve this problem and similar problem on CentOS with old versions. @caic99

andreacarotti331 commented 1 year ago

I think it would be better if you don't prove the source code. You have two option:

subercui commented 1 year ago

Hi, got the same issue here

pkuyyj commented 1 year ago

We have compiled Uni-Dock with glibc 2.17. unidock_glibc2_17.zip

subercui commented 1 year ago

Hi, this 2.17 build brings up more dependencies I don't have. I checked this with ldd unidock_glibc2_17:

$ ldd unidock_glibc2_17 linux-vdso.so.1 (0x00007fffc491f000) libboost_system.so.1.77.0 => not found libboost_thread.so.1.77.0 => not found libboost_serialization.so.1.77.0 => not found libboost_filesystem.so.1.77.0 => not found libboost_program_options.so.1.77.0 => not found libboost_chrono.so.1.77.0 => not found libboost_atomic.so.1.77.0 => not found libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f317c2bb000) libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f317c078000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f317be70000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f317bc6c000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f317b85f000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f317b4c1000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f317b2a9000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f317aeb8000) /lib64/ld-linux-x86-64.so.2 (0x00007f317c4da000)

Please have a look at the missing dependencies starting with libboost*. I have 1.65 on the system but not 1.77. Are those dependencies really needed? I don't see them in the original binary build