authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-08-13 06:23:46-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-08-13 11:26:10-07:00
log1c5c3f499a5144880feba9c24c51b0283a0e43c5
treeb50b8d0e5bd43d438996ef4e7003d7f5960c2e20
parent014d88ef657e1736a36e92b0a5b0c650db9e5091

cmake: fix auto-detection of various host targets

Closes #16800

2 files changed, 12 insertions(+), 5 deletions(-)

CMakeLists.txt+10-3
...@@ -690,7 +690,9 @@ target_link_libraries(zigcpp LINK_PUBLIC...@@ -690,7 +690,9 @@ target_link_libraries(zigcpp LINK_PUBLIC
690)690)
691691
692string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" ZIG_HOST_TARGET_ARCH)692string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" ZIG_HOST_TARGET_ARCH)
693if(ZIG_HOST_TARGET_ARCH STREQUAL "amd64")693if(ZIG_HOST_TARGET_ARCH MATCHES "^i[3-9]86$")
694 set(ZIG_HOST_TARGET_ARCH "x86")
695elseif(ZIG_HOST_TARGET_ARCH STREQUAL "amd64")
694 set(ZIG_HOST_TARGET_ARCH "x86_64")696 set(ZIG_HOST_TARGET_ARCH "x86_64")
695elseif(ZIG_HOST_TARGET_ARCH STREQUAL "arm64")697elseif(ZIG_HOST_TARGET_ARCH STREQUAL "arm64")
696 set(ZIG_HOST_TARGET_ARCH "aarch64")698 set(ZIG_HOST_TARGET_ARCH "aarch64")
...@@ -699,14 +701,16 @@ elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7l")...@@ -699,14 +701,16 @@ elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7l")
699elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7b")701elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7b")
700 set(ZIG_HOST_TARGET_ARCH "armeb")702 set(ZIG_HOST_TARGET_ARCH "armeb")
701endif()703endif()
702704string(REGEX REPLACE "^((arm|thumb)(hf?)?)el$" "\\1" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")
703if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(eb)?$")705if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(hf?)?(eb)?$")
704 include(CheckSymbolExists)706 include(CheckSymbolExists)
705 check_symbol_exists(__thumb__ "" ZIG_HOST_TARGET_DEFAULTS_TO_THUMB)707 check_symbol_exists(__thumb__ "" ZIG_HOST_TARGET_DEFAULTS_TO_THUMB)
706 if(ZIG_HOST_TARGET_DEFAULTS_TO_THUMB)708 if(ZIG_HOST_TARGET_DEFAULTS_TO_THUMB)
707 string(REGEX REPLACE "^arm" "thumb" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")709 string(REGEX REPLACE "^arm" "thumb" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")
708 endif()710 endif()
709endif()711endif()
712string(REGEX REPLACE "^ppc((64)?(le)?)$" "powerpc\\1" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")
713
710string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" ZIG_HOST_TARGET_OS)714string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" ZIG_HOST_TARGET_OS)
711if(ZIG_HOST_TARGET_OS STREQUAL "darwin")715if(ZIG_HOST_TARGET_OS STREQUAL "darwin")
712 set(ZIG_HOST_TARGET_OS "macos")716 set(ZIG_HOST_TARGET_OS "macos")
...@@ -716,6 +720,9 @@ if(MSVC)...@@ -716,6 +720,9 @@ if(MSVC)
716 set(ZIG_HOST_TARGET_ABI "-msvc")720 set(ZIG_HOST_TARGET_ABI "-msvc")
717elseif(MINGW)721elseif(MINGW)
718 set(ZIG_HOST_TARGET_ABI "-gnu")722 set(ZIG_HOST_TARGET_ABI "-gnu")
723elseif(ZIG_HOST_TARGET_ARCH MATCHES "^(arm|thumb)hf?(eb)?$")
724 string(REGEX REPLACE "^(arm|thumb)hf?((eb)?)$" "\\1\\2" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")
725 set(ZIG_HOST_TARGET_ABI "-eabihf")
719else()726else()
720 set(ZIG_HOST_TARGET_ABI "")727 set(ZIG_HOST_TARGET_ABI "")
721endif()728endif()
src/codegen/llvm/Builder.zig+2-2
...@@ -10708,10 +10708,10 @@ fn ppc_fp128ConstAssumeCapacity(self: *Builder, val: [2]f64) Constant {...@@ -10708,10 +10708,10 @@ fn ppc_fp128ConstAssumeCapacity(self: *Builder, val: [2]f64) Constant {
10708 }),10708 }),
10709 });10709 });
10710 if (self.useLibLlvm()) {10710 if (self.useLibLlvm()) {
10711 const llvm_limbs: *const [2]u64 = @ptrCast(&val);10711 const llvm_limbs: [2]u64 = @bitCast(val);
10712 self.llvm.constants.appendAssumeCapacity(10712 self.llvm.constants.appendAssumeCapacity(
10713 Type.i128.toLlvm(self)10713 Type.i128.toLlvm(self)
10714 .constIntOfArbitraryPrecision(@intCast(llvm_limbs.len), llvm_limbs)10714 .constIntOfArbitraryPrecision(@intCast(llvm_limbs.len), &llvm_limbs)
10715 .constBitCast(Type.ppc_fp128.toLlvm(self)),10715 .constBitCast(Type.ppc_fp128.toLlvm(self)),
10716 );10716 );
10717 }10717 }