From 0dc368f9f91364e082f06b349844c42df2ffbfd9 Mon Sep 17 00:00:00 2001 From: Hein-Pieter van Braam-Stewart Date: Tue, 23 Feb 2021 14:51:44 +0100 Subject: [PATCH] Allow static linking with libatomic using clang When using use_static_cpp we want to statically link with atomic as well to make sure we don't incur any new runtime dependencies. Scons doesn't quite support this so we do this little trick. --- platform/linuxbsd/detect.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/linuxbsd/detect.py b/platform/linuxbsd/detect.py index ff521e4e7ff..8f1afe0e662 100644 --- a/platform/linuxbsd/detect.py +++ b/platform/linuxbsd/detect.py @@ -127,7 +127,6 @@ def configure(env): env["CC"] = "clang" env["CXX"] = "clang++" env.extra_suffix = ".llvm" + env.extra_suffix - env.Append(LIBS=["atomic"]) if env["use_lld"]: if env["use_llvm"]: @@ -394,3 +393,9 @@ def configure(env): # That doesn't make any sense but it's likely a Ubuntu bug? if is64 or env["bits"] == "64": env.Append(LINKFLAGS=["-static-libgcc", "-static-libstdc++"]) + if env["use_llvm"]: + env["LINKCOM"] = env["LINKCOM"] + " -l:libatomic.a" + + else: + if env["use_llvm"]: + env.Append(LIBS=["atomic"])