Skip to content

Commit d9f1478

Browse files
authored
Merge pull request #4367 from barracuda156/unbreak_powerpc
Fix arch detection with CMake build for PowerPC
2 parents e60fb0f + 9dbc812 commit d9f1478

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

cmake/system_check.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ if(CMAKE_CL_64 OR MINGW64)
3838
endif()
3939
elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING))
4040
set(X86 1)
41-
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc.*|power.*|Power.*")
41+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc.*|power.*|Power.*" OR (CMAKE_SYSTEM_NAME MATCHES "Darwin" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc.*"))
4242
set(POWER 1)
4343
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "mips64.*")
4444
set(MIPS64 1)
@@ -109,7 +109,7 @@ else()
109109
endif ()
110110

111111
if (NOT BINARY)
112-
if (X86_64 OR ARM64 OR POWER OR MIPS64 OR LOONGARCH64 OR RISCV64)
112+
if (X86_64 OR ARM64 OR MIPS64 OR LOONGARCH64 OR RISCV64 OR (POWER AND NOT (CMAKE_OSX_ARCHITECTURES STREQUAL "ppc")))
113113
set(BINARY 64)
114114
else ()
115115
set(BINARY 32)

cpuid_power.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ int detect(void){
160160
infoCount = HOST_BASIC_INFO_COUNT;
161161
host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostInfo, &infoCount);
162162

163+
if (hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_7400) return CPUTYPE_PPCG4;
163164
if (hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_7450) return CPUTYPE_PPCG4;
164165
if (hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_970) return CPUTYPE_PPC970;
165166

0 commit comments

Comments
 (0)