Merge pull request #91817 from Calinou/linuxbsd-default-disable-execinfo

Set `execinfo=no` by default when compiling for Linux/*BSD
This commit is contained in:
Rémi Verschelde 2024-05-11 12:38:33 +02:00
commit eacfdc784f
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 3 additions and 7 deletions

View File

@ -50,7 +50,7 @@ def get_opts():
BoolVariable("wayland", "Enable Wayland display", True), BoolVariable("wayland", "Enable Wayland display", True),
BoolVariable("libdecor", "Enable libdecor support", True), BoolVariable("libdecor", "Enable libdecor support", True),
BoolVariable("touch", "Enable touch events", True), BoolVariable("touch", "Enable touch events", True),
BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", None), BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", False),
] ]
@ -491,16 +491,12 @@ def configure(env: "SConsEnvironment"):
env.Append(LIBS=["dl"]) env.Append(LIBS=["dl"])
if platform.libc_ver()[0] != "glibc": if platform.libc_ver()[0] != "glibc":
# The default crash handler depends on glibc, so if the host uses
# a different libc (BSD libc, musl), fall back to libexecinfo.
if not "execinfo" in env:
print("Note: Using `execinfo=yes` for the crash handler as required on platforms where glibc is missing.")
env["execinfo"] = True
if env["execinfo"]: if env["execinfo"]:
env.Append(LIBS=["execinfo"]) env.Append(LIBS=["execinfo"])
env.Append(CPPDEFINES=["CRASH_HANDLER_ENABLED"]) env.Append(CPPDEFINES=["CRASH_HANDLER_ENABLED"])
else: else:
# The default crash handler depends on glibc, so if the host uses
# a different libc (BSD libc, musl), libexecinfo is required.
print("Note: Using `execinfo=no` disables the crash handler on platforms where glibc is missing.") print("Note: Using `execinfo=no` disables the crash handler on platforms where glibc is missing.")
else: else:
env.Append(CPPDEFINES=["CRASH_HANDLER_ENABLED"]) env.Append(CPPDEFINES=["CRASH_HANDLER_ENABLED"])