@@ -17,7 +17,14 @@ function(create_standalone_jit)
17
17
set (options )
18
18
cmake_parse_arguments (TARGETDETAILS "${options} " "${oneValueArgs} " "${multiValueArgs} " ${ARGN} )
19
19
20
- set (JIT_ARCH_LINK_LIBRARIES gcinfo_${TARGETDETAILS_OS} _${TARGETDETAILS_ARCH} )
20
+ if (TARGETDETAILS_OS STREQUAL "unix_osx" )
21
+ if (NOT (TARGETDETAILS_ARCH STREQUAL "arm64" ))
22
+ message (FATAL_ERROR "Only arm64 Apple has a special ABI, use just unix for x64 Mac OS." )
23
+ endif ()
24
+ set (JIT_ARCH_LINK_LIBRARIES gcinfo_unix_arm64)
25
+ else ()
26
+ set (JIT_ARCH_LINK_LIBRARIES gcinfo_${TARGETDETAILS_OS} _${TARGETDETAILS_ARCH} )
27
+ endif ()
21
28
22
29
if (TARGETDETAILS_ARCH STREQUAL "x64" )
23
30
set (JIT_ARCH_SOURCES ${JIT_AMD64_SOURCES} )
@@ -451,10 +458,12 @@ endif (FEATURE_MERGE_JIT_AND_ENGINE)
451
458
# Creates a static library "clrjit_static" to link into the VM.
452
459
add_subdirectory (static )
453
460
454
- if (CLR_CMAKE_TARGET_UNIX)
455
- set (TARGET_OS_NAME unix )
461
+ if (CLR_CMAKE_TARGET_OSX AND CLR_CMAKE_TARGET_ARCH_ARM64)
462
+ set (TARGET_OS_NAME unix_osx) # Apple Arm64 has a special ABI, distinguish it.
463
+ elseif (CLR_CMAKE_TARGET_UNIX)
464
+ set (TARGET_OS_NAME unix )
456
465
else ()
457
- set (TARGET_OS_NAME win)
466
+ set (TARGET_OS_NAME win)
458
467
endif ()
459
468
460
469
create_standalone_jit(TARGET clrjit OS ${TARGET_OS_NAME} ARCH ${ARCH_TARGET_NAME} ADDITIONAL_DESTINATIONS sharedFramework)
@@ -472,6 +481,7 @@ endif ()
472
481
if (CLR_CMAKE_BUILD_SUBSET_ALLJITS AND NOT CLR_CROSS_COMPONENTS_BUILD)
473
482
if (CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_AMD64)
474
483
create_standalone_jit(TARGET clrjit_unix_arm64_${ARCH_HOST_NAME} OS unix ARCH arm64)
484
+ create_standalone_jit(TARGET clrjit_unix_osx_arm64_${ARCH_HOST_NAME} OS unix_osx ARCH arm64)
475
485
create_standalone_jit(TARGET clrjit_unix_x64_${ARCH_HOST_NAME} OS unix ARCH x64)
476
486
create_standalone_jit(TARGET clrjit_win_arm64_${ARCH_HOST_NAME} OS win ARCH arm64)
477
487
create_standalone_jit(TARGET clrjit_win_x64_${ARCH_HOST_NAME} OS win ARCH x64)
@@ -484,4 +494,4 @@ else()
484
494
if (CLR_CMAKE_TARGET_UNIX)
485
495
create_standalone_jit(TARGET clrjit_unix_${ARCH_TARGET_NAME} _${ARCH_HOST_NAME} OS unix ARCH ${ARCH_TARGET_NAME} )
486
496
endif (CLR_CMAKE_TARGET_UNIX)
487
- endif (CLR_CMAKE_BUILD_SUBSET_ALLJITS AND NOT CLR_CROSS_COMPONENTS_BUILD)
497
+ endif (CLR_CMAKE_BUILD_SUBSET_ALLJITS AND NOT CLR_CROSS_COMPONENTS_BUILD)
0 commit comments