[gn build] Make an explicit `use_lld = true` on mac use lld.darwinnew
authorNico Weber <thakis@chromium.org>
Sat, 9 Jan 2021 19:03:52 +0000 (14:03 -0500)
committerNico Weber <thakis@chromium.org>
Sat, 9 Jan 2021 19:03:52 +0000 (14:03 -0500)
use_lld defaults to true on non-mac if clang_base_path is set (i.e.
the host compiler is a locally-built clang). On mac, the lld Mach-O
port used to be unusable, but ld64.lld.darwinnew is close to usable.
When explicitly setting `use_lld = true` in a GN build on a mac host,
check-lld passes, two check-clang tests fail, and a handful check-llvm
tests fail (the latter all due to -flat_namespace not yet being implemented).

llvm/utils/gn/build/BUILD.gn

index 92d667c..813f39d 100644 (file)
@@ -236,7 +236,11 @@ config("compiler_defaults") {
 
   # On Windows, the linker is not invoked through the compiler driver.
   if (use_lld && host_os != "win") {
-    ldflags += [ "-fuse-ld=lld" ]
+    if (host_os == "mac") {
+      ldflags += [ "-fuse-ld=lld.darwinnew" ]
+    } else {
+      ldflags += [ "-fuse-ld=lld" ]
+    }
   }
 
   if (llvm_build_instrumented_coverage) {