Third try to enable clang lld as default linker.

Note of existing configurations:
  * When lld is used, llvm-strip and llvm-objcopy are also used.
  * darwin host modules do not use lld.
  * lld can be disabled locally with use_clang_lld:false in Android.bp
    or LOCAL_USE_CLANG_LLD:=false in Android.mk.

Bug: 73768157
Test: make checkbuild, boot and run bionic and system/core native tests
Change-Id: I3067ff8021dd6e1598f2447b80aea66a3f7e1677
This commit is contained in:
Chih-Hung Hsieh 2018-06-12 10:50:10 -07:00
parent acbfc3fb94
commit 4ad173788e
2 changed files with 12 additions and 7 deletions

View file

@ -102,7 +102,7 @@ $(call add_json_list, CFIExcludePaths, $(CFI_EXCLUDE_PATHS) $(
$(call add_json_list, CFIIncludePaths, $(CFI_INCLUDE_PATHS) $(PRODUCT_CFI_INCLUDE_PATHS))
$(call add_json_list, IntegerOverflowExcludePaths, $(INTEGER_OVERFLOW_EXCLUDE_PATHS) $(PRODUCT_INTEGER_OVERFLOW_EXCLUDE_PATHS))
$(call add_json_bool, UseClangLld, $(filter 1 true,$(USE_CLANG_LLD)))
$(call add_json_bool, UseClangLld, $(call invert_bool,$(filter 0 false,$(USE_CLANG_LLD))))
$(call add_json_bool, ClangTidy, $(filter 1 true,$(WITH_TIDY)))
$(call add_json_str, TidyChecks, $(WITH_TIDY_CHECKS))

View file

@ -4,12 +4,17 @@
## Output variables: my_use_clang_lld
#############################################################
# Use LLD only if it's not disabled by LOCAL_USE_CLANG_LLD,
# and enabled by LOCAL_USE_CLANG_LLD or USE_CLANG_LLD.
my_use_clang_lld := false
ifeq (,$(filter 0 false,$(LOCAL_USE_CLANG_LLD)))
ifneq (,$(filter 1 true,$(LOCAL_USE_CLANG_LLD) $(USE_CLANG_LLD)))
my_use_clang_lld := true
# Use LLD by default.
# Do not use LLD if LOCAL_USE_CLANG_LLD is false or 0,
# of if LOCAL_USE_CLANG_LLD is not set and USE_CLANG_LLD is 0 or false.
my_use_clang_lld := true
ifneq (,$(LOCAL_USE_CLANG_LLD))
ifneq (,$(filter 0 false,$(LOCAL_USE_CLANG_LLD)))
my_use_clang_lld := false
endif
else
ifneq (,$(filter 0 false,$(USE_CLANG_LLD)))
my_use_clang_lld := false
endif
endif