reactos/sdk/lib/crt/except/except.cmake
Timo Kreuzer da2a5673e7 [CRT] Fix _matherror and _setusermatherror
We previously used 2 different versions: one from wine and one from mingw-w64.
The former was used in msvcrt, the latter was statically compiled into the executable. When using MS libs, there is only one _matherr, which is statically linked into the executable and does nothing (it's not really a function for users to be called).
_setusermatherror should only exist in msvcrt and not statically, which wouldn't work at all.
2021-07-27 22:08:58 +02:00

75 lines
2.1 KiB
CMake

if(ARCH STREQUAL "i386")
list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
except/i386/chkstk_asm.s
)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/i386/chkesp.s
except/i386/prolog.s
)
if(MSVC)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/i386/cpp.s)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND LIBCNTPR_EXCEPT_SOURCE
except/amd64/ehandler.c
)
list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
except/amd64/chkstk_ms.s
except/amd64/seh.s
)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/amd64/seh.s
)
if(MSVC)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/amd64/cpp.s)
endif()
elseif(ARCH STREQUAL "arm")
list(APPEND LIBCNTPR_EXCEPT_SOURCE
except/arm/ehandler.c
)
list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
except/arm/__jump_unwind.s
except/arm/_abnormal_termination.s
except/arm/_except_handler2.s
except/arm/_except_handler3.s
except/arm/_global_unwind2.s
except/arm/_local_unwind2.s
except/arm/chkstk_asm.s
)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/arm/_abnormal_termination.s
except/arm/_except_handler2.s
except/arm/_except_handler3.s
except/arm/_global_unwind2.s
except/arm/_local_unwind2.s
except/arm/chkstk_asm.s
)
if(MSVC)
list(APPEND CRT_EXCEPT_ASM_SOURCE
except/arm/cpp.s)
endif()
endif()
list(APPEND CRT_EXCEPT_SOURCE
${LIBCNTPR_EXCEPT_SOURCE}
except/stack.c
)
if(ARCH STREQUAL "i386")
list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_asm.s)
elseif(ARCH STREQUAL "amd64")
list(APPEND CHKSTK_ASM_SOURCE except/amd64/chkstk_ms.s)
elseif(ARCH STREQUAL "arm")
list(APPEND CHKSTK_ASM_SOURCE except/arm/chkstk_asm.s)
elseif(ARCH STREQUAL "powerpc")
list(APPEND CHKSTK_ASM_SOURCE except/powerpc/chkstk_asm.s)
endif()
add_asm_files(chkstk_lib_asm ${CHKSTK_ASM_SOURCE})
add_library(chkstk ${CHKSTK_SOURCE} ${chkstk_lib_asm})
set_target_properties(chkstk PROPERTIES LINKER_LANGUAGE "C")
add_dependencies(chkstk asm)