Skip to content

tcmlib: add build-tcmlib.yml for riscv64 wheels - #1734

Open
luhenry wants to merge 3 commits into
mainfrom
tcmlib
Open

tcmlib: add build-tcmlib.yml for riscv64 wheels#1734
luhenry wants to merge 3 commits into
mainfrom
tcmlib

Conversation

@luhenry

@luhenry luhenry commented Sep 10, 2026

Copy link
Copy Markdown
Member

Compiles Intel's Thread Composability Manager (TCM) into libtcm.so. Upstream's PyPI tcmlib wheel is Intel's own closed-binary repackage with no sdist, so this builds the Apache-2.0 TCM source (git-subtree-merged into oneTBB) directly instead, same shape as the tbb port.

No upstream CI builds this wheel; TCM has no oneTBB tag of its own, so the workflow pins the commit that introduced TCM 1.5.0 rather than a tag.

Differs from upstream

  • Builds HWLOC 2.14.0 from source and bundles it - TCM requires it and it isn't a manylinux-portable system dependency.

Testing

  • ctypes smoke test: load libtcm.so, call tcmGetVersion(), assert it matches the built version.

License: Apache-2.0 (TCM's own LICENSE.txt); wheel also bundles HWLOC (BSD-3-Clause, its own COPYING file), since the build compiles and ships it as a runtime dependency.

Built and smoke-tested on cp312.

luhenry added a commit that referenced this pull request Sep 10, 2026
GCC rejects the flag outright on riscv64 ('is not supported for this
target'); oneTBB's own copy of the same file already gates it to x86,
TCM's copy does not.
…symlink

cp -L produces independent files for libtcm.so, .so.1, and .so.1.5.0;
patchelf only patched the bare .so, so the SONAME file the smoke test
dlopens (libtcm.so.1) had no rpath and couldn't find libhwloc.so.15
sitting next to it: 'OSError: libhwloc.so.15: cannot open shared object
file'.
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.

1 participant