cmake: fix early issues when bootstrapping on mingw

This gets all the way to the final link, where `libssp` symbols are
undefined, referenced by `libzstd.a`.
This commit is contained in:
Jacob Young 2023-08-02 20:37:14 -04:00 committed by Andrew Kelley
parent 76f7b40e15
commit a61495a988

View File

@ -699,6 +699,7 @@ elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7l")
elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7b") elseif(ZIG_HOST_TARGET_ARCH STREQUAL "armv7b")
set(ZIG_HOST_TARGET_ARCH "armeb") set(ZIG_HOST_TARGET_ARCH "armeb")
endif() endif()
if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(eb)?$") if(ZIG_HOST_TARGET_ARCH MATCHES "^arm(eb)?$")
include(CheckSymbolExists) include(CheckSymbolExists)
check_symbol_exists(__thumb__ "" ZIG_HOST_TARGET_DEFAULTS_TO_THUMB) check_symbol_exists(__thumb__ "" ZIG_HOST_TARGET_DEFAULTS_TO_THUMB)
@ -710,7 +711,16 @@ string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" ZIG_HOST_TARGET_OS)
if(ZIG_HOST_TARGET_OS STREQUAL "darwin") if(ZIG_HOST_TARGET_OS STREQUAL "darwin")
set(ZIG_HOST_TARGET_OS "macos") set(ZIG_HOST_TARGET_OS "macos")
endif() endif()
set(ZIG_HOST_TARGET_TRIPLE "${ZIG_HOST_TARGET_ARCH}-${ZIG_HOST_TARGET_OS}" CACHE STRING "Host zig target triple.")
if(MSVC)
set(ZIG_HOST_TARGET_ABI "-msvc")
elif(MINGW)
set(ZIG_HOST_TARGET_ABI "-gnu")
else()
set(ZIG_HOST_TARGET_ABI "")
endif()
set(ZIG_HOST_TARGET_TRIPLE "${ZIG_HOST_TARGET_ARCH}-${ZIG_HOST_TARGET_OS}${ZIG_HOST_TARGET_ABI}" CACHE STRING "Host zig target triple.")
if(MSVC) if(MSVC)
set(ZIG_WASM2C_COMPILE_FLAGS "") set(ZIG_WASM2C_COMPILE_FLAGS "")
@ -723,6 +733,8 @@ else()
set(ZIG2_COMPILE_FLAGS "-std=c99 -O0 -fno-stack-protector") set(ZIG2_COMPILE_FLAGS "-std=c99 -O0 -fno-stack-protector")
if(APPLE) if(APPLE)
set(ZIG2_LINK_FLAGS "-Wl,-stack_size,0x10000000") set(ZIG2_LINK_FLAGS "-Wl,-stack_size,0x10000000")
elseif(MINGW)
set(ZIG2_LINK_FLAGS "-Wl,--stack,0x10000000")
else() else()
set(ZIG2_LINK_FLAGS "-Wl,-z,stack-size=0x10000000") set(ZIG2_LINK_FLAGS "-Wl,-z,stack-size=0x10000000")
endif() endif()
@ -751,6 +763,9 @@ if(MSVC)
target_link_options(zig1 PRIVATE /STACK:0x10000000) target_link_options(zig1 PRIVATE /STACK:0x10000000)
else() else()
target_link_libraries(zig1 LINK_PUBLIC m) target_link_libraries(zig1 LINK_PUBLIC m)
if(MINGW)
target_link_options(zig1 PRIVATE -Wl,--stack,0x10000000)
endif()
endif() endif()
set(BUILD_ZIG2_ARGS set(BUILD_ZIG2_ARGS