@@ -1535,6 +1535,7 @@ F: package/bridge-utils/
F: package/checkpolicy/
F: package/checksec/
F: package/cgroupfs-mount/
+F: package/compiler-rt/
F: package/crda/
F: package/cunit/
F: package/dacapo/
@@ -1703,6 +1703,7 @@ menu "Other"
source "package/clapack/Config.in"
source "package/classpath/Config.in"
source "package/cmocka/Config.in"
+ source "package/compiler-rt/Config.in"
source "package/cppcms/Config.in"
source "package/cracklib/Config.in"
source "package/dawgdic/Config.in"
@@ -4,7 +4,7 @@
#
################################################################################
-# LLVM, Clang and lld should be version bumped together
+# LLVM, Clang, lld, and Compiler-rt should be version bumped together
CLANG_VERSION = 9.0.0
CLANG_SITE = http://llvm.org/releases/$(CLANG_VERSION)
CLANG_SOURCE = cfe-$(CLANG_VERSION).src.tar.xz
new file mode 100644
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_COMPILER_RT
+ bool "compiler-rt"
+ depends on BR2_PACKAGE_LLVM
+ depends on BR2_TOOLCHAIN_USES_GLIBC # asan lib requires
+ help
+ A collection of runtime libraries primarily used by clang and
+ llvm to provide builtins, sanitizer runtimes, and profiling
+ at runtime.
+
+ https://compiler-rt.llvm.org/
+
+comment "compiler-rt requires llvm to be enabled and a glibc toolchain"
+ depends on !BR2_PACKAGE_LLVM
+ depends on !BR2_TOOLCHAIN_USES_GLIBC
new file mode 100644
@@ -0,0 +1,2 @@
+sha256 56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e compiler-rt-9.0.0.src.tar.xz
+sha256 1a8f1058753f1ba890de984e48f0242a3a5c29a6a8f2ed9fd813f36985387e8d LICENSE.TXT
new file mode 100644
@@ -0,0 +1,35 @@
+################################################################################
+#
+# compiler-rt
+#
+################################################################################
+
+# LLVM, Clang, lld, and Compiler-rt should be version bumped together
+COMPILER_RT_VERSION = 9.0.0
+COMPILER_RT_SOURCE = compiler-rt-$(COMPILER_RT_VERSION).src.tar.xz
+COMPILER_RT_SITE = http://llvm.org/releases/$(COMPILER_RT_VERSION)
+COMPILER_RT_LICENSE = NCSA MIT
+COMPILER_RT_LICENSE_FILES = LICENSE.TXT
+COMPILER_RT_DEPENDENCIES = host-clang llvm
+
+COMPILER_RT_INSTALL_STAGING = YES
+COMPILER_RT_INSTALL_TARGET = NO
+
+COMPILER_RT_CONF_OPTS=-DCOMPILER_RT_STANDALONE_BUILD=OFF \
+ -DCOMPILER_RT_STANDALONE_BUILD=ON \
+ -DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) \
+ -DLLVM_CONFIG_PATH=$(HOST_DIR)/usr/bin/llvm-config
+
+# The installation of the target runtime libraries defaults to DESTDIR, however
+# host-clang resources directory needs a link so Clang can find the runtime
+# libraries in the same location they would be if built as part of the Clang
+# build. The "resources" directory is loosely documented and seems to be
+# assumed, as compiler-rt is usually build at the same time as Clang and not
+# standalone.
+define COMPILER_RT_SETUP_RUNTIME_LIBS
+ mkdir -p $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/lib
+ ln -sf ../../../../$(GNU_TARGET_NAME)/sysroot/usr/lib/linux $(HOST_DIR)/lib/clang/$(HOST_CLANG_VERSION)/lib/linux
+endef
+COMPILER_RT_POST_INSTALL_STAGING_HOOKS += COMPILER_RT_SETUP_RUNTIME_LIBS
+
+$(eval $(cmake-package))
@@ -4,7 +4,7 @@
#
################################################################################
-# LLVM, Clang and lld should be version bumped together
+# LLVM, Clang, lld, and Compiler-rt should be version bumped together
LLD_VERSION = 9.0.0
LLD_SITE = https://llvm.org/releases/$(LLD_VERSION)
LLD_SOURCE = lld-$(LLD_VERSION).src.tar.xz
@@ -4,7 +4,7 @@
#
################################################################################
-# LLVM, Clang and lld should be version bumped together
+# LLVM, Clang, lld, and Compiler-rt should be version bumped together
LLVM_VERSION = 9.0.0
LLVM_SITE = http://llvm.org/releases/$(LLVM_VERSION)
LLVM_SOURCE = llvm-$(LLVM_VERSION).src.tar.xz