AOT_RUN_FLAGS=""
DISABLE_MCS_DOCS_default=yes
+elif test x$with_runtime_preset = xwinaot; then
+ DISABLE_MCS_DOCS_default=yes
+ with_winaot_default=yes
+ TEST_PROFILE=winaot
+
+ mono_feature_disable_com='yes'
+ mono_feature_disable_remoting='yes'
+ mono_feature_disable_reflection_emit_save='yes'
+ mono_feature_disable_reflection_emit='yes'
+ mono_feature_disable_appdomains='yes'
+
+ AOT_BUILD_FLAGS="--aot=full,$INVARIANT_AOT_OPTIONS"
+ AOT_RUN_FLAGS="--full-aot"
else
with_profile4_x_default=yes
fi
AM_CONDITIONAL(INSTALL_TESTING_AOT_FULL, [test "x$with_testing_aot_full" != "xno"])
AM_CONDITIONAL(INSTALL_WINAOT, [test "x$with_winaot" != "xno"])
AM_CONDITIONAL(INSTALL_ORBIS, [test "x$with_orbis" != "xno"])
+AM_CONDITIONAL(FULL_AOT_TESTS, [test "x$with_testing_aot_full" != "xno"] || [test "x$with_winaot" != "xno"])
AC_SUBST(INSTALL_TESTING_AOT_HYBRID)
AC_SUBST(INSTALL_TESTING_AOT_FULL)
if test -z "$INSTALL_TESTING_AOT_FULL_TRUE"; then :
default_profile=testing_aot_full
fi
+if test -z "$INSTALL_WINAOT_TRUE"; then :
+ default_profile=winaot
+fi
if test -z "$INSTALL_4_x_TRUE"; then :
default_profile=net_4_x
fi
regtests_UNIVERSAL=basic.exe basic-float.exe basic-long.exe basic-calls.exe objects.exe arrays.exe basic-math.exe exceptions.exe iltests.exe devirtualization.exe generics.exe basic-simd.exe basic-vectors.exe
iregtests=basic.exe basic-float.exe basic-long.exe basic-calls.exe
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
regtests= \
$(regtests_UNIVERSAL)
else
regtests= \
$(regtests_UNIVERSAL) \
- $(regtests_TESTING_AOT_FULL_BLACKLIST)
+ $(regtests_FULL_AOT_TESTS_BLACKLIST)
endif
if X86
fullaot_regtests = $(regtests) aot-tests.exe $(if $(GSHAREDVT),gshared.exe)
# Skip aoting the tests that aren't compiled
-# on the testing_aot_full profile because they're skipped
+# on the full aot profiles because they're skipped
# on mobile profiles
-FULLAOT_LIBS_TESTING_AOT_FULL_BLACKLIST = \
+FULLAOT_LIBS_FULL_AOT_TESTS_BLACKLIST = \
Mono.Posix.dll \
System.Configuration.dll
System.Numerics.dll \
System.Numerics.Vectors.dll
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
FULLAOT_LIBS= \
$(FULLAOT_LIBS_UNIVERSAL)
else
FULLAOT_LIBS= \
$(FULLAOT_LIBS_UNIVERSAL) \
- $(FULLAOT_LIBS_TESTING_AOT_FULL_BLACKLIST)
+ $(FULLAOT_LIBS_FULL_AOT_TESTS_BLACKLIST)
endif
FULLAOT_TMP_DIR=$(top_builddir)/mono/mini/fullaot-tmp
SUBDIRS = assemblyresolve gc-descriptors
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
FEATUREFUL_RUNTIME_TEST =
else
FEATUREFUL_RUNTIME_TEST = test-appdomain-unload
PKG_CONFIG_PATH=$(top_builddir):$(PKG_CONFIG_PATH) \
$(RUNTIME) $(CLASS)/mkbundle.exe
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY,FULL_AOT_DESKTOP
endif
ILASM = $(TOOLS_RUNTIME) $(mcs_topdir)/class/lib/build/ilasm.exe
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
TEST_RUNNER = ./test-runner.exe --runtime $(top_builddir)/runtime/mono-wrapper --mono-path "$(CLASS)" --aot-run-flags "$(AOT_RUN_FLAGS)" --aot-build-flags "$(AOT_BUILD_FLAGS)"
else
TEST_RUNNER = ./test-runner.exe --runtime $(top_builddir)/runtime/mono-wrapper --mono-path "$(CLASS)"
PROFILE_DISABLED_TESTS=
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
# Tests which rely on TypeLoadExceptions
# In full-aot mode, these cause the relevant methods to be not AOTed.
PROFILE_DISABLED_TESTS += \
%.exe: %.il
$(ILASM) -out:$@ $<
-if !INSTALL_TESTING_AOT_FULL
+if !FULL_AOT_TESTS
if !INSTALL_TESTING_AOT_HYBRID
TEST_DRIVER_HARD_KILL_FEATURE=-r:Mono.Posix.dll
endif
endif
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
TEST_DRIVER_DEPEND=TestDriver.dll$(PLATFORM_AOT_SUFFIX)
else
TEST_DRIVER_DEPEND=TestDriver.dll
TestingReferenceAssembly.dll$(PLATFORM_AOT_SUFFIX) \
TestingReferenceReferenceAssembly.dll$(PLATFORM_AOT_SUFFIX)
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
prereqs: $(PREREQSI_IL_AOT) $(PREREQSI_CS_AOT) $(AOT_EXTRA_LIBS)
else
prereqs: $(PREREQSI_IL) $(PREREQSI_CS)
# Precompile the test assemblies in parallel
compile-tests:
$(MAKE) -j4 $(TESTSI_CS) $(TESTSI_IL) $(TESTBS) libtest.la $(PREREQSI_IL) $(PREREQSI_CS)
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(MAKE) $(PREREQSI_IL_AOT) $(PREREQSI_CS_AOT) $(AOT_EXTRA_LIBS)
endif
SGEN_REGULAR_DISABLED_TESTS=
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
SGEN_REGULAR_DISABLED_TESTS += \
sgen-domain-unload.exe \
sgen-domain-unload-2.exe
EXTRA_DIST += test-inline-call-stack-library.cs test-inline-call-stack.cs
test-inline-call-stack-library.dll: $(TEST_DRIVER_DEPEND) $(srcdir)/test-inline-call-stack-library.cs
$(MCS) -t:library -out:test-inline-call-stack-library.dll $(srcdir)/test-inline-call-stack-library.cs
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
$(MCS) -target:library -out:bug-81673-interface.dll $(srcdir)/bug-81673-interface.cs
$(MCS) -out:bug-81673.exe -r:bug-81673-interface.dll $(srcdir)/bug-81673.cs
$(MCS) -define:WITH_STOP -target:library -out:bug-81673-interface.dll $(srcdir)/bug-81673-interface.cs
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
$(MCS) -target:library -out:bug-36848-a.dll $(srcdir)/bug-36848-a.cs
$(MCS) -r:bug-36848-a.dll -out:bug-36848.exe $(srcdir)/bug-36848.cs
$(MCS) -target:library -out:bug-36848-a.dll $(srcdir)/bug-36848-a.cs /define:WITH_STOP
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += bug-81466-lib.il
bug-81466-lib.dll: bug-81466-lib.il
$(ILASM) /dll /output:bug-81466-lib.dll $(srcdir)/bug-81466-lib.il
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
bug-81466.exe: bug-81466.il bug-81466-lib.dll
EXTRA_DIST += bug-324535-il.il
bug-324535-il.dll : bug-324535-il.il
$(ILASM) /dll /output:bug-324535-il.dll $(srcdir)/bug-324535-il.il
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
bug-324535.exe : bug-324535.cs bug-324535-il.dll
EXTRA_DIST += custom-modifiers.2.cs custom-modifiers-lib.il
custom-modifiers-lib.dll: custom-modifiers-lib.il
$(ILASM) /dll /output:custom-modifiers-lib.dll $(srcdir)/custom-modifiers-lib.il
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
custom-modifiers.2.exe: custom-modifiers.2.cs custom-modifiers-lib.dll
EXTRA_DIST += bug-382986-lib.cs
bug-382986-lib.dll: bug-382986-lib.cs
$(MCS) -target:library -out:$@ $(srcdir)/bug-382986-lib.cs
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += generic-unboxing.2.il
generic-unboxing.2.dll : generic-unboxing.2.il
$(ILASM) /dll /output:generic-unboxing.2.dll $(srcdir)/generic-unboxing.2.il
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += generic-boxing.2.il
generic-boxing.2.dll : generic-boxing.2.il generic-unboxing.2.dll
$(ILASM) /dll /output:generic-boxing.2.dll $(srcdir)/generic-boxing.2.il
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += generic-delegate2.2.cs generic-delegate2-lib.2.il
generic-delegate2-lib.2.dll : generic-delegate2-lib.2.il
$(ILASM) /dll /output:$@ $(srcdir)/generic-delegate2-lib.2.il
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
generic-delegate2.2.exe : generic-delegate2.2.cs generic-delegate2-lib.2.dll
GSHARED_DISABLED_TESTS=
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
GSHARED_DISABLED_TESTS += \
generic-type-builder.2.exe
endif
build_profiles += testing_aot_full
endif
+if INSTALL_WINAOT
+build_profiles += winaot
+endif
+
if INSTALL_XAMMAC
build_profiles += xammac xammac_net_4_5
endif
PLATFORM_PATH_SEPARATOR = :
endif
-if INSTALL_TESTING_AOT_FULL
+if FULL_AOT_TESTS
# ILASM.exe has features which a testing_aot_full runtime will not support.
# It is invoked with an external mono when used in the runtime.
# We skip it here because otherwise it will fail to verify.
-TESTING_AOT_FULL_FILTER=grep -v ilasm
+FULL_AOT_TESTS_FILTER=grep -v ilasm
else
-TESTING_AOT_FULL_FILTER=echo
+FULL_AOT_TESTS_FILTER=echo
endif
# Compile all assemblies with the verifier turned on. Code must be valid but not verifiable.
# TODO it would be nice to split assemblies without unsafe code to use the verifier with verifiable mode.
# Skip binary_reference_assemblies because they contain metadata only
mcs-compileall: mono-wrapper etc/mono/config
- export verifiable_files=`ls "$(mcs_topdir)/class/lib/$$profile/" | grep -E '\.(dll|exe)$$' | $(TESTING_AOT_FULL_FILTER)` ; \
+ export verifiable_files=`ls "$(mcs_topdir)/class/lib/$$profile/" | grep -E '\.(dll|exe)$$' | $(FULL_AOT_TESTS_FILTER)` ; \
save_MONO_PATH=$$MONO_PATH; mcs_topdir=`cd $(mcs_topdir) && $(cur_dir_cmd)`; ok=:; \
for profile in $(test_profiles); do \
if [ "binary_reference_assemblies" = "$$profile" ]; then \