diff --git a/src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_static.c b/src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_static.c index 8beb3ce0de7746..7f6b051ae62dab 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_static.c +++ b/src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_static.c @@ -88,6 +88,16 @@ EMSCRIPTEN_KEEPALIVE int32_t mono_wasm_load_icu_data(void * pData) return 1; } } + +/* + * driver.c calls this to make sure this file is linked, otherwise + * its not, meaning the EMSCRIPTEN_KEEPALIVE functions above + * are not kept. + */ +void mono_wasm_link_icu_shim(void) +{ +} + #endif int32_t GlobalizationNative_LoadICU(void) diff --git a/src/mono/wasm/runtime/driver.c b/src/mono/wasm/runtime/driver.c index c2ed732aab881d..80b7cde181a26e 100644 --- a/src/mono/wasm/runtime/driver.c +++ b/src/mono/wasm/runtime/driver.c @@ -466,11 +466,15 @@ mono_wasm_register_bundled_satellite_assemblies () } } +void mono_wasm_link_icu_shim (void); + EMSCRIPTEN_KEEPALIVE void mono_wasm_load_runtime (const char *unused, int debug_level) { const char *interp_opts = ""; + mono_wasm_link_icu_shim (); + #ifdef DEBUG monoeg_g_setenv ("MONO_LOG_LEVEL", "debug", 0); monoeg_g_setenv ("MONO_LOG_MASK", "gc", 0);