onnxruntime
d9ecd81d - fix: require GCC >= 12 on aarch64 for bf16/fp16 capability probes (#28785)

Commit
112 days ago
fix: require GCC >= 12 on aarch64 for bf16/fp16 capability probes (#28785) ## Summary - Adds an explicit, aarch64-scoped `GCC >= 12` guard immediately before the existing `-march=armv8.2-a+bf16` / `-march=armv8.2-a+fp16` `check_cxx_compiler_flag` probes in `cmake/CMakeLists.txt`. - The new guard fires with an actionable `FATAL_ERROR` that names the required compiler version and the version that was detected. - No change to the global GCC 11.1 minimum, and no impact on x86_64, Apple, Emscripten, MSVC, or Clang builds. ## Motivation On aarch64, GCC versions prior to 12 ship with an assembler that does not accept the `+bf16` / `+fp16` architecture extensions. The existing capability probes therefore fail at configure time with the opaque message `The compiler doesn't support BFLOAT16!!!`, leaving users to guess that a newer toolchain (not just a newer compiler) is required. This is the exact scenario reported on RHEL 9 / GCC 11. Fixes #22837 ## Changes - `cmake/CMakeLists.txt`: inside the existing `if (NOT APPLE AND NOT Emscripten AND onnxruntime_target_platform STREQUAL "aarch64")` block, add a `CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 12` check that emits a descriptive `FATAL_ERROR` naming the required GCC version and the detected version. ## Test Plan - This is a CMake-only configure-time change; no runtime tests are affected. - Verified `lintrunner -a` reports no issues on the changed file. - Existing CI `linux-aarch64` build jobs exercise the unchanged code path on a supported toolchain. - Manual verification: configuring on aarch64 with GCC < 12 now fails at CMake time with `GCC >= 12 is required for aarch64 BFloat16/Float16 support. Found GCC <version>.`, instead of the previous cryptic `The compiler doesn't support BFLOAT16!!!`.
Author
Parents
Loading