mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
sci-libs/blis: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
@@ -1,2 +1 @@
|
||||
DIST blis-1.0.tar.gz 15714356 BLAKE2B 7e9b6132ab556adf7ccb2d1bff6c5195eb2f48a9193a6df57d409e25b42f1aaa64f053f97996a6467ad42cbe5848c3689f3e6c501579d5d1083523ca9ed52ce1 SHA512 91cd2a2944762e584f11cb931ba11c4b296e93040b553f105ba8579d748a49cfcb6db8ae2ce1b5a537c0ae88182c9d212a4a5daa757ca4d0a7beee552d2eb55c
|
||||
DIST blis-2.0.tar.gz 15751849 BLAKE2B 386917ece022fccf373bad6a4b488b04d86097f0fb7406b72e9fdd4ecc09747ea2291ec6d56c756461541b811d7f256a1bd6103c883cca5f6479d7822faf62ae SHA512 5b1195533fe951c025b01b5f92d682217a3c8b3b5477ad20cdbf1d3163e7085167d9be7f552f59173dba7798e2dbacf8772374d4250d3db6404b7f7b9ae67916
|
||||
|
||||
@@ -1,183 +0,0 @@
|
||||
# Copyright 2019-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{11..13} )
|
||||
inherit python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="BLAS-like Library Instantiation Software Framework"
|
||||
HOMEPAGE="https://github.com/flame/blis"
|
||||
SRC_URI="https://github.com/flame/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
||||
CPU_USE=(
|
||||
cpu_flags_ppc_{vsx,vsx3}
|
||||
cpu_flags_arm_{neon,v7,v8,sve}
|
||||
cpu_flags_x86_{ssse3,avx,fma3,fma4,avx2,avx512vl}
|
||||
)
|
||||
IUSE="doc eselect-ldso index64 openmp pthread serial static-libs ${CPU_USE[@]}"
|
||||
REQUIRED_USE="?? ( openmp pthread serial )"
|
||||
|
||||
DEPEND="
|
||||
eselect-ldso? (
|
||||
!app-eselect/eselect-cblas
|
||||
>=app-eselect/eselect-blas-0.2
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-lang/perl
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.6.0-blas-provider.patch
|
||||
# to prevent QA Notice: pkg-config files with wrong LDFLAGS detected
|
||||
"${FILESDIR}"/${PN}-0.8.1-pkg-config.patch
|
||||
"${FILESDIR}"/${PN}-0.9.0-rpath.patch
|
||||
"${FILESDIR}"/${PN}-1.0-no-helper-headers.patch
|
||||
# https://github.com/flame/blis/pull/874
|
||||
"${FILESDIR}"/${P}-gcc15.patch
|
||||
)
|
||||
|
||||
get_confname() {
|
||||
local confname=generic
|
||||
if use x86 || use amd64; then
|
||||
use cpu_flags_x86_ssse3 && confname=penryn
|
||||
use cpu_flags_x86_avx && use cpu_flags_x86_fma3 && confname=sandybridge
|
||||
use cpu_flags_x86_avx && use cpu_flags_x86_fma4 && confname=bulldozer
|
||||
use cpu_flags_x86_avx && use cpu_flags_x86_fma4 && use cpu_flags_x86_fma3 && confname=piledriver
|
||||
use cpu_flags_x86_avx2 && confname=haswell
|
||||
use cpu_flags_x86_avx512vl && confname=skx
|
||||
elif use arm || use arm64; then
|
||||
use arm && confname=arm32
|
||||
use arm64 && confname=arm64
|
||||
use cpu_flags_arm_neon && use cpu_flags_arm_v7 && confname=cortexa9
|
||||
use cpu_flags_arm_v8 && confname=cortexa53
|
||||
use cpu_flags_arm_sve && confname=armsve
|
||||
elif use ppc || use ppc64; then
|
||||
confname=power
|
||||
use cpu_flags_ppc_vsx && confname=power7
|
||||
use cpu_flags_ppc_vsx3 && confname=power9
|
||||
fi
|
||||
echo ${confname}
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# This is not an autotools configure file. We don't use econf here.
|
||||
local myconf=(
|
||||
--enable-verbose-make
|
||||
--prefix="${EPREFIX}/usr"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)"
|
||||
$(use_enable static-libs static)
|
||||
--enable-blas
|
||||
--enable-cblas
|
||||
--enable-shared
|
||||
)
|
||||
if use openmp; then
|
||||
myconf+=( -t openmp )
|
||||
elif use pthread; then
|
||||
myconf+=( -t pthreads )
|
||||
else
|
||||
myconf+=( -t no )
|
||||
fi
|
||||
# confname must always come last
|
||||
myconf+=( "$(get_confname)" )
|
||||
|
||||
local -x CC="$(tc-getCC)"
|
||||
local -x AR="$(tc-getAR)"
|
||||
local -x RANLIB="$(tc-getRANLIB)"
|
||||
|
||||
if use index64; then
|
||||
einfo "Configuring ILP64 variant"
|
||||
cp -r "${S}" "${S}-ilp64" || die
|
||||
pushd "${S}-ilp64" >/dev/null || die
|
||||
./configure -b 64 -i 64 "${myconf[@]}" || die
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
einfo "Configuring LP64 variant"
|
||||
./configure "${myconf[@]}" || die
|
||||
}
|
||||
|
||||
emake64() {
|
||||
local overrides=(
|
||||
LIBBLIS=libblis64
|
||||
MK_INCL_DIR_INST="${ED}/usr/include/blis64"
|
||||
)
|
||||
|
||||
emake -C "${S}-ilp64" "${overrides[@]}" "${@}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local -x DEB_LIBBLAS=libblas.so.3
|
||||
local -x DEB_LIBCBLAS=libcblas.so.3
|
||||
local -x LDS_BLAS="${FILESDIR}"/blas.lds
|
||||
local -x LDS_CBLAS="${FILESDIR}"/cblas.lds
|
||||
use index64 && emake64
|
||||
emake
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local -x LD_LIBRARY_PATH="lib/$(get_confname)"
|
||||
emake testblis-fast
|
||||
./testsuite/check-blistest.sh ./output.testsuite || die
|
||||
if use index64; then
|
||||
emake64 testblis-fast
|
||||
./testsuite/check-blistest.sh "${S}-ilp64"/output.testsuite || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libroot=/usr/$(get_libdir)
|
||||
local install_args=(
|
||||
DESTDIR="${D}"
|
||||
# remove weird Makefile configs, they're incorrect for index64
|
||||
# and nothing should be using them anyway
|
||||
MK_SHARE_DIR_INST="${T}/discard"
|
||||
# upstream installs .pc file to share, sigh
|
||||
PC_SHARE_DIR_INST="${ED}${libroot}/pkgconfig"
|
||||
)
|
||||
emake "${install_args[@]}" install
|
||||
if use index64; then
|
||||
emake64 "${install_args[@]}" install
|
||||
# we need to make blis64.pc with proper subst ourselves
|
||||
sed -e 's:blis:&64:' "${ED}${libroot}/pkgconfig"/blis.pc \
|
||||
> "${ED}${libroot}/pkgconfig"/blis64.pc || die
|
||||
fi
|
||||
use doc && dodoc README.md docs/*.md
|
||||
|
||||
if use eselect-ldso; then
|
||||
insinto "${libroot}/blas/blis"
|
||||
doins lib/*/lib{c,}blas.so.3
|
||||
dosym libblas.so.3 "${libroot}/blas/blis/libblas.so"
|
||||
dosym libcblas.so.3 "${libroot}/blas/blis/libcblas.so"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use eselect-ldso || return
|
||||
|
||||
local libdir=$(get_libdir) me="blis"
|
||||
|
||||
# check blas
|
||||
eselect blas add ${libdir} "${EROOT}"/usr/${libdir}/blas/${me} ${me}
|
||||
local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2)
|
||||
if [[ ${current_blas} == "${me}" || -z ${current_blas} ]]; then
|
||||
eselect blas set ${libdir} ${me}
|
||||
elog "Current eselect: BLAS/CBLAS (${libdir}) -> [${me}]."
|
||||
else
|
||||
elog "Current eselect: BLAS/CBLAS (${libdir}) -> [${current_blas}]."
|
||||
elog "To use blas [${me}] implementation, you have to issue (as root):"
|
||||
elog "\t eselect blas set ${libdir} ${me}"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use eselect-ldso && eselect blas validate
|
||||
}
|
||||
@@ -1,139 +0,0 @@
|
||||
# Copyright 2019-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{11..13} )
|
||||
inherit python-any-r1 toolchain-funcs
|
||||
|
||||
DESCRIPTION="BLAS-like Library Instantiation Software Framework"
|
||||
HOMEPAGE="https://github.com/flame/blis"
|
||||
SRC_URI="https://github.com/flame/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
||||
CPU_USE=(
|
||||
cpu_flags_ppc_{vsx,vsx3}
|
||||
cpu_flags_arm_{neon,v7,v8,sve}
|
||||
cpu_flags_x86_{ssse3,avx,fma3,fma4,avx2,avx512vl}
|
||||
)
|
||||
IUSE="doc eselect-ldso openmp pthread serial static-libs 64bit-index ${CPU_USE[@]}"
|
||||
REQUIRED_USE="
|
||||
?? ( openmp pthread serial )
|
||||
?? ( eselect-ldso 64bit-index )"
|
||||
|
||||
DEPEND="
|
||||
eselect-ldso? (
|
||||
!app-eselect/eselect-cblas
|
||||
>=app-eselect/eselect-blas-0.2
|
||||
)"
|
||||
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-lang/perl
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.6.0-blas-provider.patch
|
||||
# to prevent QA Notice: pkg-config files with wrong LDFLAGS detected
|
||||
"${FILESDIR}"/${PN}-0.8.1-pkg-config.patch
|
||||
"${FILESDIR}"/${PN}-0.9.0-rpath.patch
|
||||
"${FILESDIR}"/${PN}-1.0-no-helper-headers.patch
|
||||
# https://github.com/flame/blis/pull/874
|
||||
"${FILESDIR}"/${P}-gcc15.patch
|
||||
)
|
||||
|
||||
get_confname() {
|
||||
local confname=generic
|
||||
if use x86 || use amd64; then
|
||||
use cpu_flags_x86_ssse3 && confname=penryn
|
||||
use cpu_flags_x86_avx && use cpu_flags_x86_fma3 && confname=sandybridge
|
||||
use cpu_flags_x86_avx && use cpu_flags_x86_fma4 && confname=bulldozer
|
||||
use cpu_flags_x86_avx && use cpu_flags_x86_fma4 && use cpu_flags_x86_fma3 && confname=piledriver
|
||||
use cpu_flags_x86_avx2 && confname=haswell
|
||||
use cpu_flags_x86_avx512vl && confname=skx
|
||||
elif use arm || use arm64; then
|
||||
use arm && confname=arm32
|
||||
use arm64 && confname=arm64
|
||||
use cpu_flags_arm_neon && use cpu_flags_arm_v7 && confname=cortexa9
|
||||
use cpu_flags_arm_v8 && confname=cortexa53
|
||||
use cpu_flags_arm_sve && confname=armsve
|
||||
elif use ppc || use ppc64; then
|
||||
confname=power
|
||||
use cpu_flags_ppc_vsx && confname=power7
|
||||
use cpu_flags_ppc_vsx3 && confname=power9
|
||||
fi
|
||||
echo ${confname}
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local BLIS_FLAGS=()
|
||||
# determine flags
|
||||
if use openmp; then
|
||||
BLIS_FLAGS+=( -t openmp )
|
||||
elif use pthread; then
|
||||
BLIS_FLAGS+=( -t pthreads )
|
||||
else
|
||||
BLIS_FLAGS+=( -t no )
|
||||
fi
|
||||
use 64bit-index && BLIS_FLAGS+=( -b 64 -i 64 )
|
||||
|
||||
# This is not an autotools configure file. We don't use econf here.
|
||||
CC="$(tc-getCC)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" ./configure \
|
||||
--enable-verbose-make \
|
||||
--prefix="${BROOT}"/usr \
|
||||
--libdir="${BROOT}"/usr/$(get_libdir) \
|
||||
$(use_enable static-libs static) \
|
||||
--enable-blas \
|
||||
--enable-cblas \
|
||||
"${BLIS_FLAGS[@]}" \
|
||||
--enable-shared \
|
||||
$(get_confname) || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
DEB_LIBBLAS=libblas.so.3 DEB_LIBCBLAS=libcblas.so.3 \
|
||||
LDS_BLAS="${FILESDIR}"/blas.lds LDS_CBLAS="${FILESDIR}"/cblas.lds \
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
LD_LIBRARY_PATH=lib/$(get_confname) emake testblis-fast
|
||||
./testsuite/check-blistest.sh ./output.testsuite || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
use doc && dodoc README.md docs/*.md
|
||||
|
||||
if use eselect-ldso; then
|
||||
insinto /usr/$(get_libdir)/blas/blis
|
||||
doins lib/*/lib{c,}blas.so.3
|
||||
dosym libblas.so.3 usr/$(get_libdir)/blas/blis/libblas.so
|
||||
dosym libcblas.so.3 usr/$(get_libdir)/blas/blis/libcblas.so
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use eselect-ldso || return
|
||||
|
||||
local libdir=$(get_libdir) me="blis"
|
||||
|
||||
# check blas
|
||||
eselect blas add ${libdir} "${EROOT}"/usr/${libdir}/blas/${me} ${me}
|
||||
local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2)
|
||||
if [[ ${current_blas} == "${me}" || -z ${current_blas} ]]; then
|
||||
eselect blas set ${libdir} ${me}
|
||||
elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]."
|
||||
else
|
||||
elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]."
|
||||
elog "To use blas [${me}] implementation, you have to issue (as root):"
|
||||
elog "\t eselect blas set ${libdir} ${me}"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use eselect-ldso && eselect blas validate
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
From 6b970700a6fa352d71e1ea14ca44c5f39ce1c770 Mon Sep 17 00:00:00 2001
|
||||
From: Devin Matthews <damatthews@smu.edu>
|
||||
Date: Tue, 24 Jun 2025 14:45:14 -0500
|
||||
Subject: [PATCH 1/2] Apply temporary fix for gcc 15.
|
||||
|
||||
Details:
|
||||
- As reported in #845, gcc 15 fails to build the haswell
|
||||
gemmsup kernels due to the use of rbp.
|
||||
- As a temporary fix, disable slp-tree-vectorization in just
|
||||
the affected files.
|
||||
- Thanks @loveshack for reporting and @chillenb for the suggested
|
||||
fix.
|
||||
- Eventually, the kernels should be rewritten to avoid using rbp.
|
||||
---
|
||||
kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8m.c | 7 +++++++
|
||||
kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8n.c | 7 +++++++
|
||||
kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16m.c | 7 +++++++
|
||||
kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16n.c | 7 +++++++
|
||||
4 files changed, 28 insertions(+)
|
||||
|
||||
diff --git a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8m.c b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8m.c
|
||||
index 918ca6d46b..e71732de3c 100644
|
||||
--- a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8m.c
|
||||
+++ b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8m.c
|
||||
@@ -33,6 +33,13 @@
|
||||
|
||||
*/
|
||||
|
||||
+// This avoids a known issue with GCC15 ("error: bp cannot be used in asm here", #845).
|
||||
+// Only check for version 15 since this may be fixed in 16 (**fingers crossed**), and also
|
||||
+// make sure the compiler isn't clang since it also confusingly defines __GNUC__
|
||||
+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 15
|
||||
+#pragma GCC optimize("-fno-tree-slp-vectorize")
|
||||
+#endif
|
||||
+
|
||||
#include "blis.h"
|
||||
|
||||
#define BLIS_ASM_SYNTAX_ATT
|
||||
diff --git a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8n.c b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8n.c
|
||||
index 3f49068786..880af4207a 100644
|
||||
--- a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8n.c
|
||||
+++ b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_d6x8n.c
|
||||
@@ -33,6 +33,13 @@
|
||||
|
||||
*/
|
||||
|
||||
+// This avoids a known issue with GCC15 ("error: bp cannot be used in asm here", #845).
|
||||
+// Only check for version 15 since this may be fixed in 16 (**fingers crossed**), and also
|
||||
+// make sure the compiler isn't clang since it also confusingly defines __GNUC__
|
||||
+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 15
|
||||
+#pragma GCC optimize("-fno-tree-slp-vectorize")
|
||||
+#endif
|
||||
+
|
||||
#include "blis.h"
|
||||
|
||||
#define BLIS_ASM_SYNTAX_ATT
|
||||
diff --git a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16m.c b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16m.c
|
||||
index 2b4ee7a9ba..d0814d6d82 100644
|
||||
--- a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16m.c
|
||||
+++ b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16m.c
|
||||
@@ -33,6 +33,13 @@
|
||||
|
||||
*/
|
||||
|
||||
+// This avoids a known issue with GCC15 ("error: bp cannot be used in asm here", #845).
|
||||
+// Only check for version 15 since this may be fixed in 16 (**fingers crossed**), and also
|
||||
+// make sure the compiler isn't clang since it also confusingly defines __GNUC__
|
||||
+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 15
|
||||
+#pragma GCC optimize("-fno-tree-slp-vectorize")
|
||||
+#endif
|
||||
+
|
||||
#include "blis.h"
|
||||
|
||||
#define BLIS_ASM_SYNTAX_ATT
|
||||
diff --git a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16n.c b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16n.c
|
||||
index cc47db8bc1..bc2d783e3b 100644
|
||||
--- a/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16n.c
|
||||
+++ b/kernels/haswell/3/sup/bli_gemmsup_rv_haswell_asm_s6x16n.c
|
||||
@@ -33,6 +33,13 @@
|
||||
|
||||
*/
|
||||
|
||||
+// This avoids a known issue with GCC15 ("error: bp cannot be used in asm here", #845).
|
||||
+// Only check for version 15 since this may be fixed in 16 (**fingers crossed**), and also
|
||||
+// make sure the compiler isn't clang since it also confusingly defines __GNUC__
|
||||
+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 15
|
||||
+#pragma GCC optimize("-fno-tree-slp-vectorize")
|
||||
+#endif
|
||||
+
|
||||
#include "blis.h"
|
||||
|
||||
#define BLIS_ASM_SYNTAX_ATT
|
||||
|
||||
@@ -31,6 +31,5 @@
|
||||
<flag name="pthread">Use pthread threadding model</flag>
|
||||
<flag name="serial">Use no threadding model</flag>
|
||||
<flag name="eselect-ldso">Enable runtime library switching by eselect and ld.so.</flag>
|
||||
<flag name="64bit-index">Enable 64bit array indexing, incompatible with runtime switching</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
||||
Reference in New Issue
Block a user