Commit b797c82c7 for llama.cpp
commit b797c82c7dbb2c5bbba2db2efe8febc65bc77857
Author: Aaron Teo <aaron.teo1@ibm.com>
Date: Sat Oct 10 14:07:52 2026 +0800
ggml: fix s390x all cpu build (#30140)
Signed-off-by: Aaron Teo <aaron.teo1@ibm.com>
diff --git a/ggml/src/CMakeLists.txt b/ggml/src/CMakeLists.txt
index 947732000..0c5253928 100644
--- a/ggml/src/CMakeLists.txt
+++ b/ggml/src/CMakeLists.txt
@@ -462,6 +462,8 @@ function(ggml_add_cpu_backend_variant tag_name)
set(GGML_INTERNAL_${feat} ON)
endforeach()
elseif (GGML_SYSTEM_ARCH STREQUAL "s390x")
+ set(GGML_NATIVE OFF)
+
foreach (feat VXE2 NNPA)
set(GGML_INTERNAL_${feat} OFF)
endforeach()
@@ -569,6 +571,14 @@ if (GGML_CPU_ALL_VARIANTS)
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
ggml_add_cpu_backend_variant(z15 Z15 VXE2)
ggml_add_cpu_backend_variant(z16 Z16 VXE2 NNPA)
+
+ # check if compiler supports "-march=z17" codename
+ check_cxx_compiler_flag("-march=z17" GGML_CXX_SUPPORTS_Z17)
+ if (GGML_CXX_SUPPORTS_Z17)
+ ggml_add_cpu_backend_variant(z17 Z17 VXE2 NNPA)
+ else()
+ ggml_add_cpu_backend_variant(arch15 Z17 VXE2 NNPA)
+ endif()
else()
message(FATAL_ERROR "Unsupported s390x target OS: ${CMAKE_SYSTEM_NAME}")
endif()
diff --git a/ggml/src/ggml-cpu/CMakeLists.txt b/ggml/src/ggml-cpu/CMakeLists.txt
index 71f55b490..50341fd6a 100644
--- a/ggml/src/ggml-cpu/CMakeLists.txt
+++ b/ggml/src/ggml-cpu/CMakeLists.txt
@@ -593,7 +593,12 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
foreach (ZHW RANGE 15 17)
if(DEFINED GGML_INTERNAL_Z${ZHW})
message(STATUS "z${ZHW} cross-compile target")
- list(APPEND ARCH_FLAGS -march=z${ZHW})
+ if (ZHW EQUAL 17)
+ # z17 is an alias of arch15, use the arch level for wider toolchain support
+ list(APPEND ARCH_FLAGS -march=arch15)
+ else()
+ list(APPEND ARCH_FLAGS -march=z${ZHW})
+ endif()
endif()
endforeach()
endif()