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
diff options
context:
space:
mode:
authorAlexander Kyte <alexmkyte@fastmail.com>2016-06-06 17:52:19 +0300
committerAlexander Kyte <alexmkyte@gmail.com>2016-07-18 22:03:43 +0300
commit695e8f53ae7d21397b33042e129b588d42c5491e (patch)
treeabf752ee514fb2499a157052ffca477a9957b504 /runtime
parentc4465679d9b03c4fb02ed3614368739b3d32f7ae (diff)
[mobile_static] Skip verifying ilasm.exe on mobile_static
ILASM.exe has features which a mobile_static 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.
Diffstat (limited to 'runtime')
-rw-r--r--runtime/Makefile.am14
1 files changed, 13 insertions, 1 deletions
diff --git a/runtime/Makefile.am b/runtime/Makefile.am
index 223b73852dc..068bb1d3dc0 100644
--- a/runtime/Makefile.am
+++ b/runtime/Makefile.am
@@ -109,10 +109,20 @@ cur_dir_cmd = pwd
PLATFORM_PATH_SEPARATOR = :
endif
+if INSTALL_MOBILE_STATIC
+# ILASM.exe has features which a mobile_static 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.
+MOBILE_STATIC_FILTER=grep -v ilasm
+else
+MOBILE_STATIC_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)$$' | $(MOBILE_STATIC_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 \
@@ -126,7 +136,9 @@ mcs-compileall: mono-wrapper etc/mono/config
MONO_PATH="$$mcs_topdir/class/lib/$$profile$(PLATFORM_PATH_SEPARATOR)$$save_MONO_PATH"; \
fi; \
export MONO_PATH; \
- for i in $(mcs_topdir)/class/lib/$$profile/*.{dll,exe}; do \
+ for stub in $$verifiable_files; do \
+ i=$(mcs_topdir)/class/lib/$$profile/$$stub ; \
+ echo $$i ; \
if [ ! -f $$i ] ; then \
continue ; \
fi ; \