ci(dyninst): Add workflows to test rocprofiler-systems - #30
Conversation
|
I'll leave two notes:
|
There was a problem hiding this comment.
Pull request overview
Adds ROCm 7.2 CI coverage for building Dyninst and testing it through rocprofiler-systems.
Changes:
- Adds dependency-building and Dyninst build workflows.
- Adds downstream rocprofiler-systems tests.
- Fixes GCC 14 build errors and symbol-index removal.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/build.yaml |
Builds dependencies and Dyninst. |
.github/workflows/pr-tests.yaml |
Defines the six-image build matrix. |
.github/workflows/rocprofiler-systems.yaml |
Runs downstream Dyninst-facing tests. |
.github/workflows/libabigail.yaml |
Removes obsolete ABI checks. |
scripts/build-tpls.sh |
Builds pinned dependencies. |
scripts/tpl-versions.env |
Pins dependency versions. |
cmake/DyninstWarnings.cmake |
Adjusts GCC 14 frame warning threshold. |
common/h/Annotatable.h |
Corrects calloc argument ordering. |
symtabAPI/src/indexed_symbols.hpp |
Completes erase-remove operations. |
.gitignore |
Ignores dependency build output. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Should probably also add the ASAN workflows as well |
On second thought, probably not needed. The ASan workflows are for |
Motivation
JIRA ID: AIRPFOSYST-726
Have workflows build and install dyninst, followed by building and running the rocprofiler-systems ctest suite. Only ROCm 7.2 is exercised, there is no real reason to test multiple ROCm versions.
Technical Details
Source file changes:
Annotable.h: Required for GCC14 on RHEL10 as-Wallflag adds-Wcalloc-transposed-args.indexed_symbol.hpp:indexed_symbols::erase()calledstd::removeon its four secondary indexes and discarded the result, so erased symbols stayed findable by offset and name, leaving the indexes disagreeing with the master table. Addingerase(it, end())completes the idiom. Gcc 14's[[nodiscard]]onstd::removeturned it into a build failure.DyninstWarnings.cmake: Added GCC14_ arm raising the frame-size cerling forInstructionDecode-power.Conly.Workflows:
tpl-versions.env: PinsoneTBB,elfutils, andbinutilsto what rocprofiler-systems ships.built-tpls.sh: Builds the dyninst deps from source.build.yaml: Reusable builder for dependencies and dyninst.pr-tests.yaml: Six-image matrix that calls the builder script.libabigail.yaml: Uneeded.rocprofiler-systems.yaml: Buildsrocprofiler-systemsand runs only the tests that exercise dyninst (runtime_instrument,binary_rewrite,binaries) throughrocprofiler-systems'srun_ci.py.compiler-multibuild.yaml: Weekly cron and the only caller of the oldbuild.yamlinterface; this fork runs CI per PR only.If you are wondering what compiler flags dyninst is built with (all the warning ones), see
DyninstWarnings.cmake.Test Plan
The new workflows.
Test Result
See the result of the new workflows. I will verify that tests actually ran.