From 1f048d9b860b8c7b69ac8dd085edc9ee3191b2d5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 15 Mar 2023 00:19:47 +0000 Subject: gentoo auto-resync : 15:03:2023 - 00:19:47 --- sys-libs/libcxx/Manifest | 2 + sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild | 204 +++++++++++++++++++++++ 2 files changed, 206 insertions(+) create mode 100644 sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild (limited to 'sys-libs/libcxx') diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index aeb59ad3d494..ad990aa028d3 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -9,6 +9,7 @@ DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f7141 DIST llvm-project-16.0.0rc4.src.tar.xz 117930024 BLAKE2B 55cf032ad3ba52d2af0942fe1c627319ae95b466122d04b24a917c33e29139fae546d92c375715600190c02426b798803ead0ab7a97d86960cf98fca80e8815c SHA512 8d628205c5b93fe6683b67b97b5c7f98bae945bd87cccebcdac00ddd4362108bd171f077a5196242be0fb909c795592b34bfa1c96c50a744fb68f287fd9781cc DIST llvm-project-16.0.0rc4.src.tar.xz.sig 566 BLAKE2B bfcf39070f32e16cfeae699d95d06f184b1331c3af403340c31cc5a973a3bb1faec0b6342445176cebed5819ddf68e4abfdaa8542ec425b1c822fc8c03c03349 SHA512 2af72e3d771e2361873007a944dcccfe81fbdbc3025a2101e03cbc15f1a173d39ceb94c4ae8966b1d7564bf004ee9a5ffa032e2334c0cf7154aea1090d04b00f DIST llvm-project-2708869801ae00f4681f6b2d9d69b25b3fce26b6.tar.gz 180523586 BLAKE2B cf918d1e23f922d201a44531c9765b7d8ec2b3b8499ea7954845abcd5fa2687e85b3a34819a583c4f4a6d6e1baa49dbac0b4450cd6b9b322b0f13c88cd7da93c SHA512 18cb00e93d819993a925ae0467d382bc952d82c1eb92dbbb5bb3cdf87043269948670713734ddc3ea4ec50544e54dd11b6747496f7eaa02479374ab9ad075aa5 +DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068 EBUILD libcxx-14.0.6.ebuild 6948 BLAKE2B b8f0793a4542a76b789ae6c3cfc392bdba7c8d033a6d41328cd32754af3affb663b87f8811cf53fcc3be9e2bcb9f8691a64bd613b26bfd8b5c99a9c11e9c57ee SHA512 d280604fe14e1488a1b9538ec7da100639024e34ed65c5efe11c7fd563073ded3655d302e61b1b657766ec2b3fc78d2192f905377b3f5d55fcf20ecba58262b3 EBUILD libcxx-15.0.7-r1.ebuild 5306 BLAKE2B 346390544e06d0fac9c21e341ab97a40b51c6af8c0bfe33771e634a1b4f081fabbbe24a749572f2129adfd26c5e8992442775dd5bfc557cbf50988bacc510137 SHA512 4cc723ca0b09ebedd5c7caed4008c392c3843f93674f0a913c067c147c74b755061bc9cdbfd51037505f0d395353791237275382e6b321f8dc7a83b24a7c5e4d EBUILD libcxx-15.0.7.ebuild 5281 BLAKE2B 91ef259e7e911d759553378e78dadac1f69a8d890eaec9572d987674b22943b07ae83bd6c7fa6f0968da0bb14709436117ca6beb7786fa329dfebb268273e0fd SHA512 038ccd5504bbb990f8b6bf35ed64ca197a84f14e2860e277bd488693e583474332c73afd1a48911786b6352373a1f09763899d2408907ada836a992cb733ed43 @@ -17,4 +18,5 @@ EBUILD libcxx-16.0.0_rc3.ebuild 5244 BLAKE2B 293399fe1fc0f91f115697a27d265f422e1 EBUILD libcxx-16.0.0_rc4.ebuild 5244 BLAKE2B 293399fe1fc0f91f115697a27d265f422e1c9535e0cfad5087a3faa3a9660e4e4210acf61bb4863d9c3fb4899eb23d74ceb8d6103da405eed47cb9157a413305 SHA512 c7ec13ea1c4a6e867fce9971b6fcfc4ab4c862f36a67c8b0484ebfe7708f0455310b9475c581ac1d635344db2a544eedf5649b0633900b10000f1ee0e9f065b9 EBUILD libcxx-17.0.0.9999.ebuild 5238 BLAKE2B d31f97c2b6fad3c8b357cf1d9c2bbcf52fcf8ddef4cd5e52a1e5a8d413751441032cc964eeb4ea3509e3ee16aab6342dcbd38a9b7e7d9299021834e834054c37 SHA512 4c7f95ca928f5d7dcada11ae250a0468a3797bf024985635eaf815dab7341863bd7add87abd459e49a2fa0b19b12ae87cfe6d5799780f1594130eb134e4347ff EBUILD libcxx-17.0.0_pre20230304.ebuild 5238 BLAKE2B d31f97c2b6fad3c8b357cf1d9c2bbcf52fcf8ddef4cd5e52a1e5a8d413751441032cc964eeb4ea3509e3ee16aab6342dcbd38a9b7e7d9299021834e834054c37 SHA512 4c7f95ca928f5d7dcada11ae250a0468a3797bf024985635eaf815dab7341863bd7add87abd459e49a2fa0b19b12ae87cfe6d5799780f1594130eb134e4347ff +EBUILD libcxx-17.0.0_pre20230314.ebuild 5238 BLAKE2B d31f97c2b6fad3c8b357cf1d9c2bbcf52fcf8ddef4cd5e52a1e5a8d413751441032cc964eeb4ea3509e3ee16aab6342dcbd38a9b7e7d9299021834e834054c37 SHA512 4c7f95ca928f5d7dcada11ae250a0468a3797bf024985635eaf815dab7341863bd7add87abd459e49a2fa0b19b12ae87cfe6d5799780f1594130eb134e4347ff MISC metadata.xml 718 BLAKE2B 3cc1e43a6f1ada368cfc0bf8aaf49007f6792062b684ab9299b5180d778b158325b6931169b52dd14e85ae9ad6dc1a03be323b814fb920fe8434ad86425d699c SHA512 c2cef3e481c0c3db7de6de8c0a5aff42a1e7fe81155d99f1f0f0988f6d5ca041f787a27a2dde0073037d59e082e2f6da7eefe1303f1c1837ebc12e8e0d28729f diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild new file mode 100644 index 000000000000..4eeb65e55e83 --- /dev/null +++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild @@ -0,0 +1,204 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \ + toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+clang +libcxxabi static-libs test" +REQUIRED_USE="test? ( clang )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( + ~sys-libs/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}] + ) + !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] ) +" +DEPEND=" + ${RDEPEND} + sys-devel/llvm:${LLVM_MAJOR} +" +BDEPEND=" + clang? ( + sys-devel/clang:${LLVM_MAJOR} + ) + !test? ( + ${PYTHON_DEPS} + ) + test? ( + >=dev-util/cmake-3.16 + sys-devel/gdb[python] + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + ) +" + +LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake ) +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + python_has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + fi + python-any-r1_pkg_setup + + if ! use libcxxabi && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=system-libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/c++/v1" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON + + # bootstrap: cmake is unhappy if compiler can't link to stdlib + local nolib_flags=( -nodefaultlibs -lc ) + if ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DCMAKE_CXX_COMPILER_TARGET="${CHOST}" + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES=libcxx + -DLLVM_INCLUDE_TESTS=OFF + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_INCLUDE_BENCHMARKS=OFF + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt} + ) + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_compile() { + cmake_src_compile + if [[ ${CHOST} != *-darwin* ]] ; then + gen_shared_ldscript + use static-libs && gen_static_ldscript + fi +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxx +} + +multilib_src_install() { + cmake_src_install + # since we've replaced libc++.{a,so} with ldscripts, now we have to + # install the extra symlinks + if [[ ${CHOST} != *-darwin* ]] ; then + dolib.so lib/libc++_shared.so + use static-libs && dolib.a lib/libc++_static.a + fi +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + # Move it first. + mv lib/libc++{,_static}.a || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps=( + libc++_static.a + $(usex libcxxabi libc++abi.a libsupc++.a) + ) + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=( libpthread.a libdl.a ) + + gen_ldscript "${deps[*]}" > lib/libc++.a || die +} + +gen_shared_ldscript() { + # Move it first. + mv lib/libc++{,_shared}.so || die + local deps=( + libc++_shared.so + # libsupc++ doesn't have a shared version + $(usex libcxxabi libc++abi.so libsupc++.a) + ) + + gen_ldscript "${deps[*]}" > lib/libc++.so || die +} -- cgit v1.2.3