1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# lld 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun# LLVM, Clang and lld should be version bumped together 8*4882a593SmuzhiyunLLD_VERSION = 9.0.1 9*4882a593SmuzhiyunLLD_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLD_VERSION) 10*4882a593SmuzhiyunLLD_SOURCE = lld-$(LLD_VERSION).src.tar.xz 11*4882a593SmuzhiyunLLD_LICENSE = Apache-2.0 with exceptions 12*4882a593SmuzhiyunLLD_LICENSE_FILES = LICENSE.TXT 13*4882a593SmuzhiyunLLD_SUPPORTS_IN_SOURCE_BUILD = NO 14*4882a593SmuzhiyunHOST_LLD_DEPENDENCIES = host-llvm 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun# LLVM > 9.0 will soon require C++14 support, building llvm <= 9.0 using a 17*4882a593Smuzhiyun# toolchain using gcc < 5.1 gives an error but actually still works. Setting 18*4882a593Smuzhiyun# this option makes it still build with gcc >= 4.8. 19*4882a593Smuzhiyun# https://reviews.llvm.org/D57264 20*4882a593SmuzhiyunHOST_LLD_CONF_OPTS += -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun# build as static libs as is done in llvm & clang 23*4882a593SmuzhiyunHOST_LLD_CONF_OPTS += -DBUILD_SHARED_LIBS=OFF 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun# GCC looks for tools in a different path from LLD's default installation path 26*4882a593Smuzhiyundefine HOST_LLD_CREATE_SYMLINKS 27*4882a593Smuzhiyun mkdir -p $(HOST_DIR)/$(GNU_TARGET_NAME)/bin 28*4882a593Smuzhiyun ln -sf $(HOST_DIR)/bin/lld $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/lld 29*4882a593Smuzhiyun ln -sf $(HOST_DIR)/bin/lld $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/ld.lld 30*4882a593Smuzhiyunendef 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunHOST_LLD_POST_INSTALL_HOOKS += HOST_LLD_CREATE_SYMLINKS 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun$(eval $(host-cmake-package)) 35