* [gentoo-commits] repo/proj/guru:master commit in: sys-devel/clang-bloomberg-p2996/
@ 2025-07-22 14:14 David Roman
0 siblings, 0 replies; 3+ messages in thread
From: David Roman @ 2025-07-22 14:14 UTC (permalink / raw
To: gentoo-commits
commit: 469da3d63e4123bf12de34a1ec3543f489b1d88a
Author: Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail <DOT> com>
AuthorDate: Tue Jul 22 09:25:25 2025 +0000
Commit: David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Tue Jul 22 09:45:16 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=469da3d6
sys-devel/clang-bloomberg-p2996: minor tweaks
Signed-off-by: Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail.com>
.../clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild | 12 ++++++------
sys-devel/clang-bloomberg-p2996/metadata.xml | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild b/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild
index 83a1b2a15d..edfa2f9645 100644
--- a/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild
+++ b/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild
@@ -16,7 +16,7 @@ EGIT_REPO_URI="https://github.com/bloomberg/clang-p2996.git"
EGIT_BRANCH="p2996"
ALL_LLVM_TARGETS="AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai LoongArch M68k MSP430 Mips NVPTX PowerPC RISCV SPIRV Sparc SystemZ VE WebAssembly +X86 XCore Xtensa"
-IUSE="+debug +default-reflection-latest-on +pie"
+IUSE="+debug +default-reflection-latest +pie"
for target in ${ALL_LLVM_TARGETS}; do
IUSE+=" ${target%${target#+}}llvm_targets_${target#+}"
done
@@ -37,7 +37,7 @@ src_prepare() {
mkdir -p x/y || die
BUILD_DIR=${WORKDIR}/x/y/clang
- use default-reflection-latest-on && eapply "${FILESDIR}/enable-reflection-latest.patch"
+ use default-reflection-latest && eapply "${FILESDIR}/enable-reflection-latest.patch"
cmake_src_prepare
@@ -73,7 +73,7 @@ src_configure() {
-DLLVM_LINK_LLVM_DYLIB=ON
-DLLVM_ENABLE_PROJECTS="clang"
-DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx"
- -DLLVM_TARGETS_TO_BUILD="$(IFS=';' ; echo "${targets[*]}")"
+ -DLLVM_TARGETS_TO_BUILD="$(IFS=';'; echo "${targets[*]}")"
-DLLVM_INCLUDE_BENCHMARKS=OFF
-DLLVM_INCLUDE_TESTS=OFF
-DLLVM_BUILD_TESTS=OFF
@@ -95,7 +95,7 @@ src_configure() {
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF
-DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang/bloomberg-p2996"
- -DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang-bloomberg-p2996"
+ -DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang"
# relative to bindir
-DCLANG_RESOURCE_DIR="../../../../lib/clang/bloomberg-p2996"
-DCLANG_LINK_CLANG_DYLIB=ON
@@ -227,8 +227,8 @@ src_install() {
pkg_postinst() {
elog "Binaries are installed with a 'bloomberg-p2996-' prefix,"
- elog "e.g., bloomberg-p2996-clang++."
- use default-reflection-latest-on && \
+ elog "e.g.: bloomberg-p2996-clang++"
+ use default-reflection-latest && \
elog "Pass -fno-reflection-latest to disable reflection support." || \
elog "Pass -freflection-latest to enable reflection support."
}
diff --git a/sys-devel/clang-bloomberg-p2996/metadata.xml b/sys-devel/clang-bloomberg-p2996/metadata.xml
index aedbaba09c..e686d41556 100644
--- a/sys-devel/clang-bloomberg-p2996/metadata.xml
+++ b/sys-devel/clang-bloomberg-p2996/metadata.xml
@@ -6,7 +6,7 @@
<name>Florian Albrechtskirchinger</name>
</maintainer>
<use>
- <flag name="default-reflection-latest-on">Defaults -freflection-latest to on.</flag>
+ <flag name="default-reflection-latest">Defaults -freflection-latest to on.</flag>
</use>
<upstream>
<remote-id type="github">bloomberg/clang-p2996</remote-id>
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] repo/proj/guru:master commit in: sys-devel/clang-bloomberg-p2996/
@ 2025-08-18 19:53 David Roman
0 siblings, 0 replies; 3+ messages in thread
From: David Roman @ 2025-08-18 19:53 UTC (permalink / raw
To: gentoo-commits
commit: f9f2a3e88ca5bb8425bfc4f9910fa89fb60e8b6e
Author: Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail <DOT> com>
AuthorDate: Mon Aug 18 16:43:33 2025 +0000
Commit: David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Mon Aug 18 16:48:53 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=f9f2a3e8
sys-devel/clang-bloomberg-p2996: add 21.0.0_p20250702
Signed-off-by: Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail.com>
sys-devel/clang-bloomberg-p2996/Manifest | 1 +
.../clang-bloomberg-p2996-21.0.0_p20250702.ebuild | 241 +++++++++++++++++++++
2 files changed, 242 insertions(+)
diff --git a/sys-devel/clang-bloomberg-p2996/Manifest b/sys-devel/clang-bloomberg-p2996/Manifest
new file mode 100644
index 0000000000..6c556cd4b9
--- /dev/null
+++ b/sys-devel/clang-bloomberg-p2996/Manifest
@@ -0,0 +1 @@
+DIST clang-bloomberg-p2996-21.0.0_p20250702.tar.gz 240748568 BLAKE2B 07d1e5dfab32031ddbc5f7f86a7cfef9f751c7db71af1aea8c87bfb9a4819c5f47907d2c1a35fb929f28974df1413d394a6cef35324b6dc49e224ae3d6b4afe8 SHA512 f9304170c1f139e25fa17ba20eeb39e4612eedd853b7889d194fd526081c6a3eff05077bb9ae954360ee600b7419a8d63cb9171bcac8ba8694ae62b0413f891c
diff --git a/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-21.0.0_p20250702.ebuild b/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-21.0.0_p20250702.ebuild
new file mode 100644
index 0000000000..59c9b74cfe
--- /dev/null
+++ b/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-21.0.0_p20250702.ebuild
@@ -0,0 +1,241 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake prefix python-utils-r1
+
+DESCRIPTION="Clang fork implementing experimental support for P2996 (Reflection for C++26)"
+HOMEPAGE="https://github.com/bloomberg/clang-p2996"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD MIT public-domain rc"
+SLOT="0"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/bloomberg/clang-p2996.git"
+ EGIT_BRANCH="p2996"
+else
+ GIT_COMMIT="d77eff1cbd78fd065668acf93b1f5f400d39134d"
+ SRC_URI="https://github.com/bloomberg/clang-p2996/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/clang-p2996-${GIT_COMMIT}"
+ KEYWORDS="~amd64"
+fi
+
+ALL_LLVM_TARGETS="AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai LoongArch M68k MSP430 Mips NVPTX PowerPC RISCV SPIRV Sparc SystemZ VE WebAssembly +X86 XCore Xtensa"
+IUSE="+debug +default-reflection-latest +pie"
+for target in ${ALL_LLVM_TARGETS}; do
+ IUSE+=" ${target%${target#+}}llvm_targets_${target#+}"
+done
+
+# TODO
+RDEPEND="sys-libs/zlib:0="
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/unknown-reflection.patch"
+ "${FILESDIR}/uninitialized.patch"
+)
+
+CMAKE_USE_DIR="$S/llvm"
+
+src_prepare() {
+ # create extra parent dir for relative CLANG_RESOURCE_DIR access
+ mkdir -p x/y || die
+ BUILD_DIR=${WORKDIR}/x/y/clang
+
+ use default-reflection-latest && eapply "${FILESDIR}/enable-reflection-latest.patch"
+
+ cmake_src_prepare
+
+ # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
+ eprefixify \
+ clang/lib/Lex/InitHeaderSearch.cpp \
+ clang/lib/Driver/ToolChains/Darwin.cpp || die
+
+ if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
+ sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" clang/lib/Driver/ToolChains/Linux.cpp || die
+ fi
+}
+
+src_configure() {
+ local targets=()
+ for target in ${ALL_LLVM_TARGETS}; do
+ use llvm_targets_${target#+} && targets+=("${target#+}")
+ done
+ if [ ${#targets[@]} -eq 0 ]; then
+ die "At least one LLVM target must be enabled"
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
+ -DCMAKE_CXX_COMPILER_TARGET="${CHOST}"
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/bloomberg-p2996"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DLLVM_LINK_LLVM_DYLIB=ON
+ -DLLVM_ENABLE_PROJECTS="clang"
+ -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx"
+ -DLLVM_TARGETS_TO_BUILD="$(IFS=';'; echo "${targets[*]}")"
+ -DLLVM_INCLUDE_BENCHMARKS=OFF
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_BUILD_TESTS=OFF
+ -DLLVM_INSTALL_GTEST=OFF
+
+ -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_USE_COMPILER_RT=OFF
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
+
+ -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang/bloomberg-p2996"
+ -DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang"
+ # relative to bindir
+ -DCLANG_RESOURCE_DIR="../../../../lib/clang/bloomberg-p2996"
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ -DCLANG_INCLUDE_TESTS=OFF
+
+ -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
+ -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ -DOCAMLFIND=NO
+ )
+
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in clang{,++,-cpp}; do
+ newins - "${triple}-${tool}.cfg" <<-EOF
+ # This configuration file is used by ${triple}-${tool} driver.
+ @../${triple}-${tool}.cfg
+ @gentoo-plugins.cfg
+ @gentoo-runtimes.cfg
+ EOF
+
+ if [[ ! -f "${ED}/etc/clang/bloomberg-p2996/bloomberg-p2996-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/bloomberg-p2996/bloomberg-p2996-${tool}.cfg"
+ fi
+ done
+
+ # 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/bloomberg-p2996/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/bloomberg-p2996/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ #local triple=$(get_abi_CHOST "${abi}")
+ local triple=${CHOST}
+
+ _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() {
+ cmake_src_install
+
+ # Rename programs and update symlinks
+ cd "${D}/usr/lib/llvm/bloomberg-p2996/bin" || die
+ for file in *; do
+ if [[ -f "${file}" && -x "${file}" && ! -L "${file}" ]]; then
+ # Rename regular, executable files
+ mv "${file}" "bloomberg-p2996-${file}" || die "Failed to rename ${file}"
+ elif [[ -L "${file}" ]]; then
+ # Update symlink to point to renamed target
+ local target
+ target=$(readlink "${file}") || die "Failed to read symlink ${file}"
+ ln -sf "bloomberg-p2996-${target}" "bloomberg-p2996-${file}" || die "Failed to update symlink ${file}"
+ rm "${file}" || die "Failed to remove original symlink ${file}"
+ fi
+ done
+
+ local ldpath="${EPREFIX}/usr/lib/llvm/bloomberg-p2996/$(get_libdir)"
+ newenvd - "60llvm-bloomberg-p2996" <<-_EOF_
+ PATH="${EPREFIX}/usr/lib/llvm/bloomberg-p2996/bin"
+ # we need to duplicate it in ROOTPATH for Portage to respect...
+ ROOTPATH="${EPREFIX}/usr/lib/llvm/bloomberg-p2996/bin"
+ LDPATH="${ldpath}:${ldpath}/${CHOST}"
+ _EOF_
+
+ insinto "/etc/clang/bloomberg-p2996"
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by sys-devel/clang-bloomberg-p2996::guru.
+ # It is used to control the default runtimes using by clang.
+
+ --rtlib=libgcc
+ --unwindlib=libgcc
+ --stdlib=libc++
+ -fuse-ld=bfd
+ -L${ldpath}/${CHOST}
+ EOF
+ newins - gentoo-plugins.cfg <<-EOF
+ # This file is used to load optional LLVM plugins.
+ EOF
+
+ doclang_cfg
+
+ rm -r "${D}/usr/share/man" || die
+}
+
+pkg_postinst() {
+ elog "Binaries are installed with a 'bloomberg-p2996-' prefix,"
+ elog "e.g.: bloomberg-p2996-clang++"
+ use default-reflection-latest && \
+ elog "Pass -fno-reflection-latest to disable reflection support." || \
+ elog "Pass -freflection-latest to enable reflection support."
+}
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] repo/proj/guru:master commit in: sys-devel/clang-bloomberg-p2996/
@ 2025-08-18 19:53 David Roman
0 siblings, 0 replies; 3+ messages in thread
From: David Roman @ 2025-08-18 19:53 UTC (permalink / raw
To: gentoo-commits
commit: bb992e18c7d71ae9a8f47d4ed1d0c019001514ad
Author: Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail <DOT> com>
AuthorDate: Mon Aug 18 16:42:54 2025 +0000
Commit: David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Mon Aug 18 16:48:53 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=bb992e18
sys-devel/clang-bloomberg-p2996: prepare ebuild for non-live version
Signed-off-by: Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail.com>
.../clang-bloomberg-p2996-9999.ebuild | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild b/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild
index edfa2f9645..b39693d5f2 100644
--- a/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild
+++ b/sys-devel/clang-bloomberg-p2996/clang-bloomberg-p2996-9999.ebuild
@@ -3,17 +3,24 @@
EAPI=8
-inherit cmake git-r3 prefix python-utils-r1
+inherit cmake prefix python-utils-r1
DESCRIPTION="Clang fork implementing experimental support for P2996 (Reflection for C++26)"
HOMEPAGE="https://github.com/bloomberg/clang-p2996"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD MIT public-domain rc"
SLOT="0"
-KEYWORDS=""
-EGIT_REPO_URI="https://github.com/bloomberg/clang-p2996.git"
-EGIT_BRANCH="p2996"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/bloomberg/clang-p2996.git"
+ EGIT_BRANCH="p2996"
+else
+ GIT_COMMIT=""
+ SRC_URI="https://github.com/bloomberg/clang-p2996/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/clang-p2996-${GIT_COMMIT}"
+ KEYWORDS="~amd64"
+fi
ALL_LLVM_TARGETS="AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai LoongArch M68k MSP430 Mips NVPTX PowerPC RISCV SPIRV Sparc SystemZ VE WebAssembly +X86 XCore Xtensa"
IUSE="+debug +default-reflection-latest +pie"
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-08-18 19:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-22 14:14 [gentoo-commits] repo/proj/guru:master commit in: sys-devel/clang-bloomberg-p2996/ David Roman
-- strict thread matches above, loose matches on Subject: below --
2025-08-18 19:53 David Roman
2025-08-18 19:53 David Roman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox