From 763441bbd1b0515b7f5e7c30d01f533b7af8b8db Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Fri, 26 Sep 2025 13:50:15 +0800 Subject: [PATCH] CMakeLists: fix for powerpc --- CMakeLists.txt | 5 ++++- cmake/archdetect.cmake | 3 +++ cmake/osdetection.cmake | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git CMakeLists.txt CMakeLists.txt index 577f90e2..4faa0a24 100644 --- CMakeLists.txt +++ CMakeLists.txt @@ -129,7 +129,7 @@ include (${CMAKE_MODULE_PATH}/platform.cmake) # Detect OS and if Fat Runtime is available include (${CMAKE_MODULE_PATH}/osdetection.cmake) -if(ARCH_X86_64 AND BUILD_SSE2_SIMDE AND NOT FAT_RUNTIME) +if((ARCH_X86_64 AND BUILD_SSE2_SIMDE AND NOT FAT_RUNTIME) OR ARCH_PPC) set(SIMDE_BACKEND True) endif() @@ -147,6 +147,9 @@ endif () if (ARCH_PPC64EL) set(ARCH_FLAG mcpu) +elseif (ARCH_PPC) + # Avoid mcpu, it can produce broken code on 32-bit ppc. + set(ARCH_FLAG mtune) else () set(ARCH_FLAG march) endif () diff --git cmake/archdetect.cmake cmake/archdetect.cmake index 5585f468..dddfaadb 100644 --- cmake/archdetect.cmake +++ cmake/archdetect.cmake @@ -93,6 +93,9 @@ else() elseif(ARCH_PPC64EL) set(GNUCC_ARCH power8) set(TUNE_FLAG power8) + elseif(ARCH_PPC) + set(GNUCC_ARCH G5) + set(TUNE_FLAG G5) else() set(GNUCC_ARCH x86-64-v2) set(TUNE_FLAG generic) diff --git cmake/osdetection.cmake cmake/osdetection.cmake index 96083baf..a74ff124 100644 --- cmake/osdetection.cmake +++ cmake/osdetection.cmake @@ -52,3 +52,7 @@ if (FAT_RUNTIME) message(FATAL_ERROR "Fat runtime is only built on Release builds") endif() endif () + +if(MACOSX AND CMAKE_SYSTEM_PROCESSOR MATCHES "ppc|power") + set(ARCH_PPC TRUE) +endif() -- 2.51.0