Debuggable Installations for Spack Packages
Spack is a dominant HPC package manager that automates scientific software installation, widely used in the HEP community. Spack builds software in temporary staging directories and installs the resulting binaries into a final prefix; this workflow complicates debugging, as debug symbols embedded in binaries reference source paths that no longer exist after installation. This proposal aims to enable debuggable installations by preserving staged source trees in the final prefix. The initial scope targets a subset of build systems with native out-of-source support, prioritizing CMake workflows. It promotes staged sources into the installation prefix as a dedicated source tree while excluding unnecessary build artifacts, and relocates debug information by rewriting source paths embedded in DWARF debug symbols to match the installed source locations. Robustness will be validated through a structured set of test cases integrated into Spack’s pytest framework and debugging tools (GDB/LLDB), covering source preservation, symbol resolution, and relocation compatibility. Current standard debugging approaches with spack develop and spack dev-build will be compared with the new workflow. The result is a practical foundation for debuggable Spack installations that improves developer workflows in HPC environments, with a potential extension to external debug symbol distribution (e.g., debuginfod) for lightweight binaries with on-demand debugging support.
Project details
Technologies
Not listed in the archive