From 51d50bff9b691a3dbf9be0e5fd7d78cde19acd0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Tue, 5 Sep 2023 14:56:53 +0200 Subject: [PATCH] Web: Workaround Emscripten 3.1.42+ LTO regression Fixes #80010. (cherry picked from commit b064008c07be856d6f3a5079d11746137e03ede5) --- .github/workflows/javascript_builds.yml | 4 ++-- platform/javascript/detect.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/javascript_builds.yml b/.github/workflows/javascript_builds.yml index 17de78c45..c3fba3d5f 100644 --- a/.github/workflows/javascript_builds.yml +++ b/.github/workflows/javascript_builds.yml @@ -5,7 +5,7 @@ on: [push, pull_request] env: PANDEMONIUM_BASE_BRANCH: master SCONSFLAGS: verbose=yes warnings=all debug_symbols=no werror=yes - EM_VERSION: 3.1.18 + EM_VERSION: 3.1.45 EM_CACHE_FOLDER: "emsdk-cache" concurrency: @@ -14,7 +14,7 @@ concurrency: jobs: javascript-template: - runs-on: "ubuntu-20.04" + runs-on: "ubuntu-22.04" name: Template (target=release, tools=no) steps: diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index 2b53d3460..f95b1f4d6 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -105,6 +105,10 @@ def configure(env): else: env.Append(CCFLAGS=["-flto"]) env.Append(LINKFLAGS=["-flto"]) + # 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"]: