Another way to override the build option is in [BuildOptions] DSC file. In PlatformPkg.dsc, you can specify the build options as below. [BuildOptions] *_CLANG38_AARCH64_DLINK_FLAGS = -target aarch64-poky-linux -fuse-ld=lld Thanks Liming 发件人: bounce+27952+66692+4905953+8761045@groups.io 代表 Prabin CA 发送时间: 2020年10月28日 17:36 收件人: Andrew Fish ; devel@edk2.groups.io 主题: Re: [edk2-devel] Overriding of linker in ed2 build system Hi Andrew, I had edited tools_def.txt file with following changes (shown diff below) ################## # CLANG38 AARCH64 definitions ################## -DEFINE CLANG38_AARCH64_TARGET = -target aarch64-linux-gnu +DEFINE CLANG38_AARCH64_TARGET = -target aarch64-poky-linux DEFINE CLANG38_AARCH64_CC_FLAGS = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG38_AARCH64_TARGET) -mcmodel=small DEF(CLANG38_WARNING_OVERRIDES) DEFINE CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 @@ -2767,7 +2767,7 @@ DEFINE CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH6 *_CLANG38_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -fno-lto *_CLANG38_AARCH64_ASLDLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS) *_CLANG38_AARCH64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments -*_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 +*_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 -fuse-ld=lld *_CLANG38_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 *_CLANG38_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 *_CLANG38_AARCH64_PLATFORM_FLAGS = Please validate the changes first, now its picking LD from aarch64-poky-linux-ld, But the changes made to DLINK_FLAGS to take LD (-fuse-ld=lld) from clang is not making any effects. Can you suggest if anything I had missed or done in wrong. Thanks