commit: 7b55c828e5df46717ed9eaecd18598eaaacab856 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Fri Mar 11 12:31:04 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Mar 11 12:31:04 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b55c828
sys-fs/zfs-kmod: add Clang logic The needed patch made its way upstream but we need a small amount of logic in the ebuild to accommodate it fully. Bug: https://github.com/openzfs/zfs/pull/13046 Closes: https://bugs.gentoo.org/814194 Thanks-to: Peter Levine <plevine457 <AT> gmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild | 18 ++++++++++++++++++ sys-fs/zfs-kmod/zfs-kmod-9999.ebuild | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild index 2c6ab28bcfde..cb47cb1d7d8b 100644 --- a/sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild +++ b/sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild @@ -111,6 +111,24 @@ pkg_setup() { kernel_is -ge 3 10 || die "Linux 3.10 or newer required" + if tc-is-clang ; then + # See bug #814194 + ewarn "Warning: building ${PN} with LLVM/Clang is experimental!" + export KERNEL_CC="$(tc-getBUILD_CC)" + + if tc-ld-is-lld ; then + export KERNEL_LD="$(tc-getBUILD_LD)" + + KERNEL_LLVM=1 + + local tool + for tool in AR NM STRIP OBJCOPY READELF; do + [[ $(tc-getBUILD_${tool}) != *llvm-${tool,,} ]] && KERNEL_LLVM=0 + done + export KERNEL_LLVM + fi + fi + linux-mod_pkg_setup } diff --git a/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild b/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild index 2c6ab28bcfde..cb47cb1d7d8b 100644 --- a/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild +++ b/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild @@ -111,6 +111,24 @@ pkg_setup() { kernel_is -ge 3 10 || die "Linux 3.10 or newer required" + if tc-is-clang ; then + # See bug #814194 + ewarn "Warning: building ${PN} with LLVM/Clang is experimental!" + export KERNEL_CC="$(tc-getBUILD_CC)" + + if tc-ld-is-lld ; then + export KERNEL_LD="$(tc-getBUILD_LD)" + + KERNEL_LLVM=1 + + local tool + for tool in AR NM STRIP OBJCOPY READELF; do + [[ $(tc-getBUILD_${tool}) != *llvm-${tool,,} ]] && KERNEL_LLVM=0 + done + export KERNEL_LLVM + fi + fi + linux-mod_pkg_setup }
