Releasing a glibc 2.28 friendly binary for elastix 5.3.0 #1082
Replies: 5 comments 1 reply
-
Thanks for your question, Kyle. Can you please elaborate a little bit? Sorry, I'm not a linux expert. How does your use case look like, would you like to use the elastix library, or the elastix executable? Are you able to build elastix yourself, from the source? Most interesting, of course, what are those compilation issues? |
Beta Was this translation helpful? Give feedback.
-
Hi Neil, I'm a PhD student who is a current dev for LAMA. We use command line calls via subprocessing in python scripts (I know it's not memory efficient). We've been happily using the elastix 4.9.0 executable but want to update elastix for both the improved runtime as well as the in-built jacobian stuff. We use HPC resources via the National Computional Instructure (NCI) in which our clusters use Rocky Linux 8, which uses glib2.28. I've been trying to use the following commands to place the 5.1.0. into a data library path (within a bash script): Main installation stepswget https://github.com/SuperElastix/elastix/archive/refs/tags/5.1.0.tar.gz End of Main Installation Stepscreate Tool Command Language (TCL) module filemkdir -p ${APP_MODULE_PATH} However, when I call the executable I'm getting the following errors: I can load a C++ compiler, which fixes the GLIBCXX_3.4.26 error but our glibc is a system library that can't be replaced. I've been hesistant to build from source as it might not be possible to build with glibc 2.28 (either for elastix or ITK) and I would like some advice. Kind Regards, |
Beta Was this translation helpful? Give feedback.
-
Thanks for de details @dorkylever
If you do not build elastix from source, 5.1.0.tar.gz may be the wrong file for you, because it just contains the source! Can you possibly still try elastix-5.1.0-linux.zip from https://github.com/SuperElastix/elastix/releases/tag/5.1.0 ? When you then run elastix, I would suggest specifying its file path, for example:
Instead of just
If that still produces the same error, maybe this information (suggested by my colleague Baldur) could be of help: https://www.baeldung.com/linux/rpath-change-in-binary |
Beta Was this translation helpful? Give feedback.
-
Hi All, It ended up being possible to build from source (using gcc 13.2.0). I originally tried the zip and it still gave the same error. When I checked, the paths in binary were correct and the libraries were linked. It was just that versions of GLIBC are required in the binary (shown below) (GLIBC > 2.25) are not present on the system. Can I asked why you switched to building with a GNU compiler? Compared to gcc, it seems a lot heavier on libc than c++, which at least for us, is harder to change? [kd0793@gadi-login-01 5.1.0]$ readelf -V bin/elastix Version symbols section '.gnu.version' contains 588 entries: Version needs section '.gnu.version_r' contains 8 entries: |
Beta Was this translation helpful? Give feedback.
-
Thanks for asking. However, I don't really understand the question 🤷 GCC = The GNU C++ compiler! (Or more precisely: the GNU Compiler Collection: https://www.gnu.org/software/gcc ) So we do use GCC to build elastix binaries for Linux, we did not "switch"! |
Beta Was this translation helpful? Give feedback.
-
Hi All,
Is it possible to release a linux binary for elastix 5.1.0 that's compatible with glibc 2.28? I'm presuming there's probably compilation issues with itk 5.3.0.
Kind Regards,
Kyle
Beta Was this translation helpful? Give feedback.
All reactions