diff options
author | monojenkins <jo.shields+jenkins@xamarin.com> | 2018-07-14 11:49:36 +0300 |
---|---|---|
committer | Alexander Köplinger <alex.koeplinger@outlook.com> | 2018-07-14 11:49:36 +0300 |
commit | d735f2f10423eaecc888f6590f0cd71e95bdb565 (patch) | |
tree | 3882f288300d586c6755f924cfdbf6983e3e82c5 /sdks | |
parent | 2214d1fa74ff3c2aadcbe218b82eaeaf3a938417 (diff) |
[2018-06] [sdks] add interp-mixed to iOS SDK (#9514)
* [sdks] add interp-mixed to iOS SDK
AOT compile mscorlib, everything else runs in the interpreter
* [interp] fix class accessor
Diffstat (limited to 'sdks')
-rw-r--r-- | sdks/ios/Makefile | 8 | ||||
-rw-r--r-- | sdks/ios/appbuilder/appbuilder.cs | 12 |
2 files changed, 17 insertions, 3 deletions
diff --git a/sdks/ios/Makefile b/sdks/ios/Makefile index c752e145509..9b33fe96534 100644 --- a/sdks/ios/Makefile +++ b/sdks/ios/Makefile @@ -97,6 +97,10 @@ ifdef INTERP_ONLY APPBUILDER_ARGS += --interp-only endif +ifdef INTERP_MIXED +APPBUILDER_ARGS += --interp-mixed +endif + ifdef IOS_PROVISIONING_PROFILE APPBUILDER_ARGS += --profile $(abspath $(IOS_PROVISIONING_PROFILE)) endif @@ -157,6 +161,10 @@ build-ios-dev-interp-only-all: rm -rf aot-cache for suite in $(TEST_SUITES); do echo "*** $$suite ***"; make clean-ios-dev-$$suite; make build-ios-dev-$$suite INTERP_ONLY=1 ENABLE_AOT_CACHE=1 || exit 1; done +build-ios-dev-interp-mixed-all: + rm -rf aot-cache + for suite in $(TEST_SUITES); do echo "*** $$suite ***"; make clean-ios-dev-$$suite; make build-ios-dev-$$suite INTERP_MIXED=1 ENABLE_AOT_CACHE=1 || exit 1; done + run-ios-dev-all: for suite in $(TEST_SUITES); do make run-ios-dev-$$suite || exit 1; done diff --git a/sdks/ios/appbuilder/appbuilder.cs b/sdks/ios/appbuilder/appbuilder.cs index f5fc25ac534..34282d717d0 100644 --- a/sdks/ios/appbuilder/appbuilder.cs +++ b/sdks/ios/appbuilder/appbuilder.cs @@ -98,6 +98,7 @@ public class AppBuilder bool isrelease = false; bool isllvm = false; bool isinterponly = false; + bool isinterpmixed = false; var assemblies = new List<string> (); var p = new OptionSet () { { "target=", s => target = s }, @@ -114,6 +115,7 @@ public class AppBuilder { "profile=", s => profile = s }, { "llvm", s => isllvm = true }, { "interp-only", s => isinterponly = true }, + { "interp-mixed", s => isinterpmixed = true }, { "exe=", s => exe = s }, { "r=", s => assemblies.Add (s) }, }; @@ -142,11 +144,15 @@ public class AppBuilder if (isllvm) isrelease = true; + bool isinterpany = isinterponly || isinterpmixed; + string aot_args = ""; string cross_runtime_args = ""; if (isinterponly) { aot_args = "interp"; + } else if (isinterpmixed) { + aot_args = "interp,full"; } else { aot_args = "full"; } @@ -237,7 +243,7 @@ public class AppBuilder ninja.WriteLine ($"build $appdir/{filename}: cpifdiff $builddir/{filename}"); - if (isinterponly && filename_noext != "mscorlib") + if (isinterpany && filename_noext != "mscorlib") continue; if (isdev) { @@ -283,7 +289,7 @@ public class AppBuilder if (isdev) { string libs = "$mono_sdkdir/ios-target64-release/lib/libmonosgen-2.0.a"; - if (isinterponly) { + if (isinterpany) { libs += " $mono_sdkdir/ios-target64-release/lib/libmono-ee-interp.a"; libs += " $mono_sdkdir/ios-target64-release/lib/libmono-icall-table.a"; libs += " $mono_sdkdir/ios-target64-release/lib/libmono-ilgen.a"; @@ -310,6 +316,6 @@ public class AppBuilder ninja.Close (); - GenMain (builddir, assembly_names, isinterponly /* || ismixedmode */); + GenMain (builddir, assembly_names, isinterpany); } } |