diff options
author | Dan Albert <danalbert@google.com> | 2020-03-20 12:12:48 -0700 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2020-03-24 13:06:16 -0700 |
commit | fed0a4058d786dcc73ee4d625388f9f416b719cc (patch) | |
tree | 68c801d3220dc943d1afd9ce884ddcf1bf55cd54 /build | |
parent | 5aec38c42f1e6da17437c72066e4a59beb5a265f (diff) | |
download | ndk-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.cmake | 18 | ||||
-rw-r--r-- | build/core/build-binary.mk | 20 |
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 |