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

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
This commit is contained in:
Hugo Locurcio 2022-08-06 04:20:54 +02:00
parent 1371a97acf
commit 8e04bffbcf
No known key found for this signature in database
GPG key ID: 39E8F8BE30B0A49C

View file

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