From 0dd59429d605bce994e8c13bffef24a20030db27 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Fri, 23 Oct 2020 16:21:10 -0400 Subject: [PATCH 1/4] Add files need for wasm executable relinking/aot to the wasm runtime pack. --- eng/liveBuilds.targets | 5 ++++- src/mono/wasm/wasm.proj | 21 +++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 5135de07254443..033ef6a5420414 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -195,7 +195,10 @@ $(LibrariesNativeArtifactsPath)dotnet.js; $(LibrariesNativeArtifactsPath)dotnet.wasm; $(LibrariesNativeArtifactsPath)dotnet.timezones.blat; - $(LibrariesNativeArtifactsPath)*.dat;" + $(LibrariesNativeArtifactsPath)*.dat; + $(LibrariesNativeArtifactsPath)*.c; + $(LibrariesNativeArtifactsPath)*.h; + $(LibrariesNativeArtifactsPath)*.js;" IsNative="true" /> diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index 4be1bcd12382c1..5c6a9ccc451e9a 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -84,12 +84,29 @@ AfterTargets="Build" DependsOnTargets="BuildPInvokeTable;BundleTimeZones"> - + <_IcuLibdir>$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)/runtimes/browser-wasm/native/lib + + + From c042f56b9735dbfcc2e3b3067112c6778f8b2e6d Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Sat, 24 Oct 2020 11:25:24 -0400 Subject: [PATCH 2/4] Add pinvoke-table.h as well. --- src/mono/wasm/wasm.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index 5c6a9ccc451e9a..df8d78e7528f4d 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -102,6 +102,7 @@ $(MonoProjectRoot)wasm\runtime\dotnet_support.js; $(MonoProjectRoot)wasm\runtime\library_mono.js; $(LibrariesProjectRoot)Native\Unix\System.Native\pal_random.js; + $(ArtifactsObjDir)wasm\pinvoke-table.h; $(_IcuLibdir)\libicudata.a; $(_IcuLibdir)\libicui18n.a; $(_IcuLibdir)\libicutest.a; From 6f0a2ced40103ae0a165eda4594b37cf2d8d408d Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Mon, 26 Oct 2020 12:40:15 -0400 Subject: [PATCH 3/4] Remove unused libicu files. --- src/mono/wasm/Makefile | 3 +-- src/mono/wasm/wasm.proj | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/mono/wasm/Makefile b/src/mono/wasm/Makefile index 48a336d9b8ad42..9913c4f84bd15c 100644 --- a/src/mono/wasm/Makefile +++ b/src/mono/wasm/Makefile @@ -58,8 +58,7 @@ MONO_LIBS = \ ${NATIVE_BIN_DIR}/libSystem.Native.a \ ${NATIVE_BIN_DIR}/libSystem.IO.Compression.Native.a \ $(ICU_LIBDIR)/libicuuc.a \ - $(ICU_LIBDIR)/libicui18n.a \ - $(ICU_LIBDIR)/libicudata.a + $(ICU_LIBDIR)/libicui18n.a EMCC_FLAGS=--profiling-funcs -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s BINARYEN=1 -s ALIASING_FUNCTION_POINTERS=0 -s NO_EXIT_RUNTIME=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall', 'FS_createPath', 'FS_createDataFile', 'cwrap', 'setValue', 'getValue', 'UTF8ToString', 'UTF8ArrayToString', 'addFunction']" -s "EXPORTED_FUNCTIONS=['_putchar']" --source-map-base http://example.com -emit-llvm -s FORCE_FILESYSTEM=1 -s USE_ZLIB=1 ifneq ($(ENABLE_ES6),false) diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index df8d78e7528f4d..8c0b945c923a04 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -103,10 +103,7 @@ $(MonoProjectRoot)wasm\runtime\library_mono.js; $(LibrariesProjectRoot)Native\Unix\System.Native\pal_random.js; $(ArtifactsObjDir)wasm\pinvoke-table.h; - $(_IcuLibdir)\libicudata.a; $(_IcuLibdir)\libicui18n.a; - $(_IcuLibdir)\libicutest.a; - $(_IcuLibdir)\libicutu.a; $(_IcuLibdir)\libicuuc.a" DestinationFolder="$(MicrosoftNetCoreAppRuntimePackNativeDir)" SkipUnchangedFiles="true" /> From 2eba4dd522b4c051bd1dd7a012372bb176a071c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Mon, 9 Nov 2020 12:41:18 +0100 Subject: [PATCH 4/4] Fix runtime pack directory for .c/.h/.js files --- eng/liveBuilds.targets | 16 ++++++++++++---- src/mono/wasm/Makefile | 18 +++++++++++++++--- src/mono/wasm/wasm.proj | 31 +++++++++++++++++-------------- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 78efc9a42d976a..097941761a3646 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -195,10 +195,18 @@ $(LibrariesNativeArtifactsPath)dotnet.js; $(LibrariesNativeArtifactsPath)dotnet.wasm; $(LibrariesNativeArtifactsPath)dotnet.timezones.blat; - $(LibrariesNativeArtifactsPath)*.dat; - $(LibrariesNativeArtifactsPath)*.c; - $(LibrariesNativeArtifactsPath)*.h; - $(LibrariesNativeArtifactsPath)*.js;" + $(LibrariesNativeArtifactsPath)*.dat;" + IsNative="true" /> + + diff --git a/src/mono/wasm/Makefile b/src/mono/wasm/Makefile index 71404b00b9a701..5e74d25da6e787 100644 --- a/src/mono/wasm/Makefile +++ b/src/mono/wasm/Makefile @@ -19,7 +19,7 @@ ICU_LIBDIR?= SYSTEM_NATIVE_LIBDIR?=$(TOP)/src/libraries/Native/Unix/System.Native ENABLE_ES6?=false -all: build-native icu-data +all: build-native icu-files source-files header-files # # EMSCRIPTEN SETUP @@ -82,6 +82,12 @@ define InterpBuildTemplate $(NATIVE_BIN_DIR): mkdir -p $$@ +$(NATIVE_BIN_DIR)/src: + mkdir -p $$@ + +$(NATIVE_BIN_DIR)/include/wasm: + mkdir -p $$@ + $(BUILDS_OBJ_DIR): mkdir -p $$@ @@ -119,8 +125,14 @@ clean: # Helper targets .PHONY: runtime -icu-data: - cp $(ICU_LIBDIR)/*.dat $(NATIVE_BIN_DIR) +icu-files: $(wildcard $(ICU_LIBDIR)/*.dat) $(ICU_LIBDIR)/libicuuc.a $(ICU_LIBDIR)/libicui18n.a | $(NATIVE_BIN_DIR) + cp $^ $(NATIVE_BIN_DIR) + +source-files: runtime/driver.c runtime/pinvoke.c runtime/corebindings.c runtime/binding_support.js runtime/dotnet_support.js runtime/library_mono.js $(SYSTEM_NATIVE_LIBDIR)/pal_random.js | $(NATIVE_BIN_DIR)/src + cp $^ $(NATIVE_BIN_DIR)/src + +header-files: runtime/pinvoke.h $(BUILDS_OBJ_DIR)/pinvoke-table.h | $(NATIVE_BIN_DIR)/include/wasm + cp $^ $(NATIVE_BIN_DIR)/include/wasm build: EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono+libs.pretest -os Browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index b1be12a4fd651c..d21b20cce8de14 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -93,29 +93,32 @@ + + + + + + - - - + + + +