diff --git a/llvm-core/clang-linker-config/clang-linker-config-20.ebuild b/llvm-core/clang-linker-config/clang-linker-config-20.ebuild new file mode 100644 index 0000000000000..c0040174baf91 --- /dev/null +++ b/llvm-core/clang-linker-config/clang-linker-config-20.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Default linker configuration for clang" +HOMEPAGE="https://clang.llvm.org/" +S=${WORKDIR} + +LICENSE="public-domain" +SLOT="${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos" +IUSE="default-lld" + +RDEPEND=" + default-lld? ( llvm-core/lld:${PV} ) + !default-lld? ( sys-devel/binutils ) +" + +src_install() { + insinto "/etc/clang/${SLOT}" + newins - gentoo-linker.cfg <<-EOF + # This file is initially generated by ${CATEGORY}/${PN}. + # It is used to control the default linker used by clang. + + -fuse-ld=$(usex default-lld lld bfd) + EOF +} diff --git a/llvm-core/clang-linker-config/clang-linker-config-21.ebuild b/llvm-core/clang-linker-config/clang-linker-config-21.ebuild new file mode 100644 index 0000000000000..c0040174baf91 --- /dev/null +++ b/llvm-core/clang-linker-config/clang-linker-config-21.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Default linker configuration for clang" +HOMEPAGE="https://clang.llvm.org/" +S=${WORKDIR} + +LICENSE="public-domain" +SLOT="${PV}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos" +IUSE="default-lld" + +RDEPEND=" + default-lld? ( llvm-core/lld:${PV} ) + !default-lld? ( sys-devel/binutils ) +" + +src_install() { + insinto "/etc/clang/${SLOT}" + newins - gentoo-linker.cfg <<-EOF + # This file is initially generated by ${CATEGORY}/${PN}. + # It is used to control the default linker used by clang. + + -fuse-ld=$(usex default-lld lld bfd) + EOF +} diff --git a/llvm-core/clang-linker-config/clang-linker-config-22.ebuild b/llvm-core/clang-linker-config/clang-linker-config-22.ebuild new file mode 100644 index 0000000000000..8954763de264b --- /dev/null +++ b/llvm-core/clang-linker-config/clang-linker-config-22.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Default linker configuration for clang" +HOMEPAGE="https://clang.llvm.org/" +S=${WORKDIR} + +LICENSE="public-domain" +SLOT="${PV}" +IUSE="default-lld" + +RDEPEND=" + default-lld? ( llvm-core/lld:${PV} ) + !default-lld? ( sys-devel/binutils ) +" + +src_install() { + insinto "/etc/clang/${SLOT}" + newins - gentoo-linker.cfg <<-EOF + # This file is initially generated by ${CATEGORY}/${PN}. + # It is used to control the default linker used by clang. + + -fuse-ld=$(usex default-lld lld bfd) + EOF +} diff --git a/llvm-core/clang-linker-config/metadata.xml b/llvm-core/clang-linker-config/metadata.xml new file mode 100644 index 0000000000000..13b40c5f71d12 --- /dev/null +++ b/llvm-core/clang-linker-config/metadata.xml @@ -0,0 +1,17 @@ + + + + + vadorovsky@protonmail.com + Michal Rostecki + + + llvm@gentoo.org + + + Use lld as the default linker for clang + + + llvm/llvm-project + + diff --git a/metadata/stabilization-groups/llvm.group b/metadata/stabilization-groups/llvm.group index 98b17dae62be2..caa0d6c619e51 100644 --- a/metadata/stabilization-groups/llvm.group +++ b/metadata/stabilization-groups/llvm.group @@ -24,6 +24,7 @@ llvm-runtimes/libcxx llvm-runtimes/libgcc llvm-runtimes/openmp llvm-runtimes/offload +llvm-core/clang-linker-config llvm-core/clang-runtime llvm-core/libclc llvm-runtimes/libatomic-stub