Skip to content

Commit 392fe5b

Browse files
authored
[2020-02][watchOS] Add simwatch64 support (#20552)
* [watchOS] Add simwatch64 support Related: dotnet/macios#9949 * Ignore simwatch64 build folder and fix Mono.framework lipo
1 parent a22ed3f commit 392fe5b

File tree

3 files changed

+40
-11
lines changed

3 files changed

+40
-11
lines changed

mono/utils/mach-support-amd64.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ mono_mach_arch_get_thread_fpstate_size ()
103103
kern_return_t
104104
mono_mach_arch_get_thread_states (thread_port_t thread, thread_state_t state, mach_msg_type_number_t *count, thread_state_t fpstate, mach_msg_type_number_t *fpcount)
105105
{
106+
#if defined(HOST_WATCHOS)
107+
g_error ("thread_get_state() is not supported by this platform");
108+
#else
106109
x86_thread_state64_t *arch_state = (x86_thread_state64_t *)state;
107110
x86_float_state64_t *arch_fpstate = (x86_float_state64_t *)fpstate;
108111
kern_return_t ret;
@@ -116,17 +119,22 @@ mono_mach_arch_get_thread_states (thread_port_t thread, thread_state_t state, ma
116119

117120
ret = thread_get_state (thread, x86_FLOAT_STATE64, (thread_state_t)arch_fpstate, fpcount);
118121
return ret;
122+
#endif
119123
}
120124

121125
kern_return_t
122126
mono_mach_arch_set_thread_states (thread_port_t thread, thread_state_t state, mach_msg_type_number_t count, thread_state_t fpstate, mach_msg_type_number_t fpcount)
123127
{
128+
#if defined(HOST_WATCHOS)
129+
g_error ("thread_set_state() is not supported by this platform");
130+
#else
124131
kern_return_t ret;
125132
ret = thread_set_state (thread, x86_THREAD_STATE64, state, count);
126133
if (ret != KERN_SUCCESS)
127134
return ret;
128135
ret = thread_set_state (thread, x86_FLOAT_STATE64, fpstate, fpcount);
129136
return ret;
137+
#endif
130138
}
131139

132140
#endif

sdks/builds/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ ios-sim32-*/
3838
ios-sim64-*/
3939
ios-simtv-*/
4040
ios-simwatch-*/
41+
ios-simwatch64-*/
4142
ios-netcore_target32-*/
4243
ios-netcore_target32s-*/
4344
ios-netcore_target64-*/
@@ -52,6 +53,7 @@ ios-netcore_sim32-*/
5253
ios-netcore_sim64-*/
5354
ios-netcore_simtv-*/
5455
ios-netcore_simwatch-*/
56+
ios-netcore_simwatch64-*/
5557
mac-mac64-*/
5658
wasm-runtime-*/
5759
wasm-cross-*/

sdks/builds/ios.mk

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -347,13 +347,16 @@ ios-sim32_SYSROOT = $(ios_sim_sysroot) -mios-simulator-version-min=$(IOS_VERSION
347347
ios-sim64_SYSROOT = $(ios_sim_sysroot) -mios-simulator-version-min=$(IOS_VERSION_MIN)
348348
ios-simtv_SYSROOT = $(tvos_sim_sysroot) -mtvos-simulator-version-min=$(TVOS_VERSION_MIN)
349349
ios-simwatch_SYSROOT = $(watchos_sim_sysroot) -mwatchos-simulator-version-min=$(WATCHOS_VERSION_MIN)
350+
ios-simwatch64_SYSROOT = $(watchos_sim_sysroot) -mwatchos-simulator-version-min=$(WATCHOS_VERSION_MIN)
350351

351352
ios-simwatch_CONFIGURE_FLAGS = --enable-cooperative-suspend
353+
ios-simwatch64_CONFIGURE_FLAGS = --enable-cooperative-suspend
352354

353355
ios-sim32_CPPFLAGS = -DHOST_IOS
354356
ios-sim64_CPPFLAGS = -DHOST_IOS
355357
ios-simtv_CPPFLAGS = -DHOST_IOS -DHOST_TVOS
356358
ios-simwatch_CPPFLAGS = -DHOST_IOS -DHOST_WATCHOS
359+
ios-simwatch64_CPPFLAGS = -DHOST_IOS -DHOST_WATCHOS
357360

358361
ios-simtv_AC_VARS = \
359362
ac_cv_func_pthread_kill=no \
@@ -374,39 +377,55 @@ ios-simwatch_AC_VARS = \
374377
ac_cv_func_execve=no \
375378
ac_cv_func_execvp=no \
376379
ac_cv_func_signal=no
380+
ios-simwatch64_AC_VARS = \
381+
ac_cv_func_system=no \
382+
ac_cv_func_pthread_kill=no \
383+
ac_cv_func_kill=no \
384+
ac_cv_func_sigaction=no \
385+
ac_cv_func_fork=no \
386+
ac_cv_func_execv=no \
387+
ac_cv_func_execve=no \
388+
ac_cv_func_execvp=no \
389+
ac_cv_func_signal=no
377390

378391
# --- NETCORE ----
379392
ios-netcore_sim32_SYSROOT = $(ios-sim32_SYSROOT)
380393
ios-netcore_sim64_SYSROOT = $(ios-sim64_SYSROOT)
381394
ios-netcore_simtv_SYSROOT = $(ios-simtv_SYSROOT)
382395
ios-netcore_simwatch_SYSROOT = $(ios-simwatch_SYSROOT)
396+
ios-netcore_simwatch64_SYSROOT = $(ios-simwatch64_SYSROOT)
383397

384398
ios-netcore_sim32_CONFIGURE_FLAGS = --with-core=only
385399
ios-netcore_sim64_CONFIGURE_FLAGS = --with-core=only
386400
ios-netcore_simtv_CONFIGURE_FLAGS = --with-core=only
387401
ios-netcore_simwatch_CONFIGURE_FLAGS = $(ios-simwatch_CONFIGURE_FLAGS) --with-core=only
402+
ios-netcore_simwatch64_CONFIGURE_FLAGS = $(ios-simwatch64_CONFIGURE_FLAGS) --with-core=only
388403

389404
ios-netcore_sim32_CPPFLAGS = $(ios-sim32_CPPFLAGS)
390405
ios-netcore_sim64_CPPFLAGS = $(ios-sim64_CPPFLAGS)
391406
ios-netcore_simtv_CPPFLAGS = $(ios-simtv_CPPFLAGS)
392407
ios-netcore_simwatch_CPPFLAGS = $(ios-simwatch_CPPFLAGS)
408+
ios-netcore_simwatch64_CPPFLAGS = $(ios-simwatch64_CPPFLAGS)
393409

394410
ios-netcore_simtv_AC_VARS = $(ios-simtv_AC_VARS)
395411
ios-netcore_simwatch_AC_VARS = $(ios-simwatch_AC_VARS)
412+
ios-netcore_simwatch64_AC_VARS = $(ios-simwatch64_AC_VARS)
396413

397414

398415
ifndef DISABLE_CLASSIC
399416
$(eval $(call iOSSimulatorTemplate,sim32,i386-apple-darwin10,i386))
400417
$(eval $(call iOSSimulatorTemplate,sim64,x86_64-apple-darwin10,x86_64))
401418
$(eval $(call iOSSimulatorTemplate,simtv,x86_64-apple-darwin10,x86_64))
402419
$(eval $(call iOSSimulatorTemplate,simwatch,i386-apple-darwin10,i386))
420+
$(eval $(call iOSSimulatorTemplate,simwatch64,x86_64-apple-darwin10,x86_64))
403421
endif
404422

405423
ifdef ENABLE_NETCORE
406424
$(eval $(call iOSSimulatorTemplate,netcore_sim32,i386-apple-darwin10,i386))
407425
$(eval $(call iOSSimulatorTemplate,netcore_sim64,x86_64-apple-darwin10,x86_64))
408426
$(eval $(call iOSSimulatorTemplate,netcore_simtv,x86_64-apple-darwin10,x86_64))
409427
$(eval $(call iOSSimulatorTemplate,netcore_simwatch,i386-apple-darwin10,i386))
428+
$(eval $(call iOSSimulatorTemplate,netcore_simwatch64,x86_64-apple-darwin10,x86_64))
410429
endif
411430

412431
##
@@ -505,7 +524,7 @@ $(eval $(call iOSCrossTemplate,netcore_crosswatch64_32,x86_64,aarch64-apple-darw
505524
endif
506525

507526

508-
$(ios_FRAMEWORKS_DIR): package-ios-target32 package-ios-target32s package-ios-target64 package-ios-targettv package-ios-targetwatch package-ios-targetwatch64_32 package-ios-sim32 package-ios-sim64 package-ios-simtv package-ios-simwatch $(TOP)/sdks/builds/ios-Mono.framework-Info.plist $(TOP)/sdks/builds/ios-Mono.framework-tvos.Info.plist $(TOP)/sdks/builds/ios-Mono.framework-watchos.Info.plist $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion80.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion80.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion80.dylib
527+
$(ios_FRAMEWORKS_DIR): package-ios-target32 package-ios-target32s package-ios-target64 package-ios-targettv package-ios-targetwatch package-ios-targetwatch64_32 package-ios-sim32 package-ios-sim64 package-ios-simtv package-ios-simwatch package-ios-simwatch64 $(TOP)/sdks/builds/ios-Mono.framework-Info.plist $(TOP)/sdks/builds/ios-Mono.framework-tvos.Info.plist $(TOP)/sdks/builds/ios-Mono.framework-watchos.Info.plist $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion80.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion80.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion80.dylib
509528
rm -rf $(ios_FRAMEWORKS_DIR)
510529

511530
### Mono.framework for devices ###
@@ -531,7 +550,7 @@ $(ios_FRAMEWORKS_DIR): package-ios-target32 package-ios-target32s package-ios-ta
531550
mkdir -p $(ios_FRAMEWORKS_DIR)/watchos-sim/Mono.framework/
532551
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-sim32-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib $(TOP)/sdks/out/ios-sim64-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib -create -output $(ios_FRAMEWORKS_DIR)/ios-sim/Mono.framework/Mono
533552
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simtv-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib -create -output $(ios_FRAMEWORKS_DIR)/tvos-sim/Mono.framework/Mono
534-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib -create -output $(ios_FRAMEWORKS_DIR)/watchos-sim/Mono.framework/Mono
553+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib -create -output $(ios_FRAMEWORKS_DIR)/watchos-sim/Mono.framework/Mono
535554
$(ios_PLATFORM_BIN)/install_name_tool -id @rpath/Mono.framework/Mono $(ios_FRAMEWORKS_DIR)/ios-sim/Mono.framework/Mono
536555
$(ios_PLATFORM_BIN)/install_name_tool -id @rpath/Mono.framework/Mono $(ios_FRAMEWORKS_DIR)/tvos-sim/Mono.framework/Mono
537556
$(ios_PLATFORM_BIN)/install_name_tool -id @rpath/Mono.framework/Mono $(ios_FRAMEWORKS_DIR)/watchos-sim/Mono.framework/Mono
@@ -543,7 +562,7 @@ $(ios_FRAMEWORKS_DIR): package-ios-target32 package-ios-target32s package-ios-ta
543562
cp $(TOP)/sdks/builds/ios-Mono.framework-watchos.Info.plist $(ios_FRAMEWORKS_DIR)/watchos-sim/Mono.framework/Info.plist
544563

545564

546-
$(ios_LIBS_DIR): package-ios-target32 package-ios-target32s package-ios-target64 package-ios-targettv package-ios-targetwatch package-ios-targetwatch64_32 package-ios-sim32 package-ios-sim64 package-ios-simtv package-ios-simwatch $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion70.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion70.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion70.dylib $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmono-profiler-log-minversion70.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmono-profiler-log-minversion70.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmono-profiler-log-minversion70.dylib $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmono-native-compat-minversion70.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmono-native-compat-minversion70.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmono-native-compat-minversion70.dylib
565+
$(ios_LIBS_DIR): package-ios-target32 package-ios-target32s package-ios-target64 package-ios-targettv package-ios-targetwatch package-ios-targetwatch64_32 package-ios-sim32 package-ios-sim64 package-ios-simtv package-ios-simwatch package-ios-simwatch64 $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion70.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion70.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmonosgen-2.0-minversion70.dylib $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmono-profiler-log-minversion70.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmono-profiler-log-minversion70.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmono-profiler-log-minversion70.dylib $(TOP)/sdks/out/ios-target32-$(CONFIGURATION)/lib/libmono-native-compat-minversion70.dylib $(TOP)/sdks/out/ios-target32s-$(CONFIGURATION)/lib/libmono-native-compat-minversion70.dylib $(TOP)/sdks/out/ios-target64-$(CONFIGURATION)/lib/libmono-native-compat-minversion70.dylib
547566
rm -rf $(ios_LIBS_DIR)
548567

549568
### libs for devices ###
@@ -648,14 +667,14 @@ $(ios_LIBS_DIR): package-ios-target32 package-ios-target32s package-ios-target64
648667
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simtv-$(CONFIGURATION)/lib/libmono-profiler-log-static.a -create -output $(ios_LIBS_DIR)/tvos-sim/libmono-profiler-log.a
649668
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simtv-$(CONFIGURATION)/lib/libmonosgen-2.0.a -create -output $(ios_LIBS_DIR)/tvos-sim/libmonosgen-2.0.a
650669

651-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmonosgen-2.0.dylib
652-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-profiler-log.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-profiler-log.dylib
653-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-compat.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-compat.dylib
654-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-unified.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-unified.dylib
655-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-compat.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-compat.a
656-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-unified.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-unified.a
657-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-profiler-log-static.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-profiler-log.a
658-
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmonosgen-2.0.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmonosgen-2.0.a
670+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmonosgen-2.0.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmonosgen-2.0.dylib
671+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-profiler-log.dylib $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmono-profiler-log.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-profiler-log.dylib
672+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-compat.dylib $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmono-native-compat.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-compat.dylib
673+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-unified.dylib $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmono-native-unified.dylib -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-unified.dylib
674+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-compat.a $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmono-native-compat.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-compat.a
675+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-native-unified.a $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmono-native-unified.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-native-unified.a
676+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmono-profiler-log-static.a $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmono-profiler-log-static.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmono-profiler-log.a
677+
$(ios_PLATFORM_BIN)/lipo $(TOP)/sdks/out/ios-simwatch-$(CONFIGURATION)/lib/libmonosgen-2.0.a $(TOP)/sdks/out/ios-simwatch64-$(CONFIGURATION)/lib/libmonosgen-2.0.a -create -output $(ios_LIBS_DIR)/watchos-sim/libmonosgen-2.0.a
659678

660679
$(ios_PLATFORM_BIN)/install_name_tool -id @rpath/libmonosgen-2.0.dylib $(ios_LIBS_DIR)/ios-sim/libmonosgen-2.0.dylib
661680
$(ios_PLATFORM_BIN)/install_name_tool -id @rpath/libmono-profiler-log.dylib $(ios_LIBS_DIR)/ios-sim/libmono-profiler-log.dylib

0 commit comments

Comments
 (0)