sys-devel/clang-common: Add 17.0.0_pre20230203 snapshot

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2023-02-03 19:35:17 +01:00
parent 5f25c78cbd
commit bf289b03e9
2 changed files with 169 additions and 0 deletions

View File

@@ -1,3 +1,4 @@
DIST llvm-project-08c915fa76ef91efa16df0676ed69e4fb360989f.tar.gz 179571827 BLAKE2B 856ea5787f5b3a0b3e8816ccc1a7016a5a7140da6a61544a9829625255dc7036b321b43421f4b3a21e4f0cd8a36745e5d26cb828a41c49a690ebefdff88a744c SHA512 a83121dfaad3e93bad072557715ff857eb8b912273e3a36ea13c2f6a706aa4a9233398ac56074f2cfb5de49982fb5df5e2893eddbe2fd580a51aa08a03c95e34
DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

View File

@@ -0,0 +1,168 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 llvm.org
DESCRIPTION="Common files shared between multiple slots of clang"
HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0"
KEYWORDS=""
IUSE="
default-compiler-rt default-libcxx default-lld llvm-libunwind
hardened stricter
"
PDEPEND="
sys-devel/clang:*
default-compiler-rt? (
sys-devel/clang-runtime[compiler-rt]
llvm-libunwind? ( sys-libs/llvm-libunwind )
!llvm-libunwind? ( sys-libs/libunwind )
)
!default-compiler-rt? ( sys-devel/gcc )
default-libcxx? ( >=sys-libs/libcxx-${PV} )
!default-libcxx? ( sys-devel/gcc )
default-lld? ( sys-devel/lld )
!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
}
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
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.
-fstack-clash-protection
-fstack-protector-strong
-fPIE
-include "${EPREFIX}/usr/include/gentoo/fortify.h"
EOF
dodir /usr/include/gentoo
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
#ifndef _FORTIFY_SOURCE
#if defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
#define _FORTIFY_SOURCE ${fortify_level}
#endif
#endif
EOF
if use hardened ; then
cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
# Options below are conditional on USE=hardened.
-D_GLIBCXX_ASSERTIONS
# Analogue to GLIBCXX_ASSERTIONS
# https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
-D_LIBCPP_ENABLE_ASSERTIONS=1
EOF
fi
if use stricter; then
newins - gentoo-stricter.cfg <<-EOF
# This file increases the strictness of older clang versions
# to match the newest upstream version.
# clang-16 defaults
-Werror=implicit-function-declaration
-Werror=implicit-int
-Werror=incompatible-function-pointer-types
# constructs banned by C2x
-Werror=deprecated-non-prototype
# deprecated but large blast radius
#-Werror=strict-prototypes
EOF
cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
@gentoo-stricter.cfg
EOF
fi
local tool
for tool in clang{,++,-cpp}; do
newins - "${tool}.cfg" <<-EOF
# This configuration file is used by ${tool} driver.
@gentoo-common.cfg
EOF
done
}
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
}