Browse Source

Web: Workaround Emscripten 3.1.42+ LTO regression

Fixes #80010.

(cherry picked from commit b064008c07be856d6f3a5079d11746137e03ede5)
Rémi Verschelde 2 years ago
parent
commit
86b409f067
1 changed files with 6 additions and 0 deletions
  1. 6 0
      platform/javascript/detect.py

+ 6 - 0
platform/javascript/detect.py

@@ -108,6 +108,12 @@ def configure(env):
         env.Append(CCFLAGS=["-flto=full"])
         env.Append(LINKFLAGS=["-flto=full"])
 
+    if env["use_thinlto"] or env["use_lto"]:
+        # Workaround https://github.com/emscripten-core/emscripten/issues/19781.
+        cc_semver = tuple(get_compiler_version(env))
+        if cc_semver >= (3, 1, 42):
+            env.Append(LINKFLAGS=["-Wl,-u,scalbnf"])
+
     # Sanitizers
     if env["use_ubsan"]:
         env.Append(CCFLAGS=["-fsanitize=undefined"])