Commit 1
Adds a check rule which builds and runs the kmeans benchmark and verifies its profile.coz contains the expected entry types.
Expected to fail CI for clang, due to missing -ldl. Also fails for earlier versions of g++ (not covered by CI).
It has been pushed as a separate commit to validate that CI does indeed fail.
Commit 2
Subsequent commit provides the fix, with CI passing.
Adds -ldl to benchmark build rules, with an explicit --no-as-needed to support older toolchains.
Notes
Given that it appears the --no-as-needed option is only required for older toolchains (and even then, potentially only when combined with older loaders that don't satisfy the weak symbol at load-time), I opted against mentioning it in the README.
If there is an appropriate place to mention this potential surprise, please let me know.
Apologies, I hadn't yet pushed the second commit, was waiting for the CI to complete on the first one. Will open a second PR with the fix for the CI failure.
Fixes #166
Commit 1 Adds a check rule which builds and runs the kmeans benchmark and verifies its profile.coz contains the expected entry types.
Expected to fail CI for clang, due to missing -ldl. Also fails for earlier versions of g++ (not covered by CI).
It has been pushed as a separate commit to validate that CI does indeed fail.
Commit 2 Subsequent commit provides the fix, with CI passing.
Adds -ldl to benchmark build rules, with an explicit
--no-as-needed
to support older toolchains.Notes Given that it appears the
--no-as-needed
option is only required for older toolchains (and even then, potentially only when combined with older loaders that don't satisfy the weak symbol at load-time), I opted against mentioning it in the README.If there is an appropriate place to mention this potential surprise, please let me know.