Bläddra i källkod

Disable the crash handler if execinfo=no scons option is set

LinuxUserGD 1 år sedan
förälder
incheckning
f1a677fb4c
2 ändrade filer med 14 tillägg och 8 borttagningar
  1. 2 2
      platform/linuxbsd/crash_handler_linuxbsd.cpp
  2. 12 6
      platform/linuxbsd/detect.py

+ 2 - 2
platform/linuxbsd/crash_handler_linuxbsd.cpp

@@ -36,8 +36,8 @@
 #include "core/version.h"
 #include "main/main.h"
 
-#ifdef DEBUG_ENABLED
-#define CRASH_HANDLER_ENABLED 1
+#ifndef DEBUG_ENABLED
+#undef CRASH_HANDLER_ENABLED
 #endif
 
 #ifdef CRASH_HANDLER_ENABLED

+ 12 - 6
platform/linuxbsd/detect.py

@@ -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"])