Skip to content

Commit e56db76

Browse files
authored
Enable building NativeAOT for Apple mobile platforms (#81780)
These changes allow the NativeAOT runtime to compile for and run on iOS, tvOS and MacCatalyst.
1 parent 2410737 commit e56db76

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+380
-116
lines changed

Directory.Build.props

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,22 @@
4747
</PropertyGroup>
4848

4949
<PropertyGroup Label="SetOSTargetMinVersions">
50-
<!-- Minimum Apple target OS versions, keep in sync with src/native/libs/build-native.sh -->
50+
<!--
51+
Minimum target OS versions, keep in sync with:
52+
- eng/native/configurecompiler.cmake
53+
- eng/native/build-commons.sh
54+
- src/native/libs/build-native.sh
55+
- src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/ObjectWriter.cs
56+
- src/installer/pkg/sfx/bundle/shared-framework-distribution-template-x64.xml
57+
- src/installer/pkg/sfx/bundle/shared-framework-distribution-template-arm64.xml
58+
-->
59+
<AndroidApiLevelMin>21</AndroidApiLevelMin>
5160
<iOSVersionMin>11.0</iOSVersionMin>
5261
<tvOSVersionMin>11.0</tvOSVersionMin>
5362
<watchOSVersionMin>2.0</watchOSVersionMin>
5463
<watchOS64_32VersionMin>5.1</watchOS64_32VersionMin>
5564
<macOSVersionMin>10.15</macOSVersionMin>
5665
<macOSVersionMin Condition="('$(TargetOS)' == 'osx' or '$(TargetOS)' == 'maccatalyst') and '$(TargetArchitecture)' == 'arm64'">11.0</macOSVersionMin>
57-
58-
<!-- Minimum version of the Android API level we target, keep in sync with eng/native/build-commons.sh -->
59-
<AndroidApiLevelMin>21</AndroidApiLevelMin>
6066
</PropertyGroup>
6167

6268
<PropertyGroup>

eng/Subsets.props

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@
4545
</PropertyGroup>
4646

4747
<PropertyGroup>
48-
<RuntimeFlavor Condition="'$(TargetsMobile)' == 'true'">Mono</RuntimeFlavor>
48+
<RuntimeFlavor Condition="'$(TargetsMobile)' == 'true' and !$(_subset.Contains('+clr.nativeaotlibs+'))">Mono</RuntimeFlavor>
49+
<RuntimeFlavor Condition="'$(TargetsMobile)' == 'true' and $(_subset.Contains('+clr.nativeaotlibs+'))">CoreCLR</RuntimeFlavor>
4950
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == '' and ($(_subset.Contains('+mono+')) or $(_subset.Contains('+mono.runtime+'))) and (!$(_subset.Contains('+clr+')) and !$(_subset.Contains('+clr.runtime+')))">Mono</RuntimeFlavor>
5051
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == ''">$(PrimaryRuntimeFlavor)</RuntimeFlavor>
5152
</PropertyGroup>
@@ -105,7 +106,7 @@
105106

106107
<PropertyGroup>
107108
<!-- CLR NativeAot only builds in a subset of the matrix -->
108-
<NativeAotSupported Condition="('$(TargetOS)' == 'windows' or '$(TargetOS)' == 'linux' or '$(TargetOS)' == 'osx' or '$(TargetOS)' == 'freebsd') and ('$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'arm64')">true</NativeAotSupported>
109+
<NativeAotSupported Condition="('$(TargetOS)' == 'windows' or '$(TargetOS)' == 'linux' or '$(TargetOS)' == 'osx' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvossimulator' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'freebsd') and ('$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'arm64')">true</NativeAotSupported>
109110

110111
<!-- If we're building clr.nativeaotlibs and not building the CLR runtime, compile libraries against NativeAOT CoreLib -->
111112
<UseNativeAotCoreLib Condition="'$(TestNativeAot)' == 'true' or ($(_subset.Contains('+clr.nativeaotlibs+')) and !$(_subset.Contains('+clr.native+')) and !$(_subset.Contains('+clr.runtime+')))">true</UseNativeAotCoreLib>

eng/native/build-commons.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,58 @@ build_native()
102102
echo "Error: Unknown Android architecture $hostArch."
103103
exit 1
104104
fi
105+
elif [[ "$__TargetOS" == iossimulator ]]; then
106+
cmakeArgs="-C $__RepoRootDir/eng/native/tryrun_ios_tvos.cmake $cmakeArgs"
107+
108+
# set default iOS simulator deployment target
109+
# keep in sync with SetOSTargetMinVersions in the root Directory.Build.props
110+
cmakeArgs="-DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 $cmakeArgs"
111+
if [[ "$__TargetArch" == x64 ]]; then
112+
cmakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $cmakeArgs"
113+
elif [[ "$__TargetArch" == arm64 ]]; then
114+
cmakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $cmakeArgs"
115+
else
116+
echo "Error: Unknown iOS Simulator architecture $__TargetArch."
117+
exit 1
118+
fi
119+
elif [[ "$__TargetOS" == ios ]]; then
120+
cmakeArgs="-C $__RepoRootDir/eng/native/tryrun_ios_tvos.cmake $cmakeArgs"
121+
122+
# set default iOS device deployment target
123+
# keep in sync with SetOSTargetMinVersions in the root Directory.Build.props
124+
cmakeArgs="-DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 $cmakeArgs"
125+
if [[ "$__TargetArch" == arm64 ]]; then
126+
cmakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $cmakeArgs"
127+
else
128+
echo "Error: Unknown iOS architecture $__TargetArch."
129+
exit 1
130+
fi
131+
elif [[ "$__TargetOS" == tvossimulator ]]; then
132+
cmakeArgs="-C $__RepoRootDir/eng/native/tryrun_ios_tvos.cmake $cmakeArgs"
133+
134+
# set default tvOS simulator deployment target
135+
# keep in sync with SetOSTargetMinVersions in the root Directory.Build.props
136+
cmakeArgs="-DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 $cmakeArgs"
137+
if [[ "$__TargetArch" == x64 ]]; then
138+
cmakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $cmakeArgs"
139+
elif [[ "$__TargetArch" == arm64 ]]; then
140+
cmakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $cmakeArgs"
141+
else
142+
echo "Error: Unknown tvOS Simulator architecture $__TargetArch."
143+
exit 1
144+
fi
145+
elif [[ "$__TargetOS" == tvos ]]; then
146+
cmakeArgs="-C $__RepoRootDir/eng/native/tryrun_ios_tvos.cmake $cmakeArgs"
147+
148+
# set default tvOS device deployment target
149+
# keep in sync with SetOSTargetMinVersions in the root Directory.Build.props
150+
cmakeArgs="-DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 $cmakeArgs"
151+
if [[ "$__TargetArch" == arm64 ]]; then
152+
cmakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $cmakeArgs"
153+
else
154+
echo "Error: Unknown tvOS architecture $__TargetArch."
155+
exit 1
156+
fi
105157
fi
106158

107159
if [[ "$__UseNinja" == 1 ]]; then

eng/native/configurecompiler.cmake

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ elseif(CLR_CMAKE_HOST_SUNOS)
200200
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
201201
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector")
202202
add_definitions(-D__EXTENSIONS__ -D_XPG4_2 -D_POSIX_PTHREAD_SEMANTICS)
203-
elseif(CLR_CMAKE_HOST_OSX AND NOT CLR_CMAKE_HOST_IOS AND NOT CLR_CMAKE_HOST_TVOS)
203+
elseif(CLR_CMAKE_HOST_OSX AND NOT CLR_CMAKE_HOST_MACCATALYST AND NOT CLR_CMAKE_HOST_IOS AND NOT CLR_CMAKE_HOST_TVOS)
204204
add_definitions(-D_XOPEN_SOURCE)
205205
add_linker_flag("-Wl,-bind_at_load")
206206
endif()
@@ -276,14 +276,39 @@ if (CLR_CMAKE_HOST_UNIX)
276276
add_definitions(-DHOST_UNIX)
277277

278278
if(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_MACCATALYST)
279-
add_definitions(-DHOST_OSX)
279+
add_definitions(-DHOST_APPLE)
280+
if(CLR_CMAKE_HOST_MACCATALYST)
281+
add_definitions(-DHOST_MACCATALYST)
282+
else()
283+
add_definitions(-DHOST_OSX)
284+
endif()
280285
if(CLR_CMAKE_HOST_UNIX_AMD64)
281286
message("Detected OSX x86_64")
282287
elseif(CLR_CMAKE_HOST_UNIX_ARM64)
283288
message("Detected OSX ARM64")
284289
else()
285290
clr_unknown_arch()
286291
endif()
292+
elseif (CLR_CMAKE_HOST_IOS)
293+
add_definitions(-DHOST_APPLE)
294+
add_definitions(-DHOST_IOS)
295+
if(CLR_CMAKE_HOST_UNIX_AMD64)
296+
message("Detected iOS x86_64")
297+
elseif(CLR_CMAKE_HOST_UNIX_ARM64)
298+
message("Detected iOS ARM64")
299+
else()
300+
clr_unknown_arch()
301+
endif()
302+
elseif (CLR_CMAKE_HOST_TVOS)
303+
add_definitions(-DHOST_APPLE)
304+
add_definitions(-DHOST_TVOS)
305+
if(CLR_CMAKE_HOST_UNIX_AMD64)
306+
message("Detected tvOS x86_64")
307+
elseif(CLR_CMAKE_HOST_UNIX_ARM64)
308+
message("Detected tvOS ARM64")
309+
else()
310+
clr_unknown_arch()
311+
endif()
287312
elseif(CLR_CMAKE_HOST_FREEBSD)
288313
if(CLR_CMAKE_HOST_UNIX_ARM64)
289314
message("Detected FreeBSD aarch64")
@@ -542,8 +567,17 @@ if(CLR_CMAKE_TARGET_UNIX)
542567
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_UNIX>)
543568
# Contracts are disabled on UNIX.
544569
add_definitions(-DDISABLE_CONTRACTS)
545-
if(CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS)
570+
if(CLR_CMAKE_TARGET_APPLE)
571+
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_APPLE>)
572+
endif()
573+
if(CLR_CMAKE_TARGET_OSX)
546574
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_OSX>)
575+
elseif(CLR_CMAKE_TARGET_MACCATALYST)
576+
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_MACCATALYST>)
577+
elseif(CLR_CMAKE_TARGET_IOS)
578+
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_IOS>)
579+
elseif(CLR_CMAKE_TARGET_TVOS)
580+
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_TVOS>)
547581
elseif(CLR_CMAKE_TARGET_FREEBSD)
548582
add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_FREEBSD>)
549583
elseif(CLR_CMAKE_TARGET_ANDROID)

eng/native/configureplatform.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ endif(CLR_CMAKE_HOST_OS STREQUAL linux)
9999

100100
if(CLR_CMAKE_HOST_OS STREQUAL darwin)
101101
set(CLR_CMAKE_HOST_UNIX 1)
102+
set(CLR_CMAKE_HOST_APPLE 1)
102103

103104
if(CMAKE_SYSTEM_VARIANT STREQUAL maccatalyst)
104105
set(CLR_CMAKE_HOST_MACCATALYST 1)
@@ -118,6 +119,7 @@ endif(CLR_CMAKE_HOST_OS STREQUAL darwin)
118119

119120
if(CLR_CMAKE_HOST_OS STREQUAL ios OR CLR_CMAKE_HOST_OS STREQUAL iossimulator)
120121
set(CLR_CMAKE_HOST_UNIX 1)
122+
set(CLR_CMAKE_HOST_APPLE 1)
121123
set(CLR_CMAKE_HOST_IOS 1)
122124
if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
123125
set(CLR_CMAKE_HOST_UNIX_AMD64 1)
@@ -134,6 +136,7 @@ endif(CLR_CMAKE_HOST_OS STREQUAL ios OR CLR_CMAKE_HOST_OS STREQUAL iossimulator)
134136

135137
if(CLR_CMAKE_HOST_OS STREQUAL tvos OR CLR_CMAKE_HOST_OS STREQUAL tvossimulator)
136138
set(CLR_CMAKE_HOST_UNIX 1)
139+
set(CLR_CMAKE_HOST_APPLE 1)
137140
set(CLR_CMAKE_HOST_TVOS 1)
138141
if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
139142
set(CLR_CMAKE_HOST_UNIX_AMD64 1)
@@ -374,6 +377,7 @@ endif(CLR_CMAKE_TARGET_OS STREQUAL android)
374377

375378
if(CLR_CMAKE_TARGET_OS STREQUAL darwin)
376379
set(CLR_CMAKE_TARGET_UNIX 1)
380+
set(CLR_CMAKE_TARGET_APPLE 1)
377381

378382
if(CMAKE_SYSTEM_VARIANT STREQUAL maccatalyst)
379383
set(CLR_CMAKE_TARGET_MACCATALYST 1)
@@ -384,11 +388,13 @@ endif(CLR_CMAKE_TARGET_OS STREQUAL darwin)
384388

385389
if(CLR_CMAKE_TARGET_OS STREQUAL ios OR CLR_CMAKE_TARGET_OS STREQUAL iossimulator)
386390
set(CLR_CMAKE_TARGET_UNIX 1)
391+
set(CLR_CMAKE_TARGET_APPLE 1)
387392
set(CLR_CMAKE_TARGET_IOS 1)
388393
endif(CLR_CMAKE_TARGET_OS STREQUAL ios OR CLR_CMAKE_TARGET_OS STREQUAL iossimulator)
389394

390395
if(CLR_CMAKE_TARGET_OS STREQUAL tvos OR CLR_CMAKE_TARGET_OS STREQUAL tvossimulator)
391396
set(CLR_CMAKE_TARGET_UNIX 1)
397+
set(CLR_CMAKE_TARGET_APPLE 1)
392398
set(CLR_CMAKE_TARGET_TVOS 1)
393399
endif(CLR_CMAKE_TARGET_OS STREQUAL tvos OR CLR_CMAKE_TARGET_OS STREQUAL tvossimulator)
394400

@@ -474,7 +480,7 @@ endif()
474480

475481
if(NOT CLR_CMAKE_TARGET_BROWSER AND NOT CLR_CMAKE_TARGET_WASI)
476482
# The default linker on Solaris also does not support PIE.
477-
if(NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_TARGET_SUNOS AND NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_HOST_TVOS AND NOT CLR_CMAKE_HOST_IOS AND NOT MSVC)
483+
if(NOT CLR_CMAKE_TARGET_ANDROID AND NOT CLR_CMAKE_TARGET_SUNOS AND NOT CLR_CMAKE_TARGET_APPLE AND NOT MSVC)
478484
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
479485
add_compile_options($<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>:-fPIE>)
480486
add_compile_options($<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:-fPIC>)

eng/native/configuretools.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ if(NOT WIN32 AND NOT CLR_CMAKE_TARGET_BROWSER AND NOT CLR_CMAKE_TARGET_WASI)
5151
locate_toolchain_exec(link CMAKE_LINKER YES)
5252
endif()
5353

54-
if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND (NOT CLR_CMAKE_TARGET_ANDROID OR CROSS_ROOTFS))
54+
if(NOT CLR_CMAKE_TARGET_APPLE AND (NOT CLR_CMAKE_TARGET_ANDROID OR CROSS_ROOTFS))
5555
locate_toolchain_exec(objdump CMAKE_OBJDUMP YES)
5656

5757
unset(CMAKE_OBJCOPY CACHE)

eng/native/functions.cmake

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ function(generate_exports_file)
327327
list(GET INPUT_LIST -1 outputFilename)
328328
list(REMOVE_AT INPUT_LIST -1)
329329

330-
if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
330+
if(CLR_CMAKE_TARGET_APPLE)
331331
set(SCRIPT_NAME generateexportedsymbols.sh)
332332
else()
333333
set(SCRIPT_NAME generateversionscript.sh)
@@ -366,7 +366,7 @@ endfunction()
366366

367367
function (get_symbol_file_name targetName outputSymbolFilename)
368368
if (CLR_CMAKE_HOST_UNIX)
369-
if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
369+
if (CLR_CMAKE_TARGET_APPLE)
370370
set(strip_destination_file $<TARGET_FILE:${targetName}>.dwarf)
371371
else ()
372372
set(strip_destination_file $<TARGET_FILE:${targetName}>.dbg)
@@ -386,7 +386,7 @@ function(strip_symbols targetName outputFilename)
386386
if (CLR_CMAKE_HOST_UNIX)
387387
set(strip_source_file $<TARGET_FILE:${targetName}>)
388388

389-
if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
389+
if (CLR_CMAKE_TARGET_APPLE)
390390

391391
# Ensure that dsymutil and strip are present
392392
find_program(DSYMUTIL dsymutil)
@@ -425,7 +425,7 @@ function(strip_symbols targetName outputFilename)
425425
COMMAND ${strip_command}
426426
COMMENT "Stripping symbols from ${strip_source_file} into file ${strip_destination_file}"
427427
)
428-
else (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
428+
else (CLR_CMAKE_TARGET_APPLE)
429429

430430
add_custom_command(
431431
TARGET ${targetName}
@@ -436,7 +436,7 @@ function(strip_symbols targetName outputFilename)
436436
COMMAND ${CMAKE_OBJCOPY} --add-gnu-debuglink=${strip_destination_file} ${strip_source_file}
437437
COMMENT "Stripping symbols from ${strip_source_file} into file ${strip_destination_file}"
438438
)
439-
endif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
439+
endif (CLR_CMAKE_TARGET_APPLE)
440440
endif(CLR_CMAKE_HOST_UNIX)
441441
endfunction()
442442

@@ -446,7 +446,7 @@ function(install_with_stripped_symbols targetName kind destination)
446446
install_symbol_file(${symbol_file} ${destination} ${ARGN})
447447
endif()
448448

449-
if ((CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) AND ("${kind}" STREQUAL "TARGETS"))
449+
if (CLR_CMAKE_TARGET_APPLE AND ("${kind}" STREQUAL "TARGETS"))
450450
# We want to avoid the kind=TARGET install behaviors which corrupt code signatures on osx-arm64
451451
set(kind PROGRAMS)
452452
endif()

eng/native/tryrun_ios_tvos.cmake

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
macro(set_cache_value)
2+
set(${ARGV0} ${ARGV1} CACHE STRING "Result from TRY_RUN" FORCE)
3+
set(${ARGV0}__TRYRUN_OUTPUT "dummy output" CACHE STRING "Output from TRY_RUN" FORCE)
4+
endmacro()
5+
6+
set_cache_value(HAVE_SCHED_GETCPU_EXITCODE 1)
7+
set_cache_value(HAVE_CLOCK_MONOTONIC_COARSE_EXITCODE 1)
8+
set_cache_value(HAVE_CLOCK_MONOTONIC_EXITCODE 0)
9+
10+
11+
# TODO: these are taken from macOS, check these whether they're correct for iOS
12+
# some of them are probably not used by what we use from NativeAOT so could be reduced
13+
set_cache_value(FILE_OPS_CHECK_FERROR_OF_PREVIOUS_CALL_EXITCODE 1)
14+
set_cache_value(GETPWUID_R_SETS_ERRNO_EXITCODE 1)
15+
set_cache_value(HAS_POSIX_SEMAPHORES_EXITCODE 1)
16+
set_cache_value(HAVE_BROKEN_FIFO_KEVENT_EXITCODE 1)
17+
set_cache_value(HAVE_BROKEN_FIFO_SELECT_EXITCODE 1)
18+
set_cache_value(HAVE_CLOCK_REALTIME_EXITCODE 0)
19+
set_cache_value(HAVE_CLOCK_THREAD_CPUTIME_EXITCODE 0)
20+
set_cache_value(HAVE_CLOCK_GETTIME_NSEC_NP_EXITCODE 0)
21+
set_cache_value(HAVE_COMPATIBLE_ACOS_EXITCODE 0)
22+
set_cache_value(HAVE_COMPATIBLE_ASIN_EXITCODE 0)
23+
set_cache_value(HAVE_COMPATIBLE_ATAN2_EXITCODE 0)
24+
set_cache_value(HAVE_COMPATIBLE_EXP_EXITCODE 1)
25+
set_cache_value(HAVE_COMPATIBLE_ILOGB0_EXITCODE 0)
26+
set_cache_value(HAVE_COMPATIBLE_ILOGBNAN_EXITCODE 1)
27+
set_cache_value(HAVE_COMPATIBLE_LOG10_EXITCODE 0)
28+
set_cache_value(HAVE_COMPATIBLE_LOG_EXITCODE 0)
29+
set_cache_value(HAVE_COMPATIBLE_POW_EXITCODE 0)
30+
set_cache_value(HAVE_FUNCTIONAL_PTHREAD_ROBUST_MUTEXES_EXITCODE 1)
31+
set_cache_value(HAVE_LARGE_SNPRINTF_SUPPORT_EXITCODE 0)
32+
set_cache_value(HAVE_MMAP_DEV_ZERO_EXITCODE 1)
33+
set_cache_value(HAVE_PROCFS_CTL_EXITCODE 1)
34+
set_cache_value(HAVE_PROCFS_MAPS_EXITCODE 1)
35+
set_cache_value(HAVE_PROCFS_STATUS_EXITCODE 1)
36+
set_cache_value(HAVE_PROCFS_STAT_EXITCODE 1)
37+
set_cache_value(HAVE_SCHED_GET_PRIORITY_EXITCODE 0)
38+
set_cache_value(HAVE_VALID_NEGATIVE_INF_POW_EXITCODE 0)
39+
set_cache_value(HAVE_VALID_POSITIVE_INF_POW_EXITCODE 0)
40+
set_cache_value(HAVE_WORKING_CLOCK_GETTIME_EXITCODE 0)
41+
set_cache_value(HAVE_WORKING_GETTIMEOFDAY_EXITCODE 0)
42+
set_cache_value(MMAP_ANON_IGNORES_PROTECTION_EXITCODE 1)
43+
set_cache_value(ONE_SHARED_MAPPING_PER_FILEREGION_PER_PROCESS_EXITCODE 1)
44+
set_cache_value(PTHREAD_CREATE_MODIFIES_ERRNO_EXITCODE 1)
45+
set_cache_value(REALPATH_SUPPORTS_NONEXISTENT_FILES_EXITCODE 1)
46+
set_cache_value(SEM_INIT_MODIFIES_ERRNO_EXITCODE 1)
47+
set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 1)
48+
set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 0)
49+
set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 1)
50+
set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 1)

0 commit comments

Comments
 (0)