commit:     289490b9878b0a81279daed040fb5a5fe6785ef8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 13 03:49:51 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 13 04:54:45 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=289490b9

sys-devel/clang-common: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-devel/clang-common/Manifest                    |   3 -
 .../clang-common/clang-common-19.1.0_rc1.ebuild    | 304 ---------------------
 .../clang-common-20.0.0_pre20240801.ebuild         | 304 ---------------------
 3 files changed, 611 deletions(-)

diff --git a/sys-devel/clang-common/Manifest b/sys-devel/clang-common/Manifest
index 04df8178ee73..e96e91af93d0 100644
--- a/sys-devel/clang-common/Manifest
+++ b/sys-devel/clang-common/Manifest
@@ -1,4 +1,3 @@
-DIST llvm-project-130c135689ec12ab78c53645808524a8d28f7cae.tar.gz 217788932 
BLAKE2B 
9ba8ad82597780f24e750272f9439d1e8d464813a607efec4920a13473103975bc181506dcc15c76a6e4ca83622284b77a7903e36aff6145719529630121cf0b
 SHA512 
d9c67155f462e53968ec448e325b35a80c0d207039dd7155568fa366aa1894bc8dfaa2d5c03a67320bdefb1934720a1d23bc4b972c9fae3ff09c7a79d885c53d
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B 
f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5
 SHA512 
4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 
47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df
 SHA512 
fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 
95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d
 SHA512 
89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
@@ -7,8 +6,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B 
d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 
186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7
 SHA512 
f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B 
a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f
 SHA512 
25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 
6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd
 SHA512 
ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.0-rc1.src.tar.xz 141259912 BLAKE2B 
e882ff54a96900b4948e572cf073c897df6b4ce159869a42c56a4c830187d83b8d9d9b3940dad22346f142f9674575191cc9d079312f0d9aa1105390c07f504f
 SHA512 
9f43dbe8d5f1322f73fb1c638ce4fc7a8179c9ca33fdbfbb6d72632a3d6bf4bc4993f8f5ec827510af55f4f013fba8fe3d7d9e45f262eec16ecf9ab39296b4b8
-DIST llvm-project-19.1.0-rc1.src.tar.xz.sig 438 BLAKE2B 
cc1acbd33440bb14f78c19cc3061a5c0cb3d9dbcd6f0d1516fe118ac02c500ba4df129f870ddf3fe1a52519feab4b631866413fce9c726272d52c3865a9eea27
 SHA512 
a3361992b55be13aeff5d91bb90a15e3a2ab89e486328fa4d9abc9efa3925aee70bea48449b003ae1926909d389bf71afcf6dc56d800ed2e0e3dbc65da6e4e92
 DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 
690b4912d9e4a8019b7990934dd6486362337ccb303dca119c0e75aa1063ad452222be1ee965e43b160dfcea20e491a20c289344152666b618712a1d76dc4780
 SHA512 
508a401e8433b1ac9a399246eb1a3c18faed7c3d41d8c118e77cefbb64cc6d6e171bd41a3e5584f6c84df141ba6819f1a1cce75b5c1ef33e3d2ac239e662d07c
 DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 
1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5
 SHA512 
b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826
 DIST llvm-project-fd7d7882e7fa5a38d4bfde426120d4663718beb4.tar.gz 218217769 
BLAKE2B 
a6c2aa012c342e31527b7e9f85e8fea3549d52530d8f87cd699e094a0aa768d099f9fd2631161ff7f53b4a5011937ed6d1f52b8fa1d23aa34183be1f487d4277
 SHA512 
c4863fab1a3c03f7f9c42f3501d3a75cebb491343515d77d30b26e5cbd720fc3fd628052099d87ed638e8c424bcbe7a1d066ed857f73da6f243d3d5a76b0e6c5

diff --git a/sys-devel/clang-common/clang-common-19.1.0_rc1.ebuild 
b/sys-devel/clang-common/clang-common-19.1.0_rc1.ebuild
deleted file mode 100644
index 090a45690818..000000000000
--- a/sys-devel/clang-common/clang-common-19.1.0_rc1.ebuild
+++ /dev/null
@@ -1,304 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit bash-completion-r1 llvm.org multilib
-
-DESCRIPTION="Common files shared between multiple slots of clang"
-HOMEPAGE="https://llvm.org/";
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-IUSE="
-       default-compiler-rt default-libcxx default-lld
-       bootstrap-prefix cet hardened llvm-libunwind
-"
-
-PDEPEND="
-       sys-devel/clang:*
-       default-compiler-rt? (
-               sys-devel/clang-runtime[compiler-rt]
-               llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] )
-               !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
-       )
-       !default-compiler-rt? ( sys-devel/gcc )
-       default-libcxx? ( >=sys-libs/libcxx-${PV}[static-libs] )
-       !default-libcxx? ( sys-devel/gcc )
-       default-lld? ( >=sys-devel/lld-${PV} )
-       !default-lld? ( sys-devel/binutils )
-"
-IDEPEND="
-       !default-compiler-rt? ( sys-devel/gcc-config )
-       !default-libcxx? ( sys-devel/gcc-config )
-"
-
-LLVM_COMPONENTS=( clang/utils )
-llvm.org_set_globals
-
-pkg_pretend() {
-       [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
-
-       local flag missing_flags=()
-       for flag in default-{compiler-rt,libcxx,lld}; do
-               if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; 
then
-                       missing_flags+=( "${flag}" )
-               fi
-       done
-
-       if [[ ${missing_flags[@]} ]]; then
-               eerror "It seems that you have the following flags set on 
sys-devel/clang:"
-               eerror
-               eerror "  ${missing_flags[*]}"
-               eerror
-               eerror "The default runtimes are now set via flags on 
sys-devel/clang-common."
-               eerror "The build is being aborted to prevent breakage.  Please 
either set"
-               eerror "the respective flags on this ebuild, e.g.:"
-               eerror
-               eerror "  sys-devel/clang-common ${missing_flags[*]}"
-               eerror
-               eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
-               die "Mismatched defaults detected between sys-devel/clang and 
sys-devel/clang-common"
-       fi
-}
-
-_doclang_cfg() {
-       local triple="${1}"
-
-       local tool
-       for tool in ${triple}-clang{,++}; do
-               newins - "${tool}.cfg" <<-EOF
-                       # This configuration file is used by ${tool} driver.
-                       @gentoo-common.cfg
-                       @gentoo-common-ld.cfg
-               EOF
-               if [[ ${triple} == x86_64* ]]; then
-                       cat >> "${ED}/etc/clang/${tool}.cfg" <<-EOF || die
-                               @gentoo-cet.cfg
-                       EOF
-               fi
-       done
-
-       if use kernel_Darwin; then
-               cat >> "${ED}/etc/clang/${triple}-clang++.cfg" <<-EOF || die
-                       -lc++abi
-               EOF
-       fi
-
-       newins - "${triple}-clang-cpp.cfg" <<-EOF
-               # This configuration file is used by the ${triple}-clang-cpp 
driver.
-               @gentoo-common.cfg
-       EOF
-       if [[ ${triple} == x86_64* ]]; then
-               cat >> "${ED}/etc/clang/${triple}-clang-cpp.cfg" <<-EOF || die
-                       @gentoo-cet.cfg
-               EOF
-       fi
-
-       # Install symlinks for triples with other vendor strings since some
-       # programs insist on mangling the triple.
-       local vendor
-       for vendor in gentoo pc unknown; do
-               local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
-               for tool in clang{,++,-cpp}; do
-                       if [[ ! -f 
"${ED}/etc/clang/${vendor_triple}-${tool}.cfg" ]]; then
-                               dosym "${triple}-${tool}.cfg" 
"/etc/clang/${vendor_triple}-${tool}.cfg"
-                       fi
-               done
-       done
-}
-
-doclang_cfg() {
-       local triple="${1}"
-
-       _doclang_cfg ${triple}
-
-       # LLVM may have different arch names in some cases. For example in x86
-       # profiles the triple uses i686, but llvm will prefer i386 if invoked
-       # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
-       # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
-       #
-       # To make sure the correct triples are installed,
-       # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
-       # and compare with CHOST values in profiles.
-
-       local abi=${triple%%-*}
-       case ${abi} in
-               armv4l|armv4t|armv5tel|armv6j|armv7a)
-                       _doclang_cfg ${triple/${abi}/arm}
-                       ;;
-               i686)
-                       _doclang_cfg ${triple/${abi}/i386}
-                       ;;
-               sparc)
-                       _doclang_cfg ${triple/${abi}/sparcel}
-                       ;;
-               sparc64)
-                       _doclang_cfg ${triple/${abi}/sparcv9}
-                       ;;
-       esac
-}
-
-src_install() {
-       newbashcomp bash-autocomplete.sh clang
-
-       insinto /etc/clang
-       newins - gentoo-runtimes.cfg <<-EOF
-               # This file is initially generated by sys-devel/clang-runtime.
-               # It is used to control the default runtimes using by clang.
-
-               --rtlib=$(usex default-compiler-rt compiler-rt libgcc)
-               --unwindlib=$(usex default-compiler-rt libunwind libgcc)
-               --stdlib=$(usex default-libcxx libc++ libstdc++)
-               -fuse-ld=$(usex default-lld lld bfd)
-       EOF
-
-       newins - gentoo-gcc-install.cfg <<-EOF
-               # This file is maintained by gcc-config.
-               # It is used to specify the selected GCC installation.
-       EOF
-
-       newins - gentoo-common.cfg <<-EOF
-               # This file contains flags common to clang, clang++ and 
clang-cpp.
-               @gentoo-runtimes.cfg
-               @gentoo-gcc-install.cfg
-               @gentoo-hardened.cfg
-               # bug #870001
-               -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h"
-       EOF
-
-       # clang-cpp does not like link args being passed to it when directly
-       # invoked, so use a separate configuration file.
-       newins - gentoo-common-ld.cfg <<-EOF
-               # This file contains flags common to clang and clang++
-               @gentoo-hardened-ld.cfg
-       EOF
-
-       # Baseline hardening (bug #851111)
-       newins - gentoo-hardened.cfg <<-EOF
-               # Some of these options are added unconditionally, regardless of
-               # USE=hardened, for parity with sys-devel/gcc.
-               -Xarch_host -fstack-clash-protection
-               -Xarch_host -fstack-protector-strong
-               -fPIE
-               -include "${EPREFIX}/usr/include/gentoo/fortify.h"
-       EOF
-
-       newins - gentoo-cet.cfg <<-EOF
-               -Xarch_host -fcf-protection=$(usex cet full none)
-       EOF
-
-       if use kernel_Darwin; then
-               newins - gentoo-hardened-ld.cfg <<-EOF
-                       # There was -Wl,-z,relro here, but it's not supported 
on Mac
-                       # TODO: investigate whether -bind_at_load or 
-read_only_stubs will do the job
-               EOF
-       else
-               newins - gentoo-hardened-ld.cfg <<-EOF
-                       # Some of these options are added unconditionally, 
regardless of
-                       # USE=hardened, for parity with sys-devel/gcc.
-                       -Wl,-z,relro
-                       -Wl,-z,now
-               EOF
-       fi
-
-       dodir /usr/include/gentoo
-
-       cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die
-       /* __has_include is an extension, but it's fine, because this is only
-       for Clang anyway. */
-       #if defined __has_include && __has_include (<stdc-predef.h>) && 
!defined(__GLIBC__)
-       # include <stdc-predef.h>
-       #endif
-       EOF
-
-       local fortify_level=$(usex hardened 3 2)
-       # We have to do this because glibc's headers warn if F_S is set
-       # without optimization and that would at the very least be very noisy
-       # during builds and at worst trigger many -Werror builds.
-       cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
-       #ifdef __clang__
-       # pragma clang system_header
-       #endif
-       #ifndef _FORTIFY_SOURCE
-       # if defined(__has_feature)
-       #  define __GENTOO_HAS_FEATURE(x) __has_feature(x)
-       # else
-       #  define __GENTOO_HAS_FEATURE(x) 0
-       # endif
-       #
-       # if defined(__STDC_HOSTED__) && __STDC_HOSTED__ == 1
-       #  define __GENTOO_NOT_FREESTANDING 1
-       # else
-       #  define __GENTOO_NOT_FREESTANDING 0
-       # endif
-       #
-       # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 && 
__GENTOO_NOT_FREESTANDING > 0
-       #  if !defined(__SANITIZE_ADDRESS__) && 
!__GENTOO_HAS_FEATURE(address_sanitizer) && 
!__GENTOO_HAS_FEATURE(memory_sanitizer)
-       #   define _FORTIFY_SOURCE ${fortify_level}
-       #  endif
-       # endif
-       # undef __GENTOO_HAS_FEATURE
-       # undef __GENTOO_NOT_FREESTANDING
-       #endif
-       EOF
-
-       # TODO: Maybe -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST for
-       # non-hardened?
-       if use hardened ; then
-               cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
-                       # Options below are conditional on USE=hardened.
-                       -Xarch_host -D_GLIBCXX_ASSERTIONS
-
-                       # Analogue to GLIBCXX_ASSERTIONS
-                       # 
https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
-                       # 
https://libcxx.llvm.org/Hardening.html#using-hardened-mode
-                       -Xarch_host 
-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
-               EOF
-
-               cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die
-                       # Options below are conditional on USE=hardened.
-               EOF
-       fi
-
-       # We only install config files for supported ABIs because unprefixed 
tools
-       # might be used for crosscompilation where e.g. PIE may not be 
supported.
-       # See bug #912237 and bug #901247. Just ${CHOST} won't do due to bug 
#912685.
-       local abi
-       for abi in $(get_all_abis); do
-               local abi_chost=$(get_abi_CHOST "${abi}")
-               doclang_cfg "${abi_chost}"
-       done
-
-       if use kernel_Darwin; then
-               cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
-                       # Gentoo Prefix on Darwin
-                       -Wl,-search_paths_first
-                       -Wl,-rpath,${EPREFIX}/usr/lib
-                       -L ${EPREFIX}/usr/lib
-                       -isystem ${EPREFIX}/usr/include
-                       -isysroot ${EPREFIX}/MacOSX.sdk
-               EOF
-               if use bootstrap-prefix ; then
-                       # bootstrap-prefix is only set during stage2 of 
bootstrapping
-                       # Prefix, where EPREFIX is set to EPREFIX/tmp.
-                       # Here we need to point it at the future lib dir of the 
stage3's
-                       # EPREFIX.
-                       cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
-                               -Wl,-rpath,${EPREFIX}/../usr/lib
-                       EOF
-               fi
-       fi
-}
-
-pkg_preinst() {
-       if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
-       then
-               local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
-               if [[ -n ${gcc_path} ]]; then
-                       cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
-                               --gcc-install-dir="${gcc_path%%:*}"
-                       EOF
-               fi
-       fi
-}

diff --git a/sys-devel/clang-common/clang-common-20.0.0_pre20240801.ebuild 
b/sys-devel/clang-common/clang-common-20.0.0_pre20240801.ebuild
deleted file mode 100644
index 090a45690818..000000000000
--- a/sys-devel/clang-common/clang-common-20.0.0_pre20240801.ebuild
+++ /dev/null
@@ -1,304 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit bash-completion-r1 llvm.org multilib
-
-DESCRIPTION="Common files shared between multiple slots of clang"
-HOMEPAGE="https://llvm.org/";
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-IUSE="
-       default-compiler-rt default-libcxx default-lld
-       bootstrap-prefix cet hardened llvm-libunwind
-"
-
-PDEPEND="
-       sys-devel/clang:*
-       default-compiler-rt? (
-               sys-devel/clang-runtime[compiler-rt]
-               llvm-libunwind? ( sys-libs/llvm-libunwind[static-libs] )
-               !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
-       )
-       !default-compiler-rt? ( sys-devel/gcc )
-       default-libcxx? ( >=sys-libs/libcxx-${PV}[static-libs] )
-       !default-libcxx? ( sys-devel/gcc )
-       default-lld? ( >=sys-devel/lld-${PV} )
-       !default-lld? ( sys-devel/binutils )
-"
-IDEPEND="
-       !default-compiler-rt? ( sys-devel/gcc-config )
-       !default-libcxx? ( sys-devel/gcc-config )
-"
-
-LLVM_COMPONENTS=( clang/utils )
-llvm.org_set_globals
-
-pkg_pretend() {
-       [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
-
-       local flag missing_flags=()
-       for flag in default-{compiler-rt,libcxx,lld}; do
-               if ! use "${flag}" && has_version "sys-devel/clang[${flag}]"; 
then
-                       missing_flags+=( "${flag}" )
-               fi
-       done
-
-       if [[ ${missing_flags[@]} ]]; then
-               eerror "It seems that you have the following flags set on 
sys-devel/clang:"
-               eerror
-               eerror "  ${missing_flags[*]}"
-               eerror
-               eerror "The default runtimes are now set via flags on 
sys-devel/clang-common."
-               eerror "The build is being aborted to prevent breakage.  Please 
either set"
-               eerror "the respective flags on this ebuild, e.g.:"
-               eerror
-               eerror "  sys-devel/clang-common ${missing_flags[*]}"
-               eerror
-               eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
-               die "Mismatched defaults detected between sys-devel/clang and 
sys-devel/clang-common"
-       fi
-}
-
-_doclang_cfg() {
-       local triple="${1}"
-
-       local tool
-       for tool in ${triple}-clang{,++}; do
-               newins - "${tool}.cfg" <<-EOF
-                       # This configuration file is used by ${tool} driver.
-                       @gentoo-common.cfg
-                       @gentoo-common-ld.cfg
-               EOF
-               if [[ ${triple} == x86_64* ]]; then
-                       cat >> "${ED}/etc/clang/${tool}.cfg" <<-EOF || die
-                               @gentoo-cet.cfg
-                       EOF
-               fi
-       done
-
-       if use kernel_Darwin; then
-               cat >> "${ED}/etc/clang/${triple}-clang++.cfg" <<-EOF || die
-                       -lc++abi
-               EOF
-       fi
-
-       newins - "${triple}-clang-cpp.cfg" <<-EOF
-               # This configuration file is used by the ${triple}-clang-cpp 
driver.
-               @gentoo-common.cfg
-       EOF
-       if [[ ${triple} == x86_64* ]]; then
-               cat >> "${ED}/etc/clang/${triple}-clang-cpp.cfg" <<-EOF || die
-                       @gentoo-cet.cfg
-               EOF
-       fi
-
-       # Install symlinks for triples with other vendor strings since some
-       # programs insist on mangling the triple.
-       local vendor
-       for vendor in gentoo pc unknown; do
-               local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
-               for tool in clang{,++,-cpp}; do
-                       if [[ ! -f 
"${ED}/etc/clang/${vendor_triple}-${tool}.cfg" ]]; then
-                               dosym "${triple}-${tool}.cfg" 
"/etc/clang/${vendor_triple}-${tool}.cfg"
-                       fi
-               done
-       done
-}
-
-doclang_cfg() {
-       local triple="${1}"
-
-       _doclang_cfg ${triple}
-
-       # LLVM may have different arch names in some cases. For example in x86
-       # profiles the triple uses i686, but llvm will prefer i386 if invoked
-       # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
-       # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
-       #
-       # To make sure the correct triples are installed,
-       # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
-       # and compare with CHOST values in profiles.
-
-       local abi=${triple%%-*}
-       case ${abi} in
-               armv4l|armv4t|armv5tel|armv6j|armv7a)
-                       _doclang_cfg ${triple/${abi}/arm}
-                       ;;
-               i686)
-                       _doclang_cfg ${triple/${abi}/i386}
-                       ;;
-               sparc)
-                       _doclang_cfg ${triple/${abi}/sparcel}
-                       ;;
-               sparc64)
-                       _doclang_cfg ${triple/${abi}/sparcv9}
-                       ;;
-       esac
-}
-
-src_install() {
-       newbashcomp bash-autocomplete.sh clang
-
-       insinto /etc/clang
-       newins - gentoo-runtimes.cfg <<-EOF
-               # This file is initially generated by sys-devel/clang-runtime.
-               # It is used to control the default runtimes using by clang.
-
-               --rtlib=$(usex default-compiler-rt compiler-rt libgcc)
-               --unwindlib=$(usex default-compiler-rt libunwind libgcc)
-               --stdlib=$(usex default-libcxx libc++ libstdc++)
-               -fuse-ld=$(usex default-lld lld bfd)
-       EOF
-
-       newins - gentoo-gcc-install.cfg <<-EOF
-               # This file is maintained by gcc-config.
-               # It is used to specify the selected GCC installation.
-       EOF
-
-       newins - gentoo-common.cfg <<-EOF
-               # This file contains flags common to clang, clang++ and 
clang-cpp.
-               @gentoo-runtimes.cfg
-               @gentoo-gcc-install.cfg
-               @gentoo-hardened.cfg
-               # bug #870001
-               -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h"
-       EOF
-
-       # clang-cpp does not like link args being passed to it when directly
-       # invoked, so use a separate configuration file.
-       newins - gentoo-common-ld.cfg <<-EOF
-               # This file contains flags common to clang and clang++
-               @gentoo-hardened-ld.cfg
-       EOF
-
-       # Baseline hardening (bug #851111)
-       newins - gentoo-hardened.cfg <<-EOF
-               # Some of these options are added unconditionally, regardless of
-               # USE=hardened, for parity with sys-devel/gcc.
-               -Xarch_host -fstack-clash-protection
-               -Xarch_host -fstack-protector-strong
-               -fPIE
-               -include "${EPREFIX}/usr/include/gentoo/fortify.h"
-       EOF
-
-       newins - gentoo-cet.cfg <<-EOF
-               -Xarch_host -fcf-protection=$(usex cet full none)
-       EOF
-
-       if use kernel_Darwin; then
-               newins - gentoo-hardened-ld.cfg <<-EOF
-                       # There was -Wl,-z,relro here, but it's not supported 
on Mac
-                       # TODO: investigate whether -bind_at_load or 
-read_only_stubs will do the job
-               EOF
-       else
-               newins - gentoo-hardened-ld.cfg <<-EOF
-                       # Some of these options are added unconditionally, 
regardless of
-                       # USE=hardened, for parity with sys-devel/gcc.
-                       -Wl,-z,relro
-                       -Wl,-z,now
-               EOF
-       fi
-
-       dodir /usr/include/gentoo
-
-       cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die
-       /* __has_include is an extension, but it's fine, because this is only
-       for Clang anyway. */
-       #if defined __has_include && __has_include (<stdc-predef.h>) && 
!defined(__GLIBC__)
-       # include <stdc-predef.h>
-       #endif
-       EOF
-
-       local fortify_level=$(usex hardened 3 2)
-       # We have to do this because glibc's headers warn if F_S is set
-       # without optimization and that would at the very least be very noisy
-       # during builds and at worst trigger many -Werror builds.
-       cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
-       #ifdef __clang__
-       # pragma clang system_header
-       #endif
-       #ifndef _FORTIFY_SOURCE
-       # if defined(__has_feature)
-       #  define __GENTOO_HAS_FEATURE(x) __has_feature(x)
-       # else
-       #  define __GENTOO_HAS_FEATURE(x) 0
-       # endif
-       #
-       # if defined(__STDC_HOSTED__) && __STDC_HOSTED__ == 1
-       #  define __GENTOO_NOT_FREESTANDING 1
-       # else
-       #  define __GENTOO_NOT_FREESTANDING 0
-       # endif
-       #
-       # if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0 && 
__GENTOO_NOT_FREESTANDING > 0
-       #  if !defined(__SANITIZE_ADDRESS__) && 
!__GENTOO_HAS_FEATURE(address_sanitizer) && 
!__GENTOO_HAS_FEATURE(memory_sanitizer)
-       #   define _FORTIFY_SOURCE ${fortify_level}
-       #  endif
-       # endif
-       # undef __GENTOO_HAS_FEATURE
-       # undef __GENTOO_NOT_FREESTANDING
-       #endif
-       EOF
-
-       # TODO: Maybe -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST for
-       # non-hardened?
-       if use hardened ; then
-               cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
-                       # Options below are conditional on USE=hardened.
-                       -Xarch_host -D_GLIBCXX_ASSERTIONS
-
-                       # Analogue to GLIBCXX_ASSERTIONS
-                       # 
https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
-                       # 
https://libcxx.llvm.org/Hardening.html#using-hardened-mode
-                       -Xarch_host 
-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
-               EOF
-
-               cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die
-                       # Options below are conditional on USE=hardened.
-               EOF
-       fi
-
-       # We only install config files for supported ABIs because unprefixed 
tools
-       # might be used for crosscompilation where e.g. PIE may not be 
supported.
-       # See bug #912237 and bug #901247. Just ${CHOST} won't do due to bug 
#912685.
-       local abi
-       for abi in $(get_all_abis); do
-               local abi_chost=$(get_abi_CHOST "${abi}")
-               doclang_cfg "${abi_chost}"
-       done
-
-       if use kernel_Darwin; then
-               cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
-                       # Gentoo Prefix on Darwin
-                       -Wl,-search_paths_first
-                       -Wl,-rpath,${EPREFIX}/usr/lib
-                       -L ${EPREFIX}/usr/lib
-                       -isystem ${EPREFIX}/usr/include
-                       -isysroot ${EPREFIX}/MacOSX.sdk
-               EOF
-               if use bootstrap-prefix ; then
-                       # bootstrap-prefix is only set during stage2 of 
bootstrapping
-                       # Prefix, where EPREFIX is set to EPREFIX/tmp.
-                       # Here we need to point it at the future lib dir of the 
stage3's
-                       # EPREFIX.
-                       cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
-                               -Wl,-rpath,${EPREFIX}/../usr/lib
-                       EOF
-               fi
-       fi
-}
-
-pkg_preinst() {
-       if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
-       then
-               local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
-               if [[ -n ${gcc_path} ]]; then
-                       cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
-                               --gcc-install-dir="${gcc_path%%:*}"
-                       EOF
-               fi
-       fi
-}

Reply via email to