Skip to content

Conversation

@polmoorx
Copy link

Distributions prefer using system-provided libraries when present. xpumanager will now use the system-installed spdlog when available. If the system library is not present, it will gracefully fall back to the bundled version.

Distributions prefer using system-provided libraries when present.
xpumanager will now use the system-installed spdlog when available.
If the system library is not present, it will gracefully fall back
to the bundled version.

Signed-off-by: Polmoorx Shiva Kumar <polmoorx.shiva.kumar@intel.com>
@polmoorx polmoorx marked this pull request as ready for review August 12, 2025 09:25
@eero-t
Copy link

eero-t commented Aug 20, 2025

Not a developer in this project, but why not do the same also for the other 3rd party deps?

At least Debian & Ubuntu seem to include those too:

@eero-t
Copy link

eero-t commented Oct 23, 2025

Distributions prefer using system-provided libraries when present. xpumanager will now use the system-installed spdlog when available. If the system library is not present, it will gracefully fall back to the bundled version.

I suspect that current PR changes are not enough. I think XPUM include (and link) paths need also to be changed, so that XPUM packages are not built against vendored headers, as those may be incompatible with distro versions.

Not a developer in this project, but why not do the same also for the other 3rd party deps?

Ubuntu seems to include packages also for vendored googletest and (header-only) nlohmann_json + CL11 components:

At least Debian & Ubuntu seem to include those too:
* https://packages.ubuntu.com/noble/hwloc
* https://packages.ubuntu.com/noble/pcm

When comparing XPUM versions into Ubuntu versions, latter were lacking some things:

=> Using distro hwloc could work fine on subset of systems, but using distro PCM would not.

@eero-t
Copy link

eero-t commented Nov 6, 2025

Besides the header issue, according to "rpmfind" RHEL8 has spdlog v1.5.0 (so RHEL7/CentOS7 has even older), RHEL9 v1.10.0. Ubuntu 22.04 has v1.9, Ubuntu 24.04 v1.12. Whereas XPUM currently vendors v1.15.

XPUM e.g. uses SPDLOG_LEVEL env var to control log level, which came in v1.6, so oldest versions are clearly not enough => some version check would be needed.

I looked into disabling the vendored version headers, but then vendored fmt bundled under spdlog becomes an issue because C++ files include its headers from non-standard spdlog/fmt/bundled paths. Correct way would be to add include path pointing to the bundled headers for GCC, and those headers being inside fmt subdir, like system ones are. Change changing the current vendored include directory hierarchy would be rather large though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants