Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[d16-2] Implement support for ARM64_32. Fixes #4864. #6100

Merged
merged 22 commits into from
May 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
722b8e3
Add an 'arm64_32' capability.
rolfbjarne Feb 21, 2019
d262084
[mtouch] Add support for arm64_32
lewurm Jan 10, 2019
06fcf59
[build/runtime] Add build rules for arm64_32
lewurm Jan 23, 2019
8face92
[msbuild] Make using the fake watchOS 4.3 SDK disabled by default.
rolfbjarne Jan 29, 2019
4d87a74
[ObjCRuntime] The NSLog_arm64 P/Invoke is now needed on watchOS (ARM6…
rolfbjarne Feb 7, 2019
2696403
[CoreGraphics] Fix CGColorConversionInfo on arm64_32.
rolfbjarne Feb 7, 2019
0378b33
[generator] Treat arm64_32 as arm64 when dealing with objc_msgSend be…
rolfbjarne Jan 30, 2019
4e9b69e
[xharness] Add ARM64_32 support.
rolfbjarne Jan 29, 2019
969c8b8
[xharness] Don't add Debug variations for arm64_32, we don't support …
rolfbjarne Feb 21, 2019
e4d01fe
[introspection] ARM64_32 adjustments.
rolfbjarne Jan 30, 2019
af1a8db
[monotouch-test] Adjust for arm64_32 abi.
rolfbjarne Feb 12, 2019
ab37943
[tests][mtouch] Add abi/architecture tests for arm64_32.
rolfbjarne Feb 12, 2019
4fe3ce9
[monotouch-test] LLVM's too smart for our tests, so ignore Symbols.Fu…
rolfbjarne Feb 4, 2019
5cab1e8
[tests][mtouch] Adjust minOS version test for arm64_32.
rolfbjarne Feb 26, 2019
c870d33
[tests][mtouch] Adjust Xamarin.Tests.ProductTests.MinOSVersion for wa…
rolfbjarne May 10, 2019
281ea5f
[xharness] Don't run the mono-native-compat test on ARM64_32.
rolfbjarne May 10, 2019
d2c4e4a
[xharness] Rework arm64_32 variations a bit so that they're not alway…
rolfbjarne May 16, 2019
99fddda
Fix whitespace.
rolfbjarne May 10, 2019
3d0398f
[monotouch-test] Don't go completely overboard when trying to fill th…
rolfbjarne May 10, 2019
2782ad3
[tests] Fix reporting back to xharness for watchOS NUnit/XUnit tests.
rolfbjarne May 10, 2019
6228e49
[tests] Link NUnit/XUnit watchOS extensions.
rolfbjarne May 10, 2019
67eb2bc
Bump mono.
rolfbjarne May 22, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Make.config
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,9 @@ SIMULATORWATCH_OBJC_CFLAGS = $(SIMULATORWATCH_CFLAGS) $(COMMON_SIMULATOR_OBJC_CF

DEVICEWATCH_SDK = $(XCODE_DEVELOPER_ROOT)/Platforms/WatchOS.platform/Developer/SDKs/WatchOS$(WATCH_SDK_VERSION).sdk
DEVICEWATCH_CFLAGS = -arch armv7k -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) $(CFLAGS) -fembed-bitcode $(IOS_COMMON_DEFINES)
DEVICEWATCH64_32_CFLAGS = -arch arm64_32 -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) $(CFLAGS) -fembed-bitcode $(IOS_COMMON_DEFINES)
DEVICEWATCH_OBJC_CFLAGS = $(DEVICEWATCH_CFLAGS) $(DEVICE_OBJC_CFLAGS)
DEVICEWATCH64_32_OBJC_CFLAGS = $(DEVICEWATCH64_32_CFLAGS) $(DEVICE_OBJC_CFLAGS)

# TVOS

Expand Down
1 change: 1 addition & 0 deletions Versions-ios.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@
<string>http-client-handlers</string>
<string>mono-symbol-archive</string>
<string>sgen-concurrent-gc</string>
<string>arm64_32</string>
</array>
<key>Optimizations</key>
<dict>
Expand Down
139 changes: 101 additions & 38 deletions builds/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1301,55 +1301,101 @@ WATCHOS_BIN_PATH = $(XCODE_DEVELOPER_ROOT)/Toolchains/XcodeDefault.xctoolchain/u

ifdef INCLUDE_WATCH
ifdef INCLUDE_DEVICE
build:: build-targetwatch
clean-local:: clean-targetwatch
build:: build-targetwatch build-targetwatch64_32
clean-local:: clean-targetwatch clean-targetwatch64_32
install-local:: install-watchos
all-local:: install-watchos

targetwatch: build-targetwatch install-watchos
watchos:: targetwatch
targetwatch64_32: build-targetwatch64_32 install-watch64_32
watchos:: targetwatch targetwatch64_32

.PHONY: targetwatch
.PHONY: targetwatch targetwatch64_32

.stamp-build-targetwatch: $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES)
$(MAKE) -C $(SDK_BUILDDIR) package-ios-targetwatch $(SDK_ARGS)
$(Q) mkdir -p $(BUILD_DESTDIR)/targetwatch
$(Q) $(CP) -r $(SDK_DESTDIR)/ios-targetwatch-release/* $(BUILD_DESTDIR)/targetwatch
$(Q) touch $@

.stamp-build-targetwatch64_32: $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES)
$(MAKE) -C $(SDK_BUILDDIR) package-ios-targetwatch64_32 $(SDK_ARGS)
$(Q) mkdir -p $(BUILD_DESTDIR)/targetwatch64_32
$(Q) $(CP) -r $(SDK_DESTDIR)/ios-targetwatch64_32-release/* $(BUILD_DESTDIR)/targetwatch64_32
$(Q) touch $@

build-targetwatch: .stamp-build-targetwatch
build-targetwatch64_32: .stamp-build-targetwatch64_32

clean-targetwatch:
$(Q) rm -rf $(BUILD_DESTDIR)/targetwatch .stamp-*-targetwatch
$(MAKE) -C $(SDK_BUILDDIR) clean-ios-targetwatch $(SDK_ARGS)

setup-watchos: setup-targetwatch
build-watchos: build-targetwatch
clean-watchos: clean-targetwatch

WATCHOS_TARGET_LIBMONOSGEN = $(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.a
WATCHOS_TARGET_SHAREDMONOSGEN = $(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.dylib
WATCHOS_TARGET_LIBLOGPROFILER = $(BUILD_DESTDIR)/targetwatch/lib/libmono-profiler-log-static.a
WATCHOS_TARGET_LIBMONOEEINTERP = $(BUILD_DESTDIR)/targetwatch/lib/libmono-ee-interp.a
WATCHOS_TARGET_LIBMONOICALLTABLE = $(BUILD_DESTDIR)/targetwatch/lib/libmono-icall-table.a
WATCHOS_TARGET_LIBMONOILGEN = $(BUILD_DESTDIR)/targetwatch/lib/libmono-ilgen.a
WATCHOS_TARGET_SHAREDLIBLOGPROFILER = $(BUILD_DESTDIR)/targetwatch/lib/libmono-profiler-log.0.dylib
WATCHOS_TARGET_LIBMONONATIVECOMPAT = $(BUILD_DESTDIR)/targetwatch/lib/libmono-native-compat.a
WATCHOS_TARGET_LIBMONONATIVEUNIFIED = $(BUILD_DESTDIR)/targetwatch/lib/libmono-native-unified.a
WATCHOS_TARGET_SHAREDLIBMONONATIVECOMPAT = $(BUILD_DESTDIR)/targetwatch/lib/libmono-native-compat.dylib
WATCHOS_TARGET_SHAREDLIBMONONATIVEUNIFIED = $(BUILD_DESTDIR)/targetwatch/lib/libmono-native-unified.dylib

$(WATCHOS_TARGET_LIBMONOSGEN): .stamp-build-targetwatch
$(WATCHOS_TARGET_SHAREDMONOSGEN): .stamp-build-targetwatch
$(WATCHOS_TARGET_LIBLOGPROFILER): .stamp-build-targetwatch
$(WATCHOS_TARGET_LIBMONOEEINTERP): .stamp-build-targetwatch
$(WATCHOS_TARGET_LIBMONOICALLTABLE): .stamp-build-targetwatch
$(WATCHOS_TARGET_LIBMONOILGEN): .stamp-build-targetwatch
$(WATCHOS_TARGET_SHAREDLIBLOGPROFILER): .stamp-build-targetwatch
$(WATCHOS_TARGET_LIBMONONATIVECOMPAT): .stamp-build-targetwatch
$(WATCHOS_TARGET_LIBMONONATIVEUNIFIED): .stamp-build-targetwatch
$(WATCHOS_TARGET_SHAREDLIBMONONATIVECOMPAT): .stamp-build-targetwatch
$(WATCHOS_TARGET_SHAREDLIBMONONATIVEUNIFIED): .stamp-build-targetwatch
clean-targetwatch64_32:
$(Q) rm -rf $(BUILD_DESTDIR)/targetwatch64_32 .stamp-*-targetwatch64_32
$(MAKE) -C $(SDK_BUILDDIR) clean-ios-targetwatch64_32 $(SDK_ARGS)

setup-watchos: setup-targetwatch setup-targetwatch64_32
build-watchos: build-targetwatch build-targetwatch64_32
clean-watchos: clean-targetwatch clean-targetwatch64_32

WATCHOS_TARGET_LIBMONOSGEN = \
$(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.a \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmonosgen-2.0.a

WATCHOS_TARGET_SHAREDMONOSGEN = \
$(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.dylib \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmonosgen-2.0.dylib

WATCHOS_TARGET_LIBLOGPROFILER = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-profiler-log-static.a \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-profiler-log-static.a

WATCHOS_TARGET_LIBMONOEEINTERP = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-ee-interp.a \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-ee-interp.a

WATCHOS_TARGET_LIBMONOICALLTABLE = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-icall-table.a \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-icall-table.a

WATCHOS_TARGET_LIBMONOILGEN = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-ilgen.a \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-ilgen.a

WATCHOS_TARGET_SHAREDLIBLOGPROFILER = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-profiler-log.0.dylib \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-profiler-log.0.dylib

WATCHOS_TARGET_LIBMONONATIVECOMPAT = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-native-compat.a \

WATCHOS_TARGET_LIBMONONATIVEUNIFIED = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-native-unified.a \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-native.a \

WATCHOS_TARGET_SHAREDLIBMONONATIVECOMPAT = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-native-compat.dylib \

WATCHOS_TARGET_SHAREDLIBMONONATIVEUNIFIED = \
$(BUILD_DESTDIR)/targetwatch/lib/libmono-native-unified.dylib \
$(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-native.dylib \

WATCHOS_TARGET_MONOFRAMEWORK = \
$(BUILD_DESTDIR)/targetwatch/tmp-lib/Mono \
$(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/Mono

$(WATCHOS_TARGET_LIBMONOSGEN): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_SHAREDMONOSGEN): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_LIBLOGPROFILER): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_LIBMONOEEINTERP): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_LIBMONOICALLTABLE): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_LIBMONOILGEN): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_SHAREDLIBLOGPROFILER): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_LIBMONONATIVECOMPAT): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_LIBMONONATIVEUNIFIED): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_SHAREDLIBMONONATIVECOMPAT): .stamp-build-targetwatch .stamp-build-targetwatch64_32
$(WATCHOS_TARGET_SHAREDLIBMONONATIVEUNIFIED): .stamp-build-targetwatch .stamp-build-targetwatch64_32

device:: watchos

Expand All @@ -1376,7 +1422,9 @@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib/libmonosgen-2.0.a: $(WATCHOS_TARGET
$(Q) $(WATCHOS_BIN_PATH)/lipo $(WATCHOS_TARGET_LIBMONOSGEN) -create -output $@

$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib/libmonosgen-2.0.dylib: $(WATCHOS_TARGET_SHAREDMONOSGEN) | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib
$(Q_STRIP) $(WATCHOS_BIN_PATH)/bitcode_strip $(WATCHOS_TARGET_SHAREDMONOSGEN) -m -o $@
$(Q_STRIP) $(WATCHOS_BIN_PATH)/bitcode_strip $(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.dylib -m -o $(BUILD_DESTDIR)/targetwatch/tmp-lib/libmonosgen-2.0.dylib
$(Q_STRIP) $(WATCHOS_BIN_PATH)/bitcode_strip $(BUILD_DESTDIR)/targetwatch64_32/lib/libmonosgen-2.0.dylib -m -o $(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/libmonosgen-2.0.dylib
$(Q_STRIP) $(WATCHOS_BIN_PATH)/lipo $(BUILD_DESTDIR)/targetwatch/tmp-lib/libmonosgen-2.0.dylib $(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/libmonosgen-2.0.dylib -create -output $@
$(Q) $(WATCHOS_BIN_PATH)/install_name_tool -id @rpath/libmonosgen-2.0.dylib $@
$(Q) dsymutil -t 4 -o $@.dSYM $@

Expand All @@ -1393,8 +1441,13 @@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib/libmono-ilgen.a: $(WATCHOS_TARGET_L
$(Q) $(WATCHOS_BIN_PATH)/lipo $(WATCHOS_TARGET_LIBMONOILGEN) -create -output $@

$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib/libmono-profiler-log.dylib: $(WATCHOS_TARGET_SHAREDLIBLOGPROFILER) | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib
$(Q) $(WATCHOS_BIN_PATH)/bitcode_strip $(WATCHOS_TARGET_SHAREDLIBLOGPROFILER) -m -o $@
$(Q) $(WATCHOS_BIN_PATH)/install_name_tool -id @rpath/libmono-profiler-log.dylib -change $(SDK_DESTDIR)/ios-targetwatch-release/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib $@
$(Q) $(WATCHOS_BIN_PATH)/bitcode_strip $(BUILD_DESTDIR)/targetwatch/lib/libmono-profiler-log.0.dylib -m -o $(BUILD_DESTDIR)/targetwatch/tmp-lib/libmono-profiler-log.0.dylib
$(Q) $(WATCHOS_BIN_PATH)/bitcode_strip $(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-profiler-log.0.dylib -m -o $(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/libmono-profiler-log.0.dylib
$(Q) $(WATCHOS_BIN_PATH)/lipo $(BUILD_DESTDIR)/targetwatch/tmp-lib/libmono-profiler-log.0.dylib $(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/libmono-profiler-log.0.dylib -create -output $@
$(Q) $(WATCHOS_BIN_PATH)/install_name_tool -id @rpath/libmono-profiler-log.dylib \
-change $(SDK_DESTDIR)/ios-targetwatch-release/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib \
-change $(SDK_DESTDIR)/ios-targetwatch64_32-release/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib \
$@
$(Q) dsymutil -t 4 -o $@.dSYM $@

$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib/libmono-native-compat.a: $(WATCHOS_TARGET_LIBMONONATIVECOMPAT) | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib
Expand All @@ -1409,15 +1462,22 @@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib/libmono-native-compat.dylib: $(WATC
$(Q) dsymutil -t 4 -o $@.dSYM $@

$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib/libmono-native-unified.dylib: $(WATCHOS_TARGET_SHAREDLIBMONONATIVEUNIFIED) | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib
$(Q) $(WATCHOS_BIN_PATH)/bitcode_strip $(WATCHOS_TARGET_SHAREDLIBMONONATIVEUNIFIED) -m -o $@
$(Q) $(WATCHOS_BIN_PATH)/install_name_tool -id @rpath/libmono-native-unified.dylib -change $(SDK_DESTDIR)/ios-targetwatch-release/lib/libmono-native-unified.dylib @rpath/libmono-native-unified.dylib -change $(SDK_DESTDIR)/ios-targetwatch-release/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib $@
$(Q_STRIP) $(WATCHOS_BIN_PATH)/bitcode_strip $(BUILD_DESTDIR)/targetwatch/lib/libmono-native-unified.dylib -m -o $(BUILD_DESTDIR)/targetwatch/tmp-lib/libmono-native-unified.dylib
$(Q_STRIP) $(WATCHOS_BIN_PATH)/bitcode_strip $(BUILD_DESTDIR)/targetwatch64_32/lib/libmono-native.dylib -m -o $(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/libmono-native.dylib
$(Q_STRIP) $(WATCHOS_BIN_PATH)/lipo $(BUILD_DESTDIR)/targetwatch/tmp-lib/libmono-native-unified.dylib $(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/libmono-native.dylib -create -output $@
$(Q) $(WATCHOS_BIN_PATH)/install_name_tool -id @rpath/libmono-native-unified.dylib \
-change $(SDK_DESTDIR)/ios-targetwatch64_32-release/lib/libmono-native.dylib @rpath/libmono-native-unified.dylib \
-change $(SDK_DESTDIR)/ios-targetwatch64_32-release/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib \
-change $(SDK_DESTDIR)/ios-targetwatch-release/lib/libmono-native-unified.dylib @rpath/libmono-native-unified.dylib \
-change $(SDK_DESTDIR)/ios-targetwatch-release/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib \
$@
$(Q) dsymutil -t 4 -o $@.dSYM $@

$(WATCHOS_DIRECTORIES):
$(Q) mkdir -p $@

$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Mono: $(BUILD_DESTDIR)/targetwatch/tmp-lib/Mono | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework
$(Q) $(CP) $< $@
$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Mono: $(WATCHOS_TARGET_MONOFRAMEWORK) | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework
$(Q) lipo $(WATCHOS_TARGET_MONOFRAMEWORK) -create -output $@
$(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@

$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-watchos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework
Expand All @@ -1426,6 +1486,9 @@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.
$(BUILD_DESTDIR)/targetwatch/tmp-lib/Mono: $(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.a
$(Q_GEN) CC="$(IOS_CC)" ./create-shared-library.sh $< $@ -arch armv7k -install_name @rpath/Mono.framework/Mono -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) -lc++ -fembed-bitcode

$(BUILD_DESTDIR)/targetwatch64_32/tmp-lib/Mono: $(BUILD_DESTDIR)/targetwatch64_32/lib/libmonosgen-2.0.a
$(Q_GEN) CC="$(IOS_CC)" ./create-shared-library.sh $< $@ -arch arm64_32 -install_name @rpath/Mono.framework/Mono -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) -lc++ -fembed-bitcode

install-watchos: $(WATCHOS_TARGETS)

endif # INCLUDE_DEVICE
Expand Down
2 changes: 1 addition & 1 deletion external/mono
Submodule mono updated 45 files
+2 −0 .gitignore
+1 −1 external/corefx
+2 −0 mcs/build/platforms/win32.make
+4 −0 mcs/build/profiles/monodroid.make
+2 −0 mcs/class/Mono.Security/win32_monodroid_Mono.Security_test.dll.exclude.sources
+11 −0 ....ComponentModel.Composition.4.5/win32_monodroid_System.ComponentModel.Composition_xtest.dll.exclude.sources
+209 −39 mcs/class/System.Core/System.Core.csproj
+3 −0 mcs/class/System.Core/win32_monodroid_System.Core.dll.exclude.sources
+56 −0 mcs/class/System.Core/win32_monodroid_System.Core.dll.sources
+1 −0 mcs/class/System.Core/win32_monodroid_System.Core_test.dll.exclude.sources
+37 −0 mcs/class/System.IdentityModel/win32_monodroid_System.IdentityModel_test.dll.exclude.sources
+1 −0 mcs/class/System.Runtime.Serialization/win32_monodroid_System.Runtime.Serialization_xtest.dll.exclude.sources
+1 −0 mcs/class/System.Security/win32_monodroid_System.Security_test.dll.exclude.sources
+148 −0 mcs/class/System.ServiceModel/win32_monodroid_System.ServiceModel_test.dll.exclude.sources
+7 −0 mcs/class/System.Web.Services/win32_monodroid_System.Web.Services_test.dll.exclude.sources
+2 −2 mcs/class/System/Mono.Net.Security/SystemCertificateValidator.cs
+1 −1 mcs/class/System/System.Diagnostics/TraceImpl.cs
+545 −135 mcs/class/System/System.csproj
+1 −1 mcs/class/System/System/MonoToolsLocator.cs
+9 −0 mcs/class/System/mono_fsw.sources
+1 −11 mcs/class/System/net_4_x_System.dll.sources
+5 −0 mcs/class/System/win32_monodroid_System.dll.exclude.sources
+25 −0 mcs/class/System/win32_monodroid_System.dll.sources
+81 −0 mcs/class/System/win32_monodroid_System_test.dll.exclude.sources
+20 −0 mcs/class/System/win32_monodroid_System_xtest.dll.exclude.sources
+1 −1 mcs/class/corlib/System/Console.cs
+1 −1 mcs/class/corlib/System/Environment.cs
+1 −1 mcs/class/corlib/System/TimeZoneInfo.cs
+336 −67 mcs/class/corlib/corlib.csproj
+28 −0 mcs/class/corlib/win32_monodroid_corlib.dll.exclude.sources
+67 −0 mcs/class/corlib/win32_monodroid_corlib.dll.sources
+52 −0 mcs/class/corlib/win32_monodroid_corlib_test.dll.exclude.sources
+1 −1 mcs/class/referencesource/System/net/System/Net/webproxy.cs
+1 −1 mcs/class/referencesource/mscorlib/system/threading/synchronizationcontext.cs
+8 −0 mono/mini/builtin-types.cs
+5 −0 mono/mini/interp/transform.c
+1 −13 mono/mini/mini-arm.c
+9 −0 scripts/ci/pipeline/sdks-archive.groovy
+6 −3 scripts/ci/run-jenkins.sh
+33 −3 sdks/builds/Makefile
+123 −6 sdks/builds/android.mk
+3 −2 sdks/builds/bcl.mk
+19 −0 sdks/builds/llvm.mk
+6 −1 sdks/builds/mxe.mk
+107 −0 sdks/builds/runtime.mk
13 changes: 13 additions & 0 deletions mk/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ DEV64_I := $(COMMON_I)

SIMW_I := $(COMMON_I)
DEVW_I := $(COMMON_I)
DEVW64_32_I := $(COMMON_I)

SIM_TV_I:= $(COMMON_I)
DEV_TV_I:= $(COMMON_I)
Expand Down Expand Up @@ -117,6 +118,18 @@ define NativeCompilationTemplate
.libs/watchos/%$(1).armv7k.framework: | .libs/watchos
$$(call Q_2,LD, [watchos]) $(DEVICE_CC) $(DEVICEWATCH_CFLAGS) $$(EXTRA_FLAGS) -dynamiclib -o $$@ $$^ -F$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks -fapplication-extension

.libs/watchos/%$(1).arm64_32.o: %.m $(EXTRA_DEPENDENCIES) | .libs/watchos
$$(call Q_2,OBJC, [watchos]) $(DEVICE_CC) $(DEVICEWATCH64_32_OBJC_CFLAGS) $$(EXTRA_DEFINES) $(DEVW64_32_I) -g $(2) -c $$< -o $$@

.libs/watchos/%$(1).arm64_32.o: %.c $(EXTRA_DEPENDENCIES) | .libs/watchos
$$(call Q_2,CC, [watchos]) $(DEVICE_CC) $(DEVICEWATCH64_32_CFLAGS) $$(EXTRA_DEFINES) $(DEVW64_32_I) -g $(2) -c $$< -o $$@

.libs/watchos/%$(1).arm64_32.dylib: | .libs/watchos
$$(call Q_2,LD, [watchos]) $(DEVICE_CC) $(DEVICEWATCH64_32_CFLAGS) $$(EXTRA_FLAGS) -dynamiclib -o $$@ $$^ -L$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/usr/lib -fapplication-extension

.libs/watchos/%$(1).arm64_32.framework: | .libs/watchos
$$(call Q_2,LD, [watchos]) $(DEVICE_CC) $(DEVICEWATCH64_32_CFLAGS) $$(EXTRA_FLAGS) -dynamiclib -o $$@ $$^ -F$(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks -fapplication-extension

## tv simulator

.libs/tvos/%$(1).x86_64.o: %.m $(EXTRA_DEPENDENCIES) | .libs/tvos
Expand Down
4 changes: 4 additions & 0 deletions msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ enum TargetArchitecture
ARMv7s = 16,
ARMv7k = 32,
ARM64 = 64,
ARM64_32 = 128,

// Note: needed for backwards compatability
ARMv6_ARMv7 = ARMv6 | ARMv7,
Expand Down Expand Up @@ -486,6 +487,9 @@ protected override string GenerateCommandLineCommands ()
if (architectures.HasFlag (TargetArchitecture.ARMv7k))
abi += (abi.Length > 0 ? "," : "") + "armv7k" + llvm;

if (architectures.HasFlag (TargetArchitecture.ARM64_32))
abi += (abi.Length > 0 ? "," : "") + "arm64_32" + llvm;

if (string.IsNullOrEmpty (abi))
abi = "armv7" + llvm + thumb;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Copyright (C) 2015-2016 Xamarin. All rights reserved.

<!-- Enable nuget package conflict resolution -->
<ResolveAssemblyConflicts>true</ResolveAssemblyConflicts>
<UseFakeWatchOS4_3Sdk Condition="'$(UseFakeWatchOS4_3Sdk)' == ''">True</UseFakeWatchOS4_3Sdk>
<UseFakeWatchOS4_3Sdk Condition="'$(UseFakeWatchOS4_3Sdk)' == ''">False</UseFakeWatchOS4_3Sdk>
</PropertyGroup>

<Import Project="$(MSBuildThisFileDirectory)..\iOS\Xamarin.iOS.Common.targets" />
Expand Down
9 changes: 8 additions & 1 deletion runtime/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ $(eval $(call PlatformTemplate,ios,IOS,armv7 armv7s arm64,x86 x86_64,IOS,IPHONE)
endif

ifdef INCLUDE_WATCH
$(eval $(call PlatformTemplate,watchos,WATCHOS,armv7k,x86,WATCH,WATCH))
$(eval $(call PlatformTemplate,watchos,WATCHOS,armv7k arm64_32,x86,WATCH,WATCH))
endif

ifdef INCLUDE_TVOS
Expand Down Expand Up @@ -333,6 +333,7 @@ armv7_$(1)$(3)_OBJECTS = $$(patsubst %,.libs/$(1)/%$(4).armv7.o,$$($(2)_SOURCE_
armv7s_$(1)$(3)_OBJECTS = $$(patsubst %,.libs/$(1)/%$(4).armv7s.o,$$($(2)_SOURCE_STEMS))
armv7k_$(1)$(3)_OBJECTS = $$(patsubst %,.libs/$(1)/%$(4).armv7k.o,$$($(2)_SOURCE_STEMS))
arm64_$(1)$(3)_OBJECTS = $$(patsubst %,.libs/$(1)/%$(4).arm64.o,$$($(2)_SOURCE_STEMS))
arm64_32_$(1)$(3)_OBJECTS = $$(patsubst %,.libs/$(1)/%$(4).arm64_32.o,$$($(2)_SOURCE_STEMS))

$$(foreach arch,$$($(2)_ARCHITECTURES),$$(eval $$(call LibXamarinArchTemplate,$(1),$(2),$(3),$(4),$$(arch))))

Expand All @@ -358,6 +359,9 @@ $$(foreach arch,$$($(2)_ARCHITECTURES),$$(eval $$(call LibXamarinArchTemplate,$(
.libs/$(1)/libxamarin$(4).armv7k.dylib: EXTRA_FLAGS=$$($(1)$(3)_COMMON_DYLIB_FLAGS)
.libs/$(1)/libxamarin$(4).armv7k.dylib: $$(armv7k_$(1)$(3)_OBJECTS)

.libs/$(1)/libxamarin$(4).arm64_32.dylib: EXTRA_FLAGS=$$($(1)$(3)_COMMON_DYLIB_FLAGS)
.libs/$(1)/libxamarin$(4).arm64_32.dylib: $$(arm64_32_$(1)$(3)_OBJECTS)

.libs/$(1)/Xamarin$(4).x86.framework: EXTRA_FLAGS=$$($(1)$(3)_COMMON_FRAMEWORK_FLAGS)
.libs/$(1)/Xamarin$(4).x86.framework: $$(x86_$(1)$(3)_OBJECTS)

Expand All @@ -375,6 +379,9 @@ $$(foreach arch,$$($(2)_ARCHITECTURES),$$(eval $$(call LibXamarinArchTemplate,$(

.libs/$(1)/Xamarin$(4).armv7k.framework: EXTRA_FLAGS=$$($(1)$(3)_COMMON_FRAMEWORK_FLAGS)
.libs/$(1)/Xamarin$(4).armv7k.framework: $$(armv7k_$(1)$(3)_OBJECTS)

.libs/$(1)/Xamarin$(4).arm64_32.framework: EXTRA_FLAGS=$$($(1)$(3)_COMMON_FRAMEWORK_FLAGS)
.libs/$(1)/Xamarin$(4).arm64_32.framework: $$(arm64_32_$(1)$(3)_OBJECTS)
endef

$(eval $(call LibXamarinTemplate,ios,IOS))
Expand Down
2 changes: 1 addition & 1 deletion runtime/bindings.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ struct MPSImageHistogramInfoWrapper {
// entire struct on a 16-byte boundary, which doesn't match how we've
// defined it in managed code (explicit layout, but no specific alignment).
// So we need to manually pad the struct to match the managed definition.
#if defined (__x86_64__) || defined (__arm64__)
#if !defined(__ILP32__)
uint8_t dummy[7];
#else
uint8_t dummy[11];
Expand Down
Loading