From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: llvm-core/clang-common/
Date: Sat, 24 May 2025 11:56:44 +0000 (UTC) [thread overview]
Message-ID: <1748087780.daa67bb70df6be6c74e891a8e1482b4727a94463.mgorny@gentoo> (raw)
commit: daa67bb70df6be6c74e891a8e1482b4727a94463
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 24 10:56:36 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 24 11:56:20 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=daa67bb7
llvm-core/clang-common: Add 21.0.0_pre20250523 snapshot
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
llvm-core/clang-common/Manifest | 1 +
.../clang-common-21.0.0_pre20250523.ebuild | 314 +++++++++++++++++++++
2 files changed, 315 insertions(+)
diff --git a/llvm-core/clang-common/Manifest b/llvm-core/clang-common/Manifest
index 54ce25c1212d..2fc5f4eff653 100644
--- a/llvm-core/clang-common/Manifest
+++ b/llvm-core/clang-common/Manifest
@@ -10,5 +10,6 @@ DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818bef
DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
DIST llvm-project-20.1.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
+DIST llvm-project-7dc7c155251c0008d5d59b84f0c9056365740f11.tar.gz 235921149 BLAKE2B 2867e313cd25fee6975da9bf65365fa51ed8780f3f8fc95983fb6e8f5b2c38c6d7f75a386b0ec2d74bafad74472973f4e4e603a5a0754465ac2b75942b8e90c6 SHA512 f8bc383ff2a1af836357150efa5728c7df3cd862f56ffaf12b5fc56ef631f1048276ff00b89fcf4d224576fa1eda9811d971886aae0855a4d29178060eb89a49
DIST llvm-project-aaaae99663dbb220c6c27fa9cacf93fcb8f20e7c.tar.gz 235477577 BLAKE2B 46a3b7863cdfde75045dfcab95f8c9eee21f8ce80cee700284bc174adbb4038f23bba3b15635c88c2723ed0d20e6fddcf43c92b9e540c885af48e81bfa8c82aa SHA512 bf8e7f28622f91da57698220fca592105d109c38801b5e0312f5e290bca1ae32ef393179cfe912c194dbf85ece9bd6ee63b587157b0fcd6007bbaff3324e77ed
DIST llvm-project-fcb4bda9dcfcdb64d8b069e8416c75d7a1a62e52.tar.gz 233149231 BLAKE2B 95a7a012a1e747afcf83ace3785c8ef6a3e10f6075e59eb1c5b077cc9edae244b648f341bc0ac6a45b2afc8f7ffe130a90a741a04465523f30f8322566386703 SHA512 b46f0c90a1c56750cada24183ca382b267a2d2faa0db7d77a8bdd4e94e6303e57d565cf85447b3c0e0efdd3750efef1e10e8ce6f1fe8f1ae10ee31d25ddf3fb7
diff --git a/llvm-core/clang-common/clang-common-21.0.0_pre20250523.ebuild b/llvm-core/clang-common/clang-common-21.0.0_pre20250523.ebuild
new file mode 100644
index 000000000000..af6e46af4529
--- /dev/null
+++ b/llvm-core/clang-common/clang-common-21.0.0_pre20250523.ebuild
@@ -0,0 +1,314 @@
+# Copyright 1999-2025 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="
+ default-compiler-rt? (
+ llvm-core/clang-runtime:${LLVM_MAJOR}[compiler-rt]
+ llvm-libunwind? ( llvm-runtimes/libunwind[static-libs] )
+ !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
+ )
+ !default-compiler-rt? ( sys-devel/gcc )
+ default-libcxx? ( >=llvm-runtimes/libcxx-${PV}[static-libs] )
+ !default-libcxx? ( sys-devel/gcc )
+ default-lld? ( >=llvm-core/lld-${PV} )
+ !default-lld? ( sys-devel/binutils )
+"
+# enforce flags on clang-runtime as well to aid transition
+PDEPEND+="
+ llvm-core/clang-runtime[default-compiler-rt(-)?,default-libcxx(-)?,default-lld(-)?,llvm-libunwind(-)?]
+"
+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 "llvm-core/clang[${flag}]"; then
+ missing_flags+=( "${flag}" )
+ fi
+ done
+
+ if [[ ${missing_flags[@]} ]]; then
+ eerror "It seems that you have the following flags set on llvm-core/clang:"
+ eerror
+ eerror " ${missing_flags[*]}"
+ eerror
+ eerror "The default runtimes are now set via flags on llvm-core/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 " llvm-core/clang-common ${missing_flags[*]}"
+ eerror
+ eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
+ die "Mismatched defaults detected between llvm-core/clang and llvm-core/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 llvm-core/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(__OPTIMIZE__) || __OPTIMIZE__ == 0
+ # elif !defined(__STDC_HOSTED__) || __STDC_HOSTED__ != 1
+ # elif defined(__SANITIZE_ADDRESS__)
+ # elif __GENTOO_HAS_FEATURE(address_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(hwaddress_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(memory_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(numerical_stability_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(realtime_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(thread_sanitizer)
+ # else
+ # define _FORTIFY_SOURCE ${fortify_level}
+ # endif
+ #
+ # undef __GENTOO_HAS_FEATURE
+ #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
+ 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
+ -Wl,-L,${EPREFIX}/../usr/lib
+ -isystem ${EPREFIX}/../usr/include
+ EOF
+ fi
+ # Using -Wl,-L instead of -L to trick compiler driver to put it
+ # after -isysroot's internal -L
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/usr/lib
+ -Wl,-L,${EPREFIX}/usr/lib
+ -isystem ${EPREFIX}/usr/include
+ -isysroot ${EPREFIX}/MacOSX.sdk
+ EOF
+ 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
+}
next reply other threads:[~2025-05-24 11:56 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-24 11:56 Michał Górny [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-10-08 17:28 [gentoo-commits] repo/gentoo:master commit in: llvm-core/clang-common/ Michał Górny
2025-10-04 9:16 Michał Górny
2025-10-03 11:43 Michał Górny
2025-10-03 11:39 Michał Górny
2025-10-01 6:35 Michał Górny
2025-09-24 16:18 Michał Górny
2025-09-24 2:27 Michał Górny
2025-09-21 2:44 Michał Górny
2025-09-10 11:47 Michał Górny
2025-09-07 19:47 Michał Górny
2025-08-31 13:28 Michał Górny
2025-08-27 12:28 Michał Górny
2025-08-26 19:38 Michał Górny
2025-08-24 19:02 Arthur Zamarin
2025-08-24 18:51 Arthur Zamarin
2025-08-24 18:51 Arthur Zamarin
2025-08-21 8:22 Michał Górny
2025-08-21 8:18 Michał Górny
2025-08-16 13:51 Michał Górny
2025-08-12 17:09 Michał Górny
2025-08-09 9:47 Michał Górny
2025-08-02 10:29 Michał Górny
2025-07-29 19:04 Michał Górny
2025-07-26 19:53 Michał Górny
2025-07-22 9:20 Michał Górny
2025-07-20 14:15 Michał Górny
2025-07-20 8:24 Sam James
2025-07-19 6:50 Michał Górny
2025-07-13 20:03 Michał Górny
2025-07-09 18:49 Michał Górny
2025-06-28 15:03 Michał Górny
2025-06-28 14:55 Michał Górny
2025-06-14 14:24 Sam James
2025-06-14 11:02 Arthur Zamarin
2025-06-14 7:15 Michał Górny
2025-06-07 18:05 Michał Górny
2025-05-28 11:54 Michał Górny
2025-05-28 10:50 Michał Górny
2025-05-17 12:59 Michał Górny
2025-05-17 5:31 Michał Górny
2025-05-16 9:31 Michał Górny
2025-05-10 13:03 Michał Górny
2025-05-03 19:42 Michał Górny
2025-05-03 10:07 Michał Górny
2025-04-26 15:59 Michał Górny
2025-04-20 11:50 Michał Górny
2025-04-19 6:29 Michał Górny
2025-04-16 18:34 Michał Górny
2025-04-15 10:15 Michał Górny
2025-04-12 10:21 Michał Górny
2025-04-12 10:19 Arthur Zamarin
2025-04-12 8:59 Michał Górny
2025-04-12 4:57 Michał Górny
2025-04-05 12:24 Michał Górny
2025-04-03 11:29 Michał Górny
2025-03-29 10:27 Michał Górny
2025-03-23 13:46 Arthur Zamarin
2025-03-23 13:46 Arthur Zamarin
2025-03-22 10:43 Michał Górny
2025-03-20 16:50 Michał Górny
2025-03-17 20:13 Michał Górny
2025-03-16 17:41 Michał Górny
2025-03-11 14:56 Michał Górny
2025-03-05 13:30 Michał Górny
2025-03-05 13:24 Michał Górny
2025-03-05 13:05 Michał Górny
2025-03-05 10:13 Michał Górny
2025-03-05 6:25 Michał Górny
2025-03-01 12:58 Michał Górny
2025-03-01 8:34 Michał Górny
2025-02-26 18:55 Michał Górny
2025-02-25 14:03 Michał Górny
2025-02-22 15:19 Michał Górny
2025-02-15 7:19 Michał Górny
2025-02-13 7:53 Michał Górny
2025-02-11 11:29 Michał Górny
2025-02-08 11:51 Michał Górny
2025-02-07 20:08 Arthur Zamarin
2025-02-02 18:25 Michał Górny
2025-02-01 13:15 Michał Górny
2025-02-01 8:05 Michał Górny
2025-01-31 21:51 Michał Górny
2025-01-29 21:28 Sam James
2025-01-29 21:25 Sam James
2025-01-25 13:33 Michał Górny
2025-01-22 19:15 Michał Górny
2025-01-18 15:09 Michał Górny
2025-01-18 8:21 Michał Górny
2025-01-15 4:24 Michał Górny
2025-01-11 18:12 Michał Górny
2025-01-04 15:28 Michał Górny
2024-12-28 19:35 Michał Górny
2024-12-27 21:25 Michał Górny
2024-12-21 10:28 Michał Górny
2024-12-17 21:37 Michał Górny
2024-12-16 5:57 Michał Górny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1748087780.daa67bb70df6be6c74e891a8e1482b4727a94463.mgorny@gentoo \
--to=mgorny@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox