# --- T2-COPYRIGHT-BEGIN --- # t2/package/*/qt6webengine/hotfix-lto.patch # Copyright (C) 2026 The T2 SDE Project # SPDX-License-Identifier: GPL-2.0 or patched project license # --- T2-COPYRIGHT-END --- --- qtwebengine-opensource-src-5.9.4/src/3rdparty/chromium/sandbox/linux/BUILD.gn +++ qtwebengine-opensource-src-5.9.4/src/3rdparty/chromium/sandbox/linux/BUILD.gn @@ -199,6 +199,25 @@ test("sandbox_linux_unittests") { } } +config("no_lto") { + # Disable LTO. Use a config and the C++ specific flags variable to move + # the flag to the latest possible position to override earlier flags. + cflags_cc = [ "-fno-lto" ] +} + +source_set("seccomp_bpf_syscall") { + sources = [ "seccomp-bpf/syscall.cc" ] + defines = [ "SANDBOX_IMPLEMENTATION" ] + deps = [ "//base" ] + + if (!is_clang) { + # Gcc doesn't parse asm statements, so LTO doesn't work when defining + # a function in a global asm statement. + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57703 + configs += [ ":no_lto" ] + } +} + component("seccomp_bpf") { sources = [ "bpf_dsl/bpf_dsl.cc", @@ -230,7 +249,6 @@ component("seccomp_bpf") { "seccomp-bpf/die.h", "seccomp-bpf/sandbox_bpf.cc", "seccomp-bpf/sandbox_bpf.h", - "seccomp-bpf/syscall.cc", "seccomp-bpf/syscall.h", "seccomp-bpf/trap.cc", "seccomp-bpf/trap.h", @@ -242,6 +260,7 @@ component("seccomp_bpf") { ] deps = [ ":sandbox_services", + ":seccomp_bpf_syscall", "//base", ]