From 35bc1e1d9e3e7be0f227a9fa17a05809c3da287a Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 7 May 2025 18:33:10 +0300 Subject: [PATCH] [CRT] Add crtmath library --- dll/win32/ucrtbase/CMakeLists.txt | 1 + sdk/lib/crt/CMakeLists.txt | 1 + sdk/lib/crt/crt.cmake | 5 +---- sdk/lib/crt/crtmath.cmake | 19 +++++++++++++++++++ sdk/lib/crt/ucrtsupport.cmake | 4 ---- 5 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 sdk/lib/crt/crtmath.cmake diff --git a/dll/win32/ucrtbase/CMakeLists.txt b/dll/win32/ucrtbase/CMakeLists.txt index 0cc2d8f34b9..749c863a747 100644 --- a/dll/win32/ucrtbase/CMakeLists.txt +++ b/dll/win32/ucrtbase/CMakeLists.txt @@ -36,6 +36,7 @@ set_entrypoint(ucrtbase __acrt_DllMain 12) target_link_libraries(ucrtbase ucrt ucrtsupport + crtmath vcruntime wine ) diff --git a/sdk/lib/crt/CMakeLists.txt b/sdk/lib/crt/CMakeLists.txt index 634be636c18..baa0ce32094 100644 --- a/sdk/lib/crt/CMakeLists.txt +++ b/sdk/lib/crt/CMakeLists.txt @@ -25,6 +25,7 @@ include(wine/wine.cmake) include(wstring/wstring.cmake) include(crt.cmake) +include(crtmath.cmake) include(libcntpr.cmake) include(msvcrtex.cmake) include(oldnames.cmake) diff --git a/sdk/lib/crt/crt.cmake b/sdk/lib/crt/crt.cmake index 1ca567d9de7..71ae85df2f3 100644 --- a/sdk/lib/crt/crt.cmake +++ b/sdk/lib/crt/crt.cmake @@ -3,9 +3,7 @@ list(APPEND CRT_SOURCE ${CRT_CONIO_SOURCE} ${CRT_DIRECT_SOURCE} ${CRT_EXCEPT_SOURCE} - ${CRT_FLOAT_SOURCE} locale/locale.c - ${CRT_MATH_SOURCE} ${CRT_MBSTRING_SOURCE} ${CRT_MEM_SOURCE} ${CRT_MISC_SOURCE} @@ -25,8 +23,6 @@ list(APPEND CRT_SOURCE list(APPEND CRT_ASM_SOURCE ${CRT_EXCEPT_ASM_SOURCE} - ${CRT_FLOAT_ASM_SOURCE} - ${CRT_MATH_ASM_SOURCE} ${CRT_SETJMP_ASM_SOURCE} ${CRT_STDLIB_ASM_SOURCE} ${CRT_STRING_ASM_SOURCE} @@ -38,6 +34,7 @@ add_asm_files(crt_asm ${CRT_ASM_SOURCE}) add_library(crt ${CRT_SOURCE} ${crt_asm}) target_link_libraries(crt chkstk ${PSEH_LIB}) +target_sources(crt PRIVATE $) target_compile_definitions(crt PRIVATE __MINGW_IMPORT=extern USE_MSVCRT_PREFIX diff --git a/sdk/lib/crt/crtmath.cmake b/sdk/lib/crt/crtmath.cmake new file mode 100644 index 00000000000..6eadea1faf4 --- /dev/null +++ b/sdk/lib/crt/crtmath.cmake @@ -0,0 +1,19 @@ + +list(APPEND CRTMATH_SOURCE + ${CRT_FLOAT_SOURCE} + ${CRT_MATH_SOURCE} +) + +list(APPEND CRTMATH_ASM_SOURCE + ${CRT_FLOAT_ASM_SOURCE} + ${CRT_MATH_ASM_SOURCE} +) + +add_asm_files(crtmath_asm ${CRTMATH_ASM_SOURCE}) + +add_library(crtmath ${CRTMATH_SOURCE} ${crtmath_asm}) +target_compile_definitions(crtmath PRIVATE + USE_MSVCRT_PREFIX + __fma3_lib_init=__acrt_initialize_fma3 +) +add_dependencies(crtmath psdk asm) diff --git a/sdk/lib/crt/ucrtsupport.cmake b/sdk/lib/crt/ucrtsupport.cmake index 2f558d96db5..20d3ce6474a 100644 --- a/sdk/lib/crt/ucrtsupport.cmake +++ b/sdk/lib/crt/ucrtsupport.cmake @@ -1,7 +1,5 @@ list(APPEND UCRTSUPP_SOURCE - ${CRT_FLOAT_SOURCE} - ${CRT_MATH_SOURCE} misc/amsg.c misc/purecall.c misc/tls.c @@ -11,8 +9,6 @@ list(APPEND UCRTSUPP_SOURCE ) list(APPEND UCRTSUPP_ASM_SOURCE - ${CRT_FLOAT_ASM_SOURCE} - ${CRT_MATH_ASM_SOURCE} ${CRT_SETJMP_ASM_SOURCE} ${CRT_WINE_ASM_SOURCE} )