Refresh platform010 build dependencies and remove TBB#14882
Conversation
Refresh the fbcode platform010 toolchain and library pins to current third-party2 versions, and remove the now-unused Intel TBB dependency. Toolchain / deps: - Fix update_dependencies.sh: the gcc and binutils trees moved from centos8-native to centos9-native, so the old paths resolved to nothing and a re-run emitted empty GCC_BASE/BINUTILS_BASE. Point them at centos9-native. - Bump clang 15 -> 21; binutils 2.37 -> 2.43; libunwind 1.4 -> 1.8; valgrind 3.19 -> 3.22; plus hash-only refreshes for the LATEST-tracked libs. Regenerate dependencies_platform010.sh. - Keep GCC pinned at 11.x. The only newer GCC in third-party2 (13.x) is built for glibc >= 2.35 (its libgcc_s needs _dl_find_object@GLIBC_2.35), but platform010 ships glibc 2.34, so GCC 13 will not link/run here. - zlib stays 1.2.8 (the only version with an x86_64 platform010 build). - Document why GCC/libgcc/glibc/zlib remain pinned in update_dependencies.sh. Remove TBB (no longer used) from the build system: the get_lib_base entry, both fbcode_config*.sh, build_detect_platform detection, the CMake WITH_TBB option / find_dependency, and cmake/modules/FindTBB.cmake. Dockerfiles and the HISTORY.md changelog are left untouched. (TBB was used by the old clock cache, long ago removed.) Although this change was originally motivated by upgrading gcc for its libasan not to hit process lifetime thread limits, upgrading gcc proved impractical under platform010. Bonus: fix USBAN+gcc build by making GetParam() valid by the time it is called in several test class constructors. Test Plan: a variety of local builds (gcc, clang; various sanitizers) using fbcode tooling No production code changes
|
@pdillinger has imported this pull request. If you are a Meta employee, you can view this in D109631787. |
✅ clang-tidy: No findings on changed linesCompleted in 509.0s. |
🟡 Codex Code ReviewAuto-triggered after CI passed — reviewing commit 9b2ff8e ❌ Codex review failed before producing findings. ℹ️ About this responseGenerated by Codex CLI. Limitations:
Commands:
|
✅ Claude Code ReviewAuto-triggered after CI passed — reviewing commit 9b2ff8e SummaryClean build infrastructure PR that refreshes platform010 dependency versions, removes the unused TBB dependency, and fixes a real UBSAN issue with C++ base class initialization order in test code. No production code changes. The changes are well-scoped and correctly implemented. High-severity findings (0): No high-severity findings. Full review (click to expand)Findings🔴 HIGHNone. 🟡 MEDIUMM1. Dockerfiles still install libtbb-dev --
|
| Context | Affected? | Assessment |
|---|---|---|
| Production code | NO | No production source files changed |
| CMake builds | YES | TBB option cleanly removed; FindTBB.cmake deleted |
| Make builds | YES | TBB detection removed from build_detect_platform |
| fbcode builds | YES | TBB removed from both config scripts; deps refreshed |
| Public API | NO | No API changes |
| Backwards compat | YES | Users who relied on -DWITH_TBB=ON in CMake will get an error, but TBB was already non-functional (no source code used it) |
Positive Observations
- Excellent documentation: New comments in
update_dependencies.shexplaining why GCC, libgcc, glibc, and zlib are pinned prevent future maintainers from blindly bumping versions. - Correct UB fix: The inheritance reorder is the proper C++ fix for the UBSAN issue.
- Clean TBB removal: Thorough across all build systems while correctly retaining
-ldlwith an updated comment. - Appropriate scoping: Dockerfiles and HISTORY.md correctly identified as out of scope.
ℹ️ About this response
Generated by Claude Code.
Review methodology: claude_md/code_review.md
Limitations:
- Claude may miss context from files not in the diff
- Large PRs may be truncated
- Always apply human judgment to AI suggestions
Commands:
/claude-review [context]— Request a code review/claude-query <question>— Ask about the PR or codebase
|
@pdillinger merged this pull request in 8c0790b. |
Refresh the fbcode platform010 toolchain and library pins to current third-party2 versions, and remove the now-unused Intel TBB dependency.
Toolchain / deps:
Remove TBB (no longer used) from the build system: the get_lib_base entry, both fbcode_config*.sh, build_detect_platform detection, the CMake WITH_TBB option / find_dependency, and cmake/modules/FindTBB.cmake. Dockerfiles and the HISTORY.md changelog are left untouched. (TBB was used by the old clock cache, long ago removed.)
Although this change was originally motivated by upgrading gcc for its libasan not to hit process lifetime thread limits, upgrading gcc proved impractical under platform010.
Bonus: fix USBAN+gcc build by making GetParam() valid by the time it is called in several test class constructors.
Test Plan: a variety of local builds (gcc, clang; various sanitizers) using fbcode tooling
No production code changes