public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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