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
690690)
691691
692692string(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")
694696 set(ZIG_HOST_TARGET_ARCH "x86_64")
695697elseif(ZIG_HOST_TARGET_ARCH STREQUAL "arm64")
696698 set(ZIG_HOST_TARGET_ARCH "aarch64")
......@@ -699,14 +701,16 @@ elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7l")
699701elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7b")
700702 set(ZIG_HOST_TARGET_ARCH "armeb")
701703endif()
702
703if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(eb)?$")
704string(REGEX REPLACE "^((arm|thumb)(hf?)?)el$" "\\1" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")
705if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(hf?)?(eb)?$")
704706 include(CheckSymbolExists)
705707 check_symbol_exists(__thumb__ "" ZIG_HOST_TARGET_DEFAULTS_TO_THUMB)
706708 if(ZIG_HOST_TARGET_DEFAULTS_TO_THUMB)
707709 string(REGEX REPLACE "^arm" "thumb" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")
708710 endif()
709711endif()
712string(REGEX REPLACE "^ppc((64)?(le)?)$" "powerpc\\1" ZIG_HOST_TARGET_ARCH "${ZIG_HOST_TARGET_ARCH}")
713
710714string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" ZIG_HOST_TARGET_OS)
711715if(ZIG_HOST_TARGET_OS STREQUAL "darwin")
712716 set(ZIG_HOST_TARGET_OS "macos")
......@@ -716,6 +720,9 @@ if(MSVC)
716720 set(ZIG_HOST_TARGET_ABI "-msvc")
717721elseif(MINGW)
718722 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")
719726else()
720727 set(ZIG_HOST_TARGET_ABI "")
721728endif()
src/codegen/llvm/Builder.zig+2-2
......@@ -10708,10 +10708,10 @@ fn ppc_fp128ConstAssumeCapacity(self: *Builder, val: [2]f64) Constant {
1070810708 }),
1070910709 });
1071010710 if (self.useLibLlvm()) {
10711 const llvm_limbs: *const [2]u64 = @ptrCast(&val);
10711 const llvm_limbs: [2]u64 = @bitCast(val);
1071210712 self.llvm.constants.appendAssumeCapacity(
1071310713 Type.i128.toLlvm(self)
10714 .constIntOfArbitraryPrecision(@intCast(llvm_limbs.len), llvm_limbs)
10714 .constIntOfArbitraryPrecision(@intCast(llvm_limbs.len), &llvm_limbs)
1071510715 .constBitCast(Type.ppc_fp128.toLlvm(self)),
1071610716 );
1071710717 }