|
@@ -50,7 +50,7 @@ def get_opts():
|
|
|
BoolVariable("wayland", "Enable Wayland display", True),
|
|
|
BoolVariable("libdecor", "Enable libdecor support", True),
|
|
|
BoolVariable("touch", "Enable touch events", True),
|
|
|
- BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", False),
|
|
|
+ BoolVariable("execinfo", "Use libexecinfo on systems where glibc is not available", None),
|
|
|
]
|
|
|
|
|
|
|
|
@@ -487,14 +487,20 @@ def configure(env: "SConsEnvironment"):
|
|
|
if platform.system() == "Linux":
|
|
|
env.Append(LIBS=["dl"])
|
|
|
|
|
|
- if not env["execinfo"] and 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.
|
|
|
- print("Note: Using `execinfo=yes` for the crash handler as required on platforms where glibc is missing.")
|
|
|
- env["execinfo"] = True
|
|
|
+ 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"]:
|
|
|
- env.Append(LIBS=["execinfo"])
|
|
|
+ if env["execinfo"]:
|
|
|
+ env.Append(LIBS=["execinfo"])
|
|
|
+ env.Append(CPPDEFINES=["CRASH_HANDLER_ENABLED"])
|
|
|
+ else:
|
|
|
+ print("Note: Using `execinfo=no` disables the crash handler on platforms where glibc is missing.")
|
|
|
+ else:
|
|
|
+ env.Append(CPPDEFINES=["CRASH_HANDLER_ENABLED"])
|
|
|
|
|
|
if platform.system() == "FreeBSD":
|
|
|
env.Append(LINKFLAGS=["-lkvm"])
|