diff options
author | Alexander Kyte <alexmkyte@fastmail.com> | 2016-06-06 17:52:19 +0300 |
---|---|---|
committer | Alexander Kyte <alexmkyte@gmail.com> | 2016-07-18 22:03:43 +0300 |
commit | 695e8f53ae7d21397b33042e129b588d42c5491e (patch) | |
tree | abf752ee514fb2499a157052ffca477a9957b504 /runtime | |
parent | c4465679d9b03c4fb02ed3614368739b3d32f7ae (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.am | 14 |
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 ; \ |