mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2026-06-17 09:17:05 +00:00
ci: add spack package for a tsan-instrumented libstdc++
- gcc ships no supported switch to build libstdc++ with -fsanitize=thread, and spack's gcc recipe filters all flags out of the target-library build (CXXFLAGS_FOR_TARGET is owned by its generated --with-build-config=spack makefile), so provide a dedicated libstdcxx-tsan package in a custom repo - build only the libstdc++-v3 subtree from the matching gcc release tarball, configured standalone against the already-installed toolchain (recipe modeled on https://iree.dev/developers/debugging/sanitizers/), instead of rebuilding all of gcc - the result is a drop-in runtime replacement for the compiler's libstdc++ (same soname and symbol versions), to be loaded only by the instrumented test executables - normalize the install layout after make install: the standalone build puts the runtime libraries into the multilib os dir (lib64 on x86_64) regardless of --libdir, and --with-toolexeclibdir only applies to cross builds - register the repo in the setup-deps action before creating the env
This commit is contained in:
committed by
Dennis Klein
parent
988ef81922
commit
331c50ab0e
1
.github/actions/setup-deps/action.yml
vendored
1
.github/actions/setup-deps/action.yml
vendored
@@ -69,6 +69,7 @@ runs:
|
||||
shell: spack-bash {0}
|
||||
run: |
|
||||
echo "::group::Install dependencies"
|
||||
spack repo add "$GITHUB_WORKSPACE/test/ci/spack_repo/fairmq_ci"
|
||||
spack env create fairmq test/ci/spack-${{ inputs.env }}.yaml
|
||||
spack -e fairmq add gcc@${{ inputs.gcc }}
|
||||
spack -e fairmq config add "packages:all:require:'%gcc@${{ inputs.gcc }}'"
|
||||
|
||||
Reference in New Issue
Block a user