Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/sdks
diff options
context:
space:
mode:
authormonojenkins <jo.shields+jenkins@xamarin.com>2018-07-14 11:49:36 +0300
committerAlexander Köplinger <alex.koeplinger@outlook.com>2018-07-14 11:49:36 +0300
commitd735f2f10423eaecc888f6590f0cd71e95bdb565 (patch)
tree3882f288300d586c6755f924cfdbf6983e3e82c5 /sdks
parent2214d1fa74ff3c2aadcbe218b82eaeaf3a938417 (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/Makefile8
-rw-r--r--sdks/ios/appbuilder/appbuilder.cs12
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);
}
}