[UCRTSUPPORT] Add ucrtsupport library

This library is compiled from our old CRT sources to supplement missing UCRT code.
This commit is contained in:
Timo Kreuzer 2024-10-22 00:07:12 +03:00
parent 82ef7b5df1
commit d74ab36324
4 changed files with 37 additions and 4 deletions

View file

@ -28,6 +28,7 @@ include(crt.cmake)
include(libcntpr.cmake)
include(msvcrtex.cmake)
include(oldnames.cmake)
include(ucrtsupport.cmake)
add_library(user32_wsprintf
printf/streamout.c

View file

@ -44,9 +44,7 @@ THE SOFTWARE.
#include "libm_errno.h"
/* exp2 is only provided for use by powf under Windows, so give
it a leading underscore. */
double FN_PROTOTYPE(_exp2)(double x)
double FN_PROTOTYPE(exp2)(double x)
{
static const double
max_exp2_arg = 1024.0, /* 0x4090000000000000 */

View file

@ -2,9 +2,11 @@
include_directories(libm_sse2)
list(APPEND LIBCNTPR_MATH_SOURCE
math/_chgsignf.c
math/_invoke_matherr.c
math/abs.c
math/div.c
math/exp2f.c
math/labs.c
math/sincos.c
)
@ -55,6 +57,9 @@ if(ARCH STREQUAL "i386")
math/i386/fmod_asm.s
math/i386/fmodf_asm.s
)
list(APPEND CRT_MATH_SOURCE
math/_hypotf.c
)
elseif(ARCH STREQUAL "amd64")
list(APPEND LIBCNTPR_MATH_SOURCE
math/amd64/_set_statfp.c
@ -204,7 +209,6 @@ endif()
if(NOT ARCH STREQUAL "i386")
list(APPEND CRT_MATH_SOURCE
math/_chgsignf.c
math/_copysignf.c
math/log10f.c
math/stubs.c
@ -217,6 +221,7 @@ if(NOT ARCH STREQUAL "amd64")
math/asin.c
math/cosh.c
math/cosf.c
math/exp2.c
math/hypot.c
math/modf.c
math/s_modf.c

View file

@ -0,0 +1,29 @@
list(APPEND UCRTSUPP_SOURCE
${CRT_FLOAT_SOURCE}
${CRT_MATH_SOURCE}
wine/undname.c
)
list(APPEND UCRTSUPP_ASM_SOURCE
${CRT_EXCEPT_ASM_SOURCE}
${CRT_FLOAT_ASM_SOURCE}
${CRT_MATH_ASM_SOURCE}
${CRT_SETJMP_ASM_SOURCE}
)
add_asm_files(ucrtsupp_asm ${UCRTSUPP_ASM_SOURCE})
add_library(ucrtsupport ${UCRTSUPP_SOURCE} ${ucrtsupp_asm})
target_link_libraries(ucrtsupport chkstk ${PSEH_LIB})
target_compile_definitions(ucrtsupport PRIVATE
CRTDLL
_MSVCRT_LIB_
_MSVCRT_
_MT
USE_MSVCRT_PREFIX
__MINGW_IMPORT=extern
__fma3_lib_init=__acrt_initialize_fma3
)
#add_pch(crt precomp.h)
add_dependencies(ucrtsupport psdk asm)