Преглед на файлове

[Web] Use fvisibility=hidden for side module when dlink_enabled.

This hugely reduces the number of exports, making it acceptable for
browsers.

Note that dlink + threads is still not working due to upstream issues
with the pthread emulation library.

Should hopefully be solved once emscripten move to native WASM threads.
Fabio Alessandrelli преди 2 години
родител
ревизия
5eed870a6a
променени са 2 файла, в които са добавени 5 реда и са изтрити 0 реда
  1. 3 0
      platform/web/SCsub
  2. 2 0
      platform/web/detect.py

+ 3 - 0
platform/web/SCsub

@@ -70,6 +70,9 @@ if env["dlink_enabled"]:
     sys_env.Append(LINKFLAGS=["-s", "WARN_ON_UNDEFINED_SYMBOLS=0"])
     # Force exporting the standard library (printf, malloc, etc.)
     sys_env["ENV"]["EMCC_FORCE_STDLIBS"] = "libc,libc++,libc++abi"
+    sys_env["CCFLAGS"].remove("-fvisibility=hidden")
+    sys_env["LINKFLAGS"].remove("-fvisibility=hidden")
+
     # The main emscripten runtime, with exported standard libraries.
     sys = sys_env.Program(build_targets, ["web_runtime.cpp"])
 

+ 2 - 0
platform/web/detect.py

@@ -211,6 +211,8 @@ def configure(env: "Environment"):
 
         env.Append(CCFLAGS=["-s", "SIDE_MODULE=2"])
         env.Append(LINKFLAGS=["-s", "SIDE_MODULE=2"])
+        env.Append(CCFLAGS=["-fvisibility=hidden"])
+        env.Append(LINKFLAGS=["-fvisibility=hidden"])
         env.extra_suffix = ".dlink" + env.extra_suffix
 
     # Reduce code size by generating less support code (e.g. skip NodeJS support).