Skip to content

make Z3 & zstd explicit dependency for numba to fix non-rpath build#24406

Merged
Micket merged 3 commits intoeasybuilders:developfrom
Thyre:20251030092530_new_pr_numba0620
Nov 4, 2025
Merged

make Z3 & zstd explicit dependency for numba to fix non-rpath build#24406
Micket merged 3 commits intoeasybuilders:developfrom
Thyre:20251030092530_new_pr_numba0620

Conversation

@Thyre
Copy link
Copy Markdown
Collaborator

@Thyre Thyre commented Oct 30, 2025

(created using eb --new-pr)

Fixes the following sanity check failure with numba, when the rpath build option is disabled:

  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/ffi.py", line 141, in __getattr__
    return self._fntab[name]
           ~~~~~~~~~~~^^^^^^
KeyError: 'LLVMPY_AddSymbol'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/ffi.py", line 122, in _load_lib
    self._lib_handle = ctypes.CDLL(str(lib_path))
                       ~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/data/EasyBuild-develop/software/Python/3.13.5-GCCcore-14.3.0/lib/python3.13/ctypes/__init__.py", line 390, in __init__
    self._handle = _dlopen(self._name, mode)
                   ~~~~~~~^^^^^^^^^^^^^^^^^^
OSError: libz3.so.4.15: cannot open shared object file: No such file or directory

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/bin/numba", line 5, in <module>
    from numba.misc.numba_entry import main
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/numba/__init__.py", line 73, in <module>
    from numba.core import config
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/numba/core/config.py", line 17, in <module>
    import llvmlite.binding as ll
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/__init__.py", line 4, in <module>
    from .dylib import *
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/dylib.py", line 36, in <module>
    ffi.lib.LLVMPY_AddSymbol.argtypes = [
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/ffi.py", line 144, in __getattr__
    cfn = getattr(self._lib, name)
                  ^^^^^^^^^
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/ffi.py", line 136, in _lib
    self._load_lib()
    ~~~~~~~~~~~~~~^^
  File "/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/ffi.py", line 130, in _load_lib
    raise OSError("Could not find/load shared object file") from e
OSError: Could not find/load shared object file
)

@Thyre Thyre modified the milestones: 5.x, next release (5.2.0?) Oct 30, 2025
@Thyre Thyre added bug fix 2025a issues & PRs related to 2025a common toolchains 2025b issues & PRs related to 2025b common toolchains labels Oct 30, 2025
@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Oct 30, 2025

Looking at the libtree output, it should be actually sufficient to only provide Z3 as a dependency. LLVM can stay a build-dep. Will update the PR.

Edit: Also added zstd, as this was still using the "default path":

$ libtree /data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/libllvmlite.so
libllvmlite.so
├── libz.so.1 [LD_LIBRARY_PATH]
├── libzstd.so.1 [default path]
└── libz3.so.4.15 not found
    ┊ Paths considered in this order:
    ┊ 1. rpath:
    ┊ 2. LD_LIBRARY_PATH:
[...]
    ┊ 3. runpath was not set
    ┊ 4. ld config files:
    ┊    /usr/lib32
    ┊    /opt/rocm/lib
    ┊    /usr/lib/libfakeroot
    ┊ 5. Standard paths:
    ┊    /lib
    ┊    /lib64
    ┊    /usr/lib
    ┊    /usr/lib64
Error [/data/EasyBuild-develop/software/numba/0.62.0-foss-2025b/lib/python3.13/site-packages/llvmlite/binding/libllvmlite.so]: Not all dependencies were found

@Thyre Thyre changed the title make LLVM explicit dependency for numba to fix non-rpath build make Z3 explicit dependency for numba to fix non-rpath build Oct 30, 2025
@Thyre Thyre changed the title make Z3 explicit dependency for numba to fix non-rpath build make Z3 & zstd explicit dependency for numba to fix non-rpath build Oct 30, 2025
@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Oct 30, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath=/tmp/$USER/ecpr-24406 --disable-rpath"

@boegelbot
Copy link
Copy Markdown
Collaborator

@Thyre: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24406 EB_ARGS="--installpath=/tmp/$USER/ecpr-24406 --disable-rpath" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24406 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8588

Test results coming soon (I hope)...

Details

- notification for comment with ID 3466679581 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Oct 30, 2025

With --disable-rpath


Test report by @Thyre
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor (zen4), 1 x AMD Navi 48 [Radeon RX 9070/9070 XT/9070 GRE] (device id: 0x7550, gfx: gfx1201, driver: Linuxversion6.17.5-arch1-1(linux@archlinux)(gcc(GCC)15.2.120250813,GNUld(GNUBinutils)2.45.0)#1SMPPREEMPT_DYNAMICThu,23Oct202518:49:03+0000), 1 x AMD Raphael (device id: 0x164e, gfx: gfx1036, driver: Linuxversion6.17.5-arch1-1(linux@archlinux)(gcc(GCC)15.2.120250813,GNUld(GNUBinutils)2.45.0)#1SMPPREEMPT_DYNAMICThu,23Oct202518:49:03+0000), Python 3.13.7
See https://gist.github.com/Thyre/929ce7cff87bed21dd0b1e5a2f402370 for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/b8947bbe25e9d4f9e3d9b72c42a56ff5 for a full test report.

@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Oct 30, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath=/tmp/$USER/ecpr-24406"

@boegelbot
Copy link
Copy Markdown
Collaborator

@Thyre: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24406 EB_ARGS="--installpath=/tmp/$USER/ecpr-24406" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24406 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8594

Test results coming soon (I hope)...

Details

- notification for comment with ID 3467558901 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/70e2aeed7c2a8101d0a763db16f99a1d for a full test report.

Copy link
Copy Markdown
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Micket Micket merged commit da3ccfd into easybuilders:develop Nov 4, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2025a issues & PRs related to 2025a common toolchains 2025b issues & PRs related to 2025b common toolchains bug fix ready-to-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants