Browse Source

Automatically use execinfo for crash handler on *BSD and musl-based Linux

Co-authored-by: Rémi Verschelde <[email protected]>
Hugo Locurcio 3 years ago
parent
commit
8e04bffbcf
1 changed files with 4 additions and 2 deletions
  1. 4 2
      platform/linuxbsd/detect.py

+ 4 - 2
platform/linuxbsd/detect.py

@@ -363,8 +363,10 @@ def configure(env: "Environment"):
     if platform.system() == "Linux":
         env.Append(LIBS=["dl"])
 
-    if platform.system().find("BSD") >= 0:
-        env["execinfo"] = True
+    if not env["execinfo"] and 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.")
 
     if env["execinfo"]:
         env.Append(LIBS=["execinfo"])