fix(patches): build RcppParallel against system oneTBB instead of disabling TBB

The disable-tbb patch skipped the bundled Intel TBB build by forcing the
TinyThread backend, which also stripped RcppParallel's TBB linkage. That
broke every dependent that links TBB through RcppParallelLibs() (rstan and
the whole Stan cluster) with 'symbol not found: tbb::detail::r1::observe'.

Replace it with system-tbb.patch: leave USE_TBB unset (so the bundled build
is skipped on musl and g++ 15) but keep the TBB backend and link the system
oneTBB that the build-env images now ship. RcppParallelLibs() then hands the
system-TBB link flags to dependents, provided TBB_INC/TBB_LIB are exported in
the images (added separately in build-env-images).

Verified in the build-env-alpine:3.24 image: RcppParallel builds against
oneTBB 2022 with no ABI errors, and rstan links (-ltbb -ltbbmalloc) and
loads without the missing-symbol error.
This commit is contained in:
Patrick Schratz 2026-07-19 08:39:53 +00:00
commit d74424cb37
No known key found for this signature in database
GPG key ID: 62050D5BC68AB6DC

View file

@ -2,17 +2,22 @@
{
"package": "RcppParallel",
"versions": "*",
"platforms": ["alpine", "ubuntu-2604"],
"platforms": [
"alpine",
"ubuntu-2604"
],
"env": {},
"configure_args": [],
"makevars": {},
"patch": "RcppParallel/disable-tbb.patch",
"reason": "bundled Intel TBB build hangs/fails on musl (Alpine) and newer toolchains (g++ 15 on ubuntu-2604); patch unsets USE_TBB and forces -DRCPP_PARALLEL_USE_TBB=0 so RcppParallel skips the bundled build and uses the TinyThread backend"
"patch": "RcppParallel/system-tbb.patch",
"reason": "bundled Intel TBB build hangs/fails on musl (Alpine) and newer toolchains (g++ 15 on ubuntu-2604); link the system oneTBB (now in the build-env images) instead, keeping the TBB backend so dependents (rstan, ...) link TBB"
},
{
"package": "fs",
"versions": "*",
"platforms": ["*"],
"platforms": [
"*"
],
"env": {},
"configure_args": [],
"makevars": {},
@ -22,7 +27,9 @@
{
"package": "rstan",
"versions": "*",
"platforms": ["*"],
"platforms": [
"*"
],
"env": {},
"configure_args": [],
"makevars": {