onnxruntime
5b361106 - Build with abseil 20250814 (NVCC) (#28586)

Commit
25 days ago
Build with abseil 20250814 (NVCC) (#28586) ### Description Narrow, Abseil-only build fix. NVCC's `cudafe++` (EDG front-end) fails to parse the `IfRRef<...>::AddPtr<...>` qualified-ids used by the lifetime-bound `insert_or_assign` / `try_emplace` overload sets in abseil 20250814 (`raw_hash_map.h`, `btree_container.h`) when they appear inside heavily macro-expanded template parameter lists. Plain g++ accepts the same code. This adds a top-level `IfRRefAddPtr<T, Other>` alias and routes the affected use-sites through it so the member-template lookup happens outside the surrounding dependent template-id. Because it stays an alias template, substitution remains in the immediate context, so forming a pointer-to-reference is still a soft (SFINAE) failure rather than a hard error — original behavior is preserved. Applied as a cmake patch under `cmake/patches/abseil/absl_cuda_warnings.patch`, so it is picked up by both the FetchContent and vcpkg Abseil paths. ### Scope This is intentionally an **Abseil-only** fix. It does **not** address the CUDA 13.3 CCCL/CUB (`::cuda::proclaims_copyable_arguments`) parse error — that is handled by #29042. This PR is not a complete CUDA 13.3 build fix on its own. ### Motivation and Context Needed to build ONNX Runtime against the abseil version pulled in by recent CUDA toolchain updates. Plain g++ compiles fine; only NVCC needs this workaround.
Author
Parents
Loading