Message ID | 20190501194032.765-5-matthew.weber@rockwellcollins.com |
---|---|
State | Superseded |
Headers | show |
Series | Compiler-rt Security Fuzzing Support | expand |
Le 01/05/2019 à 21:40, Matt Weber a écrit : > This patch adds support for the compiler-rt (CLANG runtime) library. > It builds a set of static libraries and installs them into the > CLANG/LLVM toolchain resource folder. > > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> > Cc: Romain Naour <romain.naour@smile.fr> > Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com> > Cc: Valentin Korenblit <valentinkorenblit@gmail.com> > --- > Changes > v1 -> v2 > [Romain > - Removed unnecessary host-cmake dependency > > v2 -> v3 > [Romain > - Update to use COMPILER_RT_INSTALL_PATH for library install > [Ricardo > - Fixed check-package extra line > - Spelling in commit message > > v3 -> v4 > [Valentin > - Pointed out that non-glibc libraries won't build. Further > investigation shows that the lib asan support in compiler-rt > doesn't have the libc checks yet to support multiple libraries. > (https://patchwork.ozlabs.org/patch/339938/ was the best example > I could find and it doesn't look like anything has changed in the > recent codebase) > > v4 -> v5 > [Thomas P > - Revisited staging install step and found a cleaner way to use the > default and then a hook to setup the runtime library path > > v6 > - Bumped to 7.0.1 to match current LLVM/Clang version > > v7 > - Rebased on master for 8.0 LLVM/Clang version > - Added comment about bumping verions of LLVM/Clang and Compiler-rt > together > [Romain > - Disabled test cases (-DCOMPILER_RT_INCLUDE_TESTS=OFF) > --- > DEVELOPERS | 1 + > package/Config.in | 1 + > package/clang/clang.mk | 2 +- > package/compiler-rt/Config.in | 14 +++++++++++ > package/compiler-rt/compiler-rt.hash | 3 +++ > package/compiler-rt/compiler-rt.mk | 36 ++++++++++++++++++++++++++++ > package/llvm/llvm.mk | 2 +- > 7 files changed, 57 insertions(+), 2 deletions(-) > create mode 100644 package/compiler-rt/Config.in > create mode 100644 package/compiler-rt/compiler-rt.hash > create mode 100644 package/compiler-rt/compiler-rt.mk > > diff --git a/DEVELOPERS b/DEVELOPERS > index 6ccb0afaf6..72a635a81a 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -1467,6 +1467,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/ > diff --git a/package/Config.in b/package/Config.in > index f592e74a99..99fcf49a63 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -1652,6 +1652,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" > diff --git a/package/clang/clang.mk b/package/clang/clang.mk > index 07e7fced2a..87a80ab258 100644 > --- a/package/clang/clang.mk > +++ b/package/clang/clang.mk > @@ -4,7 +4,7 @@ > # > ################################################################################ > > -# LLVM and Clang should be version bumped together > +# LLVM, Compiler-rt and Clang should be version bumped together > CLANG_VERSION = 8.0.0 > CLANG_SITE = http://llvm.org/releases/$(CLANG_VERSION) > CLANG_SOURCE = cfe-$(CLANG_VERSION).src.tar.xz > diff --git a/package/compiler-rt/Config.in b/package/compiler-rt/Config.in > new file mode 100644 > index 0000000000..9afc0d9d60 > --- /dev/null > +++ b/package/compiler-rt/Config.in > @@ -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 > diff --git a/package/compiler-rt/compiler-rt.hash b/package/compiler-rt/compiler-rt.hash > new file mode 100644 > index 0000000000..4b6bd1a75e > --- /dev/null > +++ b/package/compiler-rt/compiler-rt.hash > @@ -0,0 +1,3 @@ > +# Locally computed: > +sha256 782edfc119ee172f169c91dd79f2c964fb6b248bd9b73523149030ed505bbe18 compiler-rt-7.0.1.src.tar.xz > +sha256 417541d990edb3f96327ac03cb67e52eac80fc5c3e7afc69213cd04d7c3b9b27 LICENSE.TXT The hashes must be updated after the bump to llvm/clang 8.0.0 :) Best regards, Romain > diff --git a/package/compiler-rt/compiler-rt.mk b/package/compiler-rt/compiler-rt.mk > new file mode 100644 > index 0000000000..7eda3bc4fe > --- /dev/null > +++ b/package/compiler-rt/compiler-rt.mk > @@ -0,0 +1,36 @@ > +################################################################################ > +# > +# compiler-rt > +# > +################################################################################ > + > +# Compiler-RT should be bumped together with LLVM and Clang as the run-time is > +# tied to the version of those tools > +COMPILER_RT_VERSION = 8.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)) > diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk > index 9d276c5190..cd07860068 100644 > --- a/package/llvm/llvm.mk > +++ b/package/llvm/llvm.mk > @@ -4,7 +4,7 @@ > # > ################################################################################ > > -# LLVM and Clang should be version bumped together > +# LLVM, Compiler-rt and Clang should be version bumped together > LLVM_VERSION = 8.0.0 > LLVM_SITE = http://llvm.org/releases/$(LLVM_VERSION) > LLVM_SOURCE = llvm-$(LLVM_VERSION).src.tar.xz >
Romain, On Tue, May 7, 2019 at 6:54 AM Romain Naour <romain.naour@smile.fr> wrote: > > Le 01/05/2019 à 21:40, Matt Weber a écrit : > > This patch adds support for the compiler-rt (CLANG runtime) library. > > It builds a set of static libraries and installs them into the > > CLANG/LLVM toolchain resource folder. > > > > Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> > > Cc: Romain Naour <romain.naour@smile.fr> > > Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com> > > Cc: Valentin Korenblit <valentinkorenblit@gmail.com> > > --- > > Changes > > v1 -> v2 > > [Romain > > - Removed unnecessary host-cmake dependency > > > > v2 -> v3 > > [Romain > > - Update to use COMPILER_RT_INSTALL_PATH for library install > > [Ricardo > > - Fixed check-package extra line > > - Spelling in commit message > > > > v3 -> v4 > > [Valentin > > - Pointed out that non-glibc libraries won't build. Further > > investigation shows that the lib asan support in compiler-rt > > doesn't have the libc checks yet to support multiple libraries. > > (https://patchwork.ozlabs.org/patch/339938/ was the best example > > I could find and it doesn't look like anything has changed in the > > recent codebase) > > > > v4 -> v5 > > [Thomas P > > - Revisited staging install step and found a cleaner way to use the > > default and then a hook to setup the runtime library path > > > > v6 > > - Bumped to 7.0.1 to match current LLVM/Clang version > > > > v7 > > - Rebased on master for 8.0 LLVM/Clang version > > - Added comment about bumping verions of LLVM/Clang and Compiler-rt > > together > > [Romain > > - Disabled test cases (-DCOMPILER_RT_INCLUDE_TESTS=OFF) > > --- > > DEVELOPERS | 1 + > > package/Config.in | 1 + > > package/clang/clang.mk | 2 +- > > package/compiler-rt/Config.in | 14 +++++++++++ > > package/compiler-rt/compiler-rt.hash | 3 +++ > > package/compiler-rt/compiler-rt.mk | 36 ++++++++++++++++++++++++++++ > > package/llvm/llvm.mk | 2 +- > > 7 files changed, 57 insertions(+), 2 deletions(-) > > create mode 100644 package/compiler-rt/Config.in > > create mode 100644 package/compiler-rt/compiler-rt.hash > > create mode 100644 package/compiler-rt/compiler-rt.mk > > > > diff --git a/DEVELOPERS b/DEVELOPERS > > index 6ccb0afaf6..72a635a81a 100644 > > --- a/DEVELOPERS > > +++ b/DEVELOPERS > > @@ -1467,6 +1467,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/ > > diff --git a/package/Config.in b/package/Config.in > > index f592e74a99..99fcf49a63 100644 > > --- a/package/Config.in > > +++ b/package/Config.in > > @@ -1652,6 +1652,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" > > diff --git a/package/clang/clang.mk b/package/clang/clang.mk > > index 07e7fced2a..87a80ab258 100644 > > --- a/package/clang/clang.mk > > +++ b/package/clang/clang.mk > > @@ -4,7 +4,7 @@ > > # > > ################################################################################ > > > > -# LLVM and Clang should be version bumped together > > +# LLVM, Compiler-rt and Clang should be version bumped together > > CLANG_VERSION = 8.0.0 > > CLANG_SITE = http://llvm.org/releases/$(CLANG_VERSION) > > CLANG_SOURCE = cfe-$(CLANG_VERSION).src.tar.xz > > diff --git a/package/compiler-rt/Config.in b/package/compiler-rt/Config.in > > new file mode 100644 > > index 0000000000..9afc0d9d60 > > --- /dev/null > > +++ b/package/compiler-rt/Config.in > > @@ -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 > > diff --git a/package/compiler-rt/compiler-rt.hash b/package/compiler-rt/compiler-rt.hash > > new file mode 100644 > > index 0000000000..4b6bd1a75e > > --- /dev/null > > +++ b/package/compiler-rt/compiler-rt.hash > > @@ -0,0 +1,3 @@ > > +# Locally computed: > > +sha256 782edfc119ee172f169c91dd79f2c964fb6b248bd9b73523149030ed505bbe18 compiler-rt-7.0.1.src.tar.xz > > +sha256 417541d990edb3f96327ac03cb67e52eac80fc5c3e7afc69213cd04d7c3b9b27 LICENSE.TXT > > The hashes must be updated after the bump to llvm/clang 8.0.0 :) Good call, I've made that update but it must have slipped out of my rebase :-) Will update pending other feedbac. > > Best regards, > Romain > > > diff --git a/package/compiler-rt/compiler-rt.mk b/package/compiler-rt/compiler-rt.mk > > new file mode 100644 > > index 0000000000..7eda3bc4fe > > --- /dev/null > > +++ b/package/compiler-rt/compiler-rt.mk > > @@ -0,0 +1,36 @@ > > +################################################################################ > > +# > > +# compiler-rt > > +# > > +################################################################################ > > + > > +# Compiler-RT should be bumped together with LLVM and Clang as the run-time is > > +# tied to the version of those tools > > +COMPILER_RT_VERSION = 8.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)) > > diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk > > index 9d276c5190..cd07860068 100644 > > --- a/package/llvm/llvm.mk > > +++ b/package/llvm/llvm.mk > > @@ -4,7 +4,7 @@ > > # > > ################################################################################ > > > > -# LLVM and Clang should be version bumped together > > +# LLVM, Compiler-rt and Clang should be version bumped together > > LLVM_VERSION = 8.0.0 > > LLVM_SITE = http://llvm.org/releases/$(LLVM_VERSION) > > LLVM_SOURCE = llvm-$(LLVM_VERSION).src.tar.xz > > >
diff --git a/DEVELOPERS b/DEVELOPERS index 6ccb0afaf6..72a635a81a 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1467,6 +1467,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/ diff --git a/package/Config.in b/package/Config.in index f592e74a99..99fcf49a63 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1652,6 +1652,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" diff --git a/package/clang/clang.mk b/package/clang/clang.mk index 07e7fced2a..87a80ab258 100644 --- a/package/clang/clang.mk +++ b/package/clang/clang.mk @@ -4,7 +4,7 @@ # ################################################################################ -# LLVM and Clang should be version bumped together +# LLVM, Compiler-rt and Clang should be version bumped together CLANG_VERSION = 8.0.0 CLANG_SITE = http://llvm.org/releases/$(CLANG_VERSION) CLANG_SOURCE = cfe-$(CLANG_VERSION).src.tar.xz diff --git a/package/compiler-rt/Config.in b/package/compiler-rt/Config.in new file mode 100644 index 0000000000..9afc0d9d60 --- /dev/null +++ b/package/compiler-rt/Config.in @@ -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 diff --git a/package/compiler-rt/compiler-rt.hash b/package/compiler-rt/compiler-rt.hash new file mode 100644 index 0000000000..4b6bd1a75e --- /dev/null +++ b/package/compiler-rt/compiler-rt.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 782edfc119ee172f169c91dd79f2c964fb6b248bd9b73523149030ed505bbe18 compiler-rt-7.0.1.src.tar.xz +sha256 417541d990edb3f96327ac03cb67e52eac80fc5c3e7afc69213cd04d7c3b9b27 LICENSE.TXT diff --git a/package/compiler-rt/compiler-rt.mk b/package/compiler-rt/compiler-rt.mk new file mode 100644 index 0000000000..7eda3bc4fe --- /dev/null +++ b/package/compiler-rt/compiler-rt.mk @@ -0,0 +1,36 @@ +################################################################################ +# +# compiler-rt +# +################################################################################ + +# Compiler-RT should be bumped together with LLVM and Clang as the run-time is +# tied to the version of those tools +COMPILER_RT_VERSION = 8.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)) diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk index 9d276c5190..cd07860068 100644 --- a/package/llvm/llvm.mk +++ b/package/llvm/llvm.mk @@ -4,7 +4,7 @@ # ################################################################################ -# LLVM and Clang should be version bumped together +# LLVM, Compiler-rt and Clang should be version bumped together LLVM_VERSION = 8.0.0 LLVM_SITE = http://llvm.org/releases/$(LLVM_VERSION) LLVM_SOURCE = llvm-$(LLVM_VERSION).src.tar.xz
This patch adds support for the compiler-rt (CLANG runtime) library. It builds a set of static libraries and installs them into the CLANG/LLVM toolchain resource folder. Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> Cc: Romain Naour <romain.naour@smile.fr> Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Valentin Korenblit <valentinkorenblit@gmail.com> --- Changes v1 -> v2 [Romain - Removed unnecessary host-cmake dependency v2 -> v3 [Romain - Update to use COMPILER_RT_INSTALL_PATH for library install [Ricardo - Fixed check-package extra line - Spelling in commit message v3 -> v4 [Valentin - Pointed out that non-glibc libraries won't build. Further investigation shows that the lib asan support in compiler-rt doesn't have the libc checks yet to support multiple libraries. (https://patchwork.ozlabs.org/patch/339938/ was the best example I could find and it doesn't look like anything has changed in the recent codebase) v4 -> v5 [Thomas P - Revisited staging install step and found a cleaner way to use the default and then a hook to setup the runtime library path v6 - Bumped to 7.0.1 to match current LLVM/Clang version v7 - Rebased on master for 8.0 LLVM/Clang version - Added comment about bumping verions of LLVM/Clang and Compiler-rt together [Romain - Disabled test cases (-DCOMPILER_RT_INCLUDE_TESTS=OFF) --- DEVELOPERS | 1 + package/Config.in | 1 + package/clang/clang.mk | 2 +- package/compiler-rt/Config.in | 14 +++++++++++ package/compiler-rt/compiler-rt.hash | 3 +++ package/compiler-rt/compiler-rt.mk | 36 ++++++++++++++++++++++++++++ package/llvm/llvm.mk | 2 +- 7 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 package/compiler-rt/Config.in create mode 100644 package/compiler-rt/compiler-rt.hash create mode 100644 package/compiler-rt/compiler-rt.mk