aboutsummaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2020-03-20 12:12:48 -0700
committerDan Albert <danalbert@google.com>2020-03-24 13:06:16 -0700
commitfed0a4058d786dcc73ee4d625388f9f416b719cc (patch)
tree68c801d3220dc943d1afd9ce884ddcf1bf55cd54 /build
parent5aec38c42f1e6da17437c72066e4a59beb5a265f (diff)
downloadndk-fed0a4058d786dcc73ee4d625388f9f416b719cc.tar.gz
Default to lld again.
Rather than trying to replace `ld` in each location, this instead relies on Clang defaulting to `ld.lld`, which it invokes from the Clang bin directory. Test: treehugger Bug: None Change-Id: I32b0655c0d89522848f044f1067b53f9214c5444
Diffstat (limited to 'build')
-rw-r--r--build/cmake/android.toolchain.cmake18
-rw-r--r--build/core/build-binary.mk20
2 files changed, 22 insertions, 16 deletions
diff --git a/build/cmake/android.toolchain.cmake b/build/cmake/android.toolchain.cmake
index 48a29bd74..1f6302bb2 100644
--- a/build/cmake/android.toolchain.cmake
+++ b/build/cmake/android.toolchain.cmake
@@ -342,8 +342,12 @@ set(ANDROID_COMPILER_FLAGS_RELEASE)
set(ANDROID_LINKER_FLAGS)
set(ANDROID_LINKER_FLAGS_EXE)
-if(ANDROID_LD STREQUAL lld)
- list(APPEND ANDROID_LINKER_FLAGS -fuse-ld=lld)
+if(ANDROID_LD STREQUAL deprecated)
+ if(ANDROID_ABI STREQUAL arm64-v8a)
+ list(APPEND ANDROID_LINKER_FLAGS -fuse-ld=bfd)
+ else()
+ list(APPEND ANDROID_LINKER_FLAGS -fuse-ld=gold)
+ endif()
endif()
# Don't re-export libgcc symbols in every binary.
@@ -468,12 +472,12 @@ list(APPEND ANDROID_COMPILER_FLAGS
# default hash ("fast").
#
# Note that because we cannot see the user's flags, we can't detect this very
-# accurately. Users that explicitly use -fuse-ld=lld instead of ANDROID_LD will
-# not be able to debug.
-if(ANDROID_LD STREQUAL lld)
- list(APPEND ANDROID_LINKER_FLAGS -Wl,--build-id=sha1)
-else()
+# accurately. Users that explicitly use -fuse-ld=bfd instead of ANDROID_LD will
+# have broken builds.
+if(ANDROID_LD STREQUAL deprecated)
list(APPEND ANDROID_LINKER_FLAGS -Wl,--build-id)
+else()
+ list(APPEND ANDROID_LINKER_FLAGS -Wl,--build-id=sha1)
endif()
list(APPEND ANDROID_LINKER_FLAGS -Wl,--fatal-warnings)
diff --git a/build/core/build-binary.mk b/build/core/build-binary.mk
index 7aaba38e2..bab405240 100644
--- a/build/core/build-binary.mk
+++ b/build/core/build-binary.mk
@@ -496,23 +496,25 @@ CLEAN_OBJS_DIRS += $(LOCAL_OBJS_DIR)
#
linker_ldflags :=
-using_lld := false
-ifeq ($(APP_LD),lld)
- linker_ldflags := -fuse-ld=lld
- using_lld := true
+using_lld := true
+ifeq ($(APP_LD),deprecated)
+ ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
+ linker_ldflags := -fuse-ld=bfd
+ else
+ linker_ldflags := -fuse-ld=gold
+ endif
+ using_lld := false
endif
combined_ldflags := $(TARGET_LDFLAGS) $(NDK_APP_LDFLAGS) $(LOCAL_LDFLAGS)
ndk_fuse_ld_flags := $(filter -fuse-ld=%,$(combined_ldflags))
ndk_used_linker := $(lastword $(ndk_fuse_ld_flags))
ifeq ($(ndk_used_linker),-fuse-ld=lld)
+ # In case the user has set APP_LD=deprecated but also enabled it for a
+ # specific module.
using_lld := true
else
- # In case the user has set APP_LD=lld but also disabled it for a specific
- # module.
- ifneq ($(ndk_used_linker),)
- using_lld := false
- endif
+ using_lld := false
endif
# https://github.com/android/ndk/issues/885