# Maintainer: Celeste maintainer="Celeste " pkgname=clang-rtlib pkgver=0.1.0 pkgrel=0 pkgdesc="compiler-rt for non-default Clang" url="https://compiler-rt.llvm.org/" arch="all" license="Apache-2.0" makedepends=" clang cmake linux-headers python3 samurai " _clang_vers=" 16.0.6 17.0.6 18.1.8 19.1.7 " for _ver in $_clang_vers; do subpackages="$subpackages clang${_ver%%.*}-rtlib" source="$source https://github.com/llvm/llvm-project/releases/download/llvmorg-$_ver/compiler-rt-$_ver.src.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-$_ver/cmake-$_ver.src.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-$_ver/llvm-$_ver.src.tar.xz " done source="$source armv6-arch.patch.noauto 1601-compiler-rt-lsan-dtp-offset.patch 1602-compiler-rt-ppc-fixes.patch 1603-fix-msan-with-musl.patch 1701-compiler-rt-lsan-dtp-offset.patch 1702-compiler-rt-ppc-fixes.patch 1703-fix-msan-with-musl.patch 1801-compiler-rt-lsan-dtp-offset.patch 1802-compiler-rt-ppc-fixes.patch 1803-fix-msan-with-musl.patch 1901-compiler-rt-aarch64-use-getauxval.patch 1902-compiler-rt-lsan-dtp-offset.patch 1903-compiler-rt-ppc-fixes.patch 1904-fix-msan-with-musl.patch " builddir="$srcdir" options="!check" # first try enabling it for default Clang in main/llvm-runtimes prepare() { default_prepare case "$CARCH" in armhf) msg "armv6-arch.patch.noauto" for _ver in $_clang_vers; do patch -Np2 -i "$srcdir"/armv6-arch.patch.noauto \ -d "$builddir"/compiler-rt-$_ver.src done ;; esac } build() { export CFLAGS="$CFLAGS -DNDEBUG -DSANITIZER_CAN_USE_PREINIT_ARRAY=0" export CXXFLAGS="$CXXFLAGS -DNDEBUG -DSANITIZER_CAN_USE_PREINIT_ARRAY=0" local suffix case "$CARCH" in x86) suffix="-i386" ;; armv7) suffix="-armhf" ;; ppc64le) suffix="-powerpc64le" ;; *) suffix="-$CARCH" ;; esac local builtins=ON sanitizers=ON case "$CARCH" in arm*|x86) sanitizers=OFF ;; s390x) builtins=OFF sanitizers=OFF ;; esac for _ver in $_clang_vers; do local llvmver=${_ver%%.*} ln -Tsvf cmake-$_ver.src cmake ln -Tsvf llvm-$_ver.src llvm cmake -B builtins-$_ver -G Ninja -Wno-dev -S compiler-rt-$_ver.src \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_ASM_COMPILER=clang \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_C_COMPILER_TARGET="$CHOST" \ -DCMAKE_CXX_COMPILER=clang++ \ \ -DCOMPILER_RT_BUILD_BUILTINS=ON \ -DCOMPILER_RT_BUILD_CRT=OFF \ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ -DCOMPILER_RT_BUILD_MEMPROF=OFF \ -DCOMPILER_RT_BUILD_ORC=OFF \ -DCOMPILER_RT_BUILD_PROFILE=OFF \ -DCOMPILER_RT_BUILD_SANITIZERS=OFF \ -DCOMPILER_RT_BUILD_XRAY=OFF \ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ -DCOMPILER_RT_INCLUDE_TESTS=OFF cmake --build builtins-$_ver cmake -B build-$_ver -G Ninja -Wno-dev -S compiler-rt-$_ver.src \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_ASM_COMPILER=clang \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_C_COMPILER_TARGET="$CHOST" \ -DCMAKE_CXX_COMPILER=clang++ \ \ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \ -DCOMPILER_RT_BUILD_CTX_PROFILE=$sanitizers \ -DCOMPILER_RT_BUILD_MEMPROF=$sanitizers \ -DCOMPILER_RT_BUILD_SANITIZERS=$sanitizers \ -DCOMPILER_RT_BUILD_XRAY=$sanitizers \ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ -DCOMPILER_RT_ENABLE_WERROR=OFF \ -DCOMPILER_RT_HAS_WTHREAD_SAFETY_FLAG=OFF \ -DCOMPILER_RT_INCLUDE_TESTS=OFF \ -DCOMPILER_RT_INSTALL_PATH=/usr/lib/llvm$llvmver/lib/clang/$llvmver \ -DCOMPILER_RT_LIBRARY_builtins_$CHOST="$builddir/builtins-$_ver/lib/linux/libclang_rt.builtins$suffix.a" \ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=$builtins cmake --build build-$_ver done } package() { depends="$subpackages" local d; for d in build-*; do DESTDIR="$pkgdir" cmake --install $d done } rtlib() { local llvmver=${subpkgname%-rtlib} llvmver=${llvmver#clang} pkgdesc="$pkgdesc $llvmver" amove usr/lib/llvm$llvmver/lib/clang/$llvmver } sha512sums=" 852e2105facb12ea0943aa24e0c220f76671ad76dfe7d07b8164c3a1d8360670ca565a2b6dd590722b974e16a2adf3c466fdabdfd3bb3ebbd005162c8ac4406c compiler-rt-16.0.6.src.tar.xz 52ecd941d2d85a5b668caa5d0d40480cb6a97b3bf1174e634c2a93e9ef6d03670ca7e96abb0a60cb33ba537b93d5788754dab1f2f45c1f623f788162717d088b cmake-16.0.6.src.tar.xz 8d4cdadc9a1ad249fbf9248c8e56f3bcafab73a473a0b0ca73499ed8825c62e27668aac4f1d03341631e5ad93701621e834e9e196ca32eac3ef805cf1c860083 llvm-16.0.6.src.tar.xz 56dc9d304dd4ba8d28179077dd99ca7c820ce26dbc70d33b2ba41769928adc900f7618d3efef756b2fc92e322d2f25dba49be966d6583d2d8f1fce9283a9cdf7 compiler-rt-17.0.6.src.tar.xz b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a cmake-17.0.6.src.tar.xz bf9b04d0d45c67168b195c550cd8326e3a01176f92776705846aad3956a494bcb7a053b0b0bde19abd68dc0068e5c97ef99dee7eadfdb727bc0d758b2684f3bd llvm-17.0.6.src.tar.xz fb8795bd51c9b005c2ad1975591e9e2715740d6407ccad41379f136ef2e8d24ded8b97b01165a3ae4bd377119a6a1049ca05d3220404fc12bee86114ff2bff0d compiler-rt-18.1.8.src.tar.xz e02243b491f9e688db28d7b53270fcf87debf09d3c95b136a7c7b96e26890de68712c60a1e85f5a448a95ad8c81f2d8ae77047780822443bbe39f1a9e6211007 cmake-18.1.8.src.tar.xz 930814730bb2d80cf7f7b2968f0f1f1442009ca62a7ca29992b69d63823270584b059d16aa845bb381411da566e7e4f255fcfbc38acbdf865eb0419b4dfd7459 llvm-18.1.8.src.tar.xz e2e8e6a094525b84184e9e4a4c1a727de518d4ef1a91370515f0c955719dc946fd60e7fabd10f52ab1905ef6d4a86084b8ddfb9b45de838aa1c5ddf3c042748b compiler-rt-19.1.7.src.tar.xz 3ff56e1a61dbace35d8c168ad5c94c5a09d92eb683494bfe1deabcb3640cf79b7422d44903d049d2298d54c2874f9a60c4f13f6795a3949e7eaefd5d42e62621 cmake-19.1.7.src.tar.xz 140275e35d2046fcbfc38241fed7bae92d34b761c09a5209e298a4241958a91e069dab76454efa32325d2f1205f0f0f25d886518533df55948a78b14e88b41a8 llvm-19.1.7.src.tar.xz ed30960bc5dea6d611a691e12949ddff1346fb5ba0ff36741496bf36442468f3724bb98526d230a97e58848bef703d6b793db27e254d927004f1903e3f2816ed armv6-arch.patch.noauto 9b40d3f256a23e418a2d76ae8d5798e1f2ef773ff540d7d03b5e6d0f5c72f10b31692df5b5c3a87d199365805a5f86b7538eacbf6cbb11b706ea1f59f46685d3 1601-compiler-rt-lsan-dtp-offset.patch 52aa3194eb9fbd1979feba89d636cac162d6d183b806a2b409870f7006173a0fd68c443c9f21d57ed0818def73483fb518f30655642804de82b98887dc94dd4c 1602-compiler-rt-ppc-fixes.patch 794bfcf33b0b5537e686f4ae14de346668cf2f0cb0526bd7c0f27b6cb4d3e381c1ce697984092ba3d105c6070ec3542ceb03385ef158d7f8c3a3e510c3b29b00 1603-fix-msan-with-musl.patch badd6a10b8f6f8fa6971931e485a3ed54eaa6c08a7147e957870d302cdf8659e40e7a4d3b9d985817f344eeddc38fa5db6581a66f85cc9400cf0e351d2ceb6bb 1701-compiler-rt-lsan-dtp-offset.patch 7c1e6a8f8e11cc79d00c87695defd5d6a0256ed5cd9ba38f03b4b6f3ba3bf2e7c0e12ff8348005d13a9c768bed3e7a98e3b0aefafcf97e237f692af95dd0beae 1702-compiler-rt-ppc-fixes.patch d238ecd17f08b043ab68750839ad9f7df2911a655cc43f6ec17f23725af652da9c514f37143adbf33c4a093e3a7e2ade1e3e02297d63ac1f8b8097d653f44c8c 1703-fix-msan-with-musl.patch 0f2db06a913b231897f084999644aecd94d8985cad944f865b8d9864428d36d3bd357bbeb4d98d3da6f8db7483ab6949a7c58832a18d90ecb825e5801f8c079f 1801-compiler-rt-lsan-dtp-offset.patch ddb23ae63165f611267a3234924ccc8b33df3d3bcc8d2127efbecf770cc0f88287ccae64272862229438c11ac0105699c65d792f7ec0c2915bb646cfae3b06fa 1802-compiler-rt-ppc-fixes.patch 726336fcdeb9a00bd9d3dcc20957ce4d0cbc636db420a1315c91c808f532f9932993b3f11722b49670a8add5b46a90cb61a055abd7decd37166de6819b95209b 1803-fix-msan-with-musl.patch bb5d775e5fcd524ece3c76e55d582cc392835c1961611ba620afe5ecdbfcf2d77aba712dfe17e4cbf3396e998df3cbe389a43b3f2412c00f01bc803b6c498987 1901-compiler-rt-aarch64-use-getauxval.patch 4f72d18915166c226ace41d025c45e53c471825cbfea2d302ef285077731b39f7b94857ff5a7542d47a1933ec1006aa2036c686db9beff1500ff17999b7bf745 1902-compiler-rt-lsan-dtp-offset.patch de65b8cecea09b33146b3e35a9ba4b84f1ce409bb40164f1cf695472c08c6ed7ce02f55146dc467087c2273a908b21fae2807caf2fca1542afecd4fc34ca3210 1903-compiler-rt-ppc-fixes.patch a82e5e4892bb4cd9e4ff9e2254611ca51c1eb252d80ec78d77a1ec73f83066da850a967b712ef5ce09cf65c5b8b79f4e0dd7694b4300f3b25175a95439bb056e 1904-fix-msan-with-musl.patch "