fix(patches): cover every RcppParallel 6.x release with the bundled-TBB patch #228
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/rcppparallel-patch-older-6x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
eeebef8pinned the RcppParallel patch to6.2.1, so 6.0.0 through 6.2.0 have been built unpatched since then.All of those releases still pass the TBB library dir as
-Wl,-L, and every build image ships a distro libtbb, so their binaries link the system TBB and can't load without it.The old patch file didn't apply to 6.0.0, 6.1.0 or 6.1.1, because the TBB read sites move between releases.
Changes
local/patches/RcppParallel/force-bundled-tbb-6.0.0.patch: new, generated against 6.0.0.local/patches/RcppParallel/force-bundled-tbb-6.1.x.patch: new, generated against 6.1.1, applies identically to 6.1.0.local/patches/RcppParallel/force-bundled-tbb-6.2.x.patch: renamed fromforce-bundled-tbb.patch, regenerated against 6.2.1 (theR/tbb.Rhunks keep 1 line of context so it also applies to 6.2.0), with comments no longer claiming the images exportTBB_*.local/patches/registry.json: one exact-version entry per release from 6.0.0 to 6.2.1. bincraft takes a single version constraint and aborts a target build on a non-applying patch, so a range would hit 5.x or unverified future releases. The reason now leads with the link-order bug and treats ignoringTBB_ROOT/TBB_LIB/TBB_INCas a safeguard (the images stopped exporting them in build-env-images c51ed09).Verification
git apply --check: each 6.x release applies exactly one patch; none applies to 5.1.11.select_target_patch_entry()against the new registry: 6.0.0 to 6.2.1 pick their patch; 5.1.11 and 6.2.2 get none.build-env-ubuntu:jammy,build-env-redhat:8andbuild-env-alpine:3.22, withTBB_LIB/TBB_INCset to simulate a stale image: every binary records NEEDEDlibtbb.sowith an$ORIGIN/../librunpath and loads with every system libtbb moved away.libtbb.so.12and fail to load without it. Redhat 8 recordslibtbb.so.2but still loads, because RcppParallel's bundled copy happens to use that name.Behaviour change
build-all-versionsis rerun for RcppParallel;weekly-rebuild-missingwon't pick them up.prepare_patched_repologs one expected "patch skipped" warning for each entry that doesn't match the latest CRAN version (four per dependency install).