* [gentoo-commits] repo/gentoo:master commit in: sci-libs/blis/files/, sci-libs/blis/
@ 2019-06-26 6:07 Benda XU
0 siblings, 0 replies; 4+ messages in thread
From: Benda XU @ 2019-06-26 6:07 UTC (permalink / raw
To: gentoo-commits
commit: 914aebf44db94fad75de5781a770ffdc97cd38a3
Author: Mo Zhou <cdluminate <AT> gmail <DOT> com>
AuthorDate: Wed Jun 26 02:41:35 2019 +0000
Commit: Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Wed Jun 26 06:06:10 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=914aebf4
sci-libs/blis: new BLIS package as an BLAS/CBLAS alternative.
Closes: https://github.com/gentoo/gentoo/pull/12322
Signed-off-by: Mo Zhou <cdluminate <AT> gmail.com>
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>
sci-libs/blis/Manifest | 1 +
sci-libs/blis/blis-0.5.2.ebuild | 107 ++++++++++++
sci-libs/blis/files/blas.lds | 15 ++
sci-libs/blis/files/blis-0.5.2-blas-provider.patch | 13 ++
sci-libs/blis/files/blis-0.5.2-gh313.patch | 187 +++++++++++++++++++++
sci-libs/blis/files/blis-0.5.2-rpath.patch | 13 ++
sci-libs/blis/files/cblas.lds | 15 ++
sci-libs/blis/metadata.xml | 30 ++++
8 files changed, 381 insertions(+)
diff --git a/sci-libs/blis/Manifest b/sci-libs/blis/Manifest
new file mode 100644
index 00000000000..7d42eadf47b
--- /dev/null
+++ b/sci-libs/blis/Manifest
@@ -0,0 +1 @@
+DIST blis-0.5.2.tar.gz 3502383 BLAKE2B b09fda20711086c8bde0d4efc3f3c9b0f6072e1ddb8bd2846465877f0353cced27548abe1239b6a042fe655e85e4b7b3c960322e39b2c733866b8e17777718bd SHA512 4f91a7834ef0ed39544dd21856814467416a222240050cca323917b0fc61b9201ae4dbd109aa687cdecb27ddee5d6bf4510ef023e1c1dc73599faef0482d3d04
diff --git a/sci-libs/blis/blis-0.5.2.ebuild b/sci-libs/blis/blis-0.5.2.ebuild
new file mode 100644
index 00000000000..939d0b608d6
--- /dev/null
+++ b/sci-libs/blis/blis-0.5.2.ebuild
@@ -0,0 +1,107 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit eutils
+
+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 ~ppc64 ~x86"
+IUSE="openmp pthread serial static-libs eselect-ldso doc 64bit-index"
+REQUIRED_USE="?? ( openmp pthread serial ) ?? ( eselect-ldso 64bit-index )"
+
+RDEPEND="eselect-ldso? ( !app-eselect/eselect-cblas
+ >=app-eselect/eselect-blas-0.2 )"
+
+DEPEND="${RDEPEND}
+ dev-lang/python
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-rpath.patch"
+ "${FILESDIR}/${P}-blas-provider.patch"
+ "${FILESDIR}/${P}-gh313.patch"
+)
+
+src_configure () {
+ local BLIS_FLAGS=()
+ local confname
+ # 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 )
+ # determine config name
+ case "${ARCH}" in
+ "x86" | "amd64")
+ confname=auto ;;
+ "ppc64")
+ confname=generic ;;
+ *)
+ confname=generic ;;
+ esac
+ # This is not an autotools configure file. We don't use econf here.
+ ./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 \
+ $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 () {
+ emake check
+}
+
+src_install () {
+ default
+ use doc && dodoc README.md docs/*.md
+
+ if use eselect-ldso; then
+ dodir /usr/$(get_libdir)/blas/blis
+ 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})
+ if [[ ${current_blas} == blis || -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
+}
diff --git a/sci-libs/blis/files/blas.lds b/sci-libs/blis/files/blas.lds
new file mode 100644
index 00000000000..db79d3bc905
--- /dev/null
+++ b/sci-libs/blis/files/blas.lds
@@ -0,0 +1,15 @@
+{
+ # Export BLAS symbols
+ global:
+ *_;
+ RowMajorStrg;
+
+ # Hide everything else.
+ local:
+ cblas_*;
+ CBLAS_*;
+ bli_thread_set_num_threads_;
+ bli_thread_set_ways_;
+ bli_*;
+ *;
+};
diff --git a/sci-libs/blis/files/blis-0.5.2-blas-provider.patch b/sci-libs/blis/files/blis-0.5.2-blas-provider.patch
new file mode 100644
index 00000000000..5999f847929
--- /dev/null
+++ b/sci-libs/blis/files/blis-0.5.2-blas-provider.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 2d31fee..7008682 100644
+--- a/Makefile
++++ b/Makefile
+@@ -659,6 +659,8 @@ else
+ @$(LINKER) $(SOFLAGS) -o $(LIBBLIS_SO_OUTPUT_NAME) $? $(LDFLAGS)
+ endif
+ endif
++ $(LINKER) $(SOFLAGS) -o $(BASE_LIB_PATH)/$(DEB_LIBBLAS) $? $(LDFLAGS) -Wl,--soname,$(DEB_LIBBLAS) -Wl,--version-script=$(LDS_BLAS)
++ $(LINKER) $(SOFLAGS) -o $(BASE_LIB_PATH)/$(DEB_LIBCBLAS) $? $(LDFLAGS) -Wl,--soname,$(DEB_LIBCBLAS) -Wl,--version-script=$(LDS_CBLAS)
+
+ # Local symlink for shared library.
+ # NOTE: We use a '.loc' suffix to avoid filename collisions in case this
diff --git a/sci-libs/blis/files/blis-0.5.2-gh313.patch b/sci-libs/blis/files/blis-0.5.2-gh313.patch
new file mode 100644
index 00000000000..fab3a8a09ee
--- /dev/null
+++ b/sci-libs/blis/files/blis-0.5.2-gh313.patch
@@ -0,0 +1,187 @@
+diff --git a/common.mk b/common.mk
+index 5513098a5..999df774b 100644
+--- a/common.mk
++++ b/common.mk
+@@ -118,7 +118,8 @@ get-noopt-cxxflags-for = $(strip $(CFLAGS_PRESET) \
+ get-refinit-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
+ $(call get-noopt-cflags-for,$(1)) \
+ -DBLIS_CNAME=$(1) \
+- $(BUILD_FLAGS) \
++ $(BUILD_CPPFLAGS) \
++ $(BUILD_SYMFLAGS) \
+ )
+
+ get-refkern-cflags-for = $(strip $(call load-var-for,CROPTFLAGS,$(1)) \
+@@ -126,23 +127,27 @@ get-refkern-cflags-for = $(strip $(call load-var-for,CROPTFLAGS,$(1)) \
+ $(call get-noopt-cflags-for,$(1)) \
+ $(COMPSIMDFLAGS) \
+ -DBLIS_CNAME=$(1) \
+- $(BUILD_FLAGS) \
++ $(BUILD_CPPFLAGS) \
++ $(BUILD_SYMFLAGS) \
+ )
+
+ get-config-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
+ $(call get-noopt-cflags-for,$(1)) \
+- $(BUILD_FLAGS) \
++ $(BUILD_CPPFLAGS) \
++ $(BUILD_SYMFLAGS) \
+ )
+
+ get-frame-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
+ $(call get-noopt-cflags-for,$(1)) \
+- $(BUILD_FLAGS) \
++ $(BUILD_CPPFLAGS) \
++ $(BUILD_SYMFLAGS) \
+ )
+
+ get-kernel-cflags-for = $(strip $(call load-var-for,CKOPTFLAGS,$(1)) \
+ $(call load-var-for,CKVECFLAGS,$(1)) \
+ $(call get-noopt-cflags-for,$(1)) \
+- $(BUILD_FLAGS) \
++ $(BUILD_CPPFLAGS) \
++ $(BUILD_SYMFLAGS) \
+ )
+
+ # When compiling sandboxes, we use flags similar to those of general framework
+@@ -153,19 +158,24 @@ get-kernel-cflags-for = $(strip $(call load-var-for,CKOPTFLAGS,$(1)) \
+ get-sandbox-c99flags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
+ $(call get-noopt-cflags-for,$(1)) \
+ $(CSBOXINCFLAGS) \
+- $(BUILD_FLAGS) \
++ $(BUILD_CPPFLAGS) \
++ $(BUILD_SYMFLAGS) \
+ )
+ get-sandbox-cxxflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
+ $(call get-noopt-cxxflags-for,$(1)) \
+ $(CSBOXINCFLAGS) \
+- $(BUILD_FLAGS) \
++ $(BUILD_CPPFLAGS) \
++ $(BUILD_SYMFLAGS) \
+ )
+
+ # Define a separate function that will return appropriate flags for use by
+ # applications that want to use the same basic flags as those used when BLIS
+-# was compiled. (This is the same as get-frame-cflags-for(), except that it
+-# omits the BUILD_FLAGS, which are exclusively for use when BLIS is being
+-# compiled.)
++# was compiled. (NOTE: This is the same as the $(get-frame-cflags-for ...)
++# function, except that it omits two variables that contain flags exclusively
++# for use when BLIS is being compiled/built: BUILD_CPPFLAGS, which contains a
++# cpp macro that confirms that BLIS is being built; and BUILD_SYMFLAGS, which
++# contains symbol export flags that are only needed when a shared library is
++# being compiled/linked.)
+ get-user-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
+ $(call get-noopt-cflags-for,$(1)) \
+ )
+@@ -627,22 +637,26 @@ $(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CPICFLAGS,$(c))))
+
+ # --- Symbol exporting flags (shared libraries only) ---
+
++# NOTE: These flags are only applied when building BLIS and not used by
++# applications that import BLIS compilation flags via the
++# $(get-user-cflags-for ...) function.
++
+ # Determine default export behavior / visibility of symbols for gcc.
+ ifeq ($(CC_VENDOR),gcc)
+ ifeq ($(IS_WIN),yes)
+ ifeq ($(EXPORT_SHARED),all)
+-CMISCFLAGS := -Wl,--export-all-symbols, -Wl,--enable-auto-import
++BUILD_SYMFLAGS := -Wl,--export-all-symbols, -Wl,--enable-auto-import
+ else # ifeq ($(EXPORT_SHARED),public)
+-CMISCFLAGS := -Wl,--exclude-all-symbols
++BUILD_SYMFLAGS := -Wl,--exclude-all-symbols
+ endif
+ else # ifeq ($(IS_WIN),no)
+ ifeq ($(EXPORT_SHARED),all)
+ # Export all symbols by default.
+-CMISCFLAGS := -fvisibility=default
++BUILD_SYMFLAGS := -fvisibility=default
+ else # ifeq ($(EXPORT_SHARED),public)
+ # Hide all symbols by default and export only those that have been annotated
+ # as needing to be exported.
+-CMISCFLAGS := -fvisibility=hidden
++BUILD_SYMFLAGS := -fvisibility=hidden
+ endif
+ endif
+ endif
+@@ -653,11 +667,11 @@ endif
+ ifeq ($(CC_VENDOR),icc)
+ ifeq ($(EXPORT_SHARED),all)
+ # Export all symbols by default.
+-CMISCFLAGS := -fvisibility=default
++BUILD_SYMFLAGS := -fvisibility=default
+ else # ifeq ($(EXPORT_SHARED),public)
+ # Hide all symbols by default and export only those that have been annotated
+ # as needing to be exported.
+-CMISCFLAGS := -fvisibility=hidden
++BUILD_SYMFLAGS := -fvisibility=hidden
+ endif
+ endif
+
+@@ -667,27 +681,25 @@ ifeq ($(IS_WIN),yes)
+ ifeq ($(EXPORT_SHARED),all)
+ # NOTE: clang on Windows does not appear to support exporting all symbols
+ # by default, and therefore we ignore the value of EXPORT_SHARED.
+-CMISCFLAGS :=
++BUILD_SYMFLAGS :=
+ else # ifeq ($(EXPORT_SHARED),public)
+ # NOTE: The default behavior of clang on Windows is to hide all symbols
+ # and only export functions and other declarations that have beenannotated
+ # as needing to be exported.
+-CMISCFLAGS :=
++BUILD_SYMFLAGS :=
+ endif
+ else # ifeq ($(IS_WIN),no)
+ ifeq ($(EXPORT_SHARED),all)
+ # Export all symbols by default.
+-CMISCFLAGS := -fvisibility=default
++BUILD_SYMFLAGS := -fvisibility=default
+ else # ifeq ($(EXPORT_SHARED),public)
+ # Hide all symbols by default and export only those that have been annotated
+ # as needing to be exported.
+-CMISCFLAGS := -fvisibility=hidden
++BUILD_SYMFLAGS := -fvisibility=hidden
+ endif
+ endif
+ endif
+
+-$(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CMISCFLAGS,$(c))))
+-
+ # --- Language flags ---
+
+ # Enable C99.
+@@ -1026,7 +1038,7 @@ VERS_DEF := -DBLIS_VERSION_STRING=\"$(VERSION)\"
+ # Define a C preprocessor flag that is *only* defined when BLIS is being
+ # compiled. (In other words, an application that #includes blis.h will not
+ # get this cpp macro.)
+-BUILD_FLAGS := -DBLIS_IS_BUILDING_LIBRARY
++BUILD_CPPFLAGS := -DBLIS_IS_BUILDING_LIBRARY
+
+
+
+diff --git a/configure b/configure
+index 5b5695cd5..bb21671f0 100755
+--- a/configure
++++ b/configure
+@@ -152,13 +152,13 @@ print_usage()
+ echo " functions and variables that belong to public APIs are"
+ echo " exported in shared libraries. However, the user may"
+ echo " instead export all symbols in BLIS, even those that were"
+- echo " intended for internal use only. Note Note that the public"
+- echo " APIs encompass all functions that almost any user would"
+- echo " ever want to call, including the BLAS/CBLAS compatibility"
+- echo " APIs as well as the basic and expert interfaces to the"
+- echo " typed and object APIs that are unique to BLIS. Also note"
+- echo " that changing this option to 'all' will have no effect in"
+- echo " some environments, such as when compiling with clang on"
++ echo " intended for internal use only. Note that the public APIs"
++ echo " encompass all functions that almost any user would ever"
++ echo " want to call, including the BLAS/CBLAS compatibility APIs"
++ echo " as well as the basic and expert interfaces to the typed"
++ echo " and object APIs that are unique to BLIS. Also note that"
++ echo " changing this option to 'all' will have no effect in some"
++ echo " environments, such as when compiling with clang on"
+ echo " Windows."
+ echo " "
+ echo " -t MODEL, --enable-threading[=MODEL], --disable-threading"
diff --git a/sci-libs/blis/files/blis-0.5.2-rpath.patch b/sci-libs/blis/files/blis-0.5.2-rpath.patch
new file mode 100644
index 00000000000..a8b5a46870d
--- /dev/null
+++ b/sci-libs/blis/files/blis-0.5.2-rpath.patch
@@ -0,0 +1,13 @@
+diff --git a/common.mk b/common.mk
+index ef0acfb..e1ce31d 100644
+--- a/common.mk
++++ b/common.mk
+@@ -527,7 +527,7 @@ LIBBLIS_L := $(LIBBLIS_SO)
+ LIBBLIS_LINK := $(LIBBLIS_SO_PATH)
+ ifeq ($(IS_WIN),no)
+ # For Linux and OS X: set rpath property of shared object.
+-LDFLAGS += -Wl,-rpath,$(BASE_LIB_PATH)
++#LDFLAGS += -Wl,-rpath,$(BASE_LIB_PATH)
+ endif
+ endif
+ endif
diff --git a/sci-libs/blis/files/cblas.lds b/sci-libs/blis/files/cblas.lds
new file mode 100644
index 00000000000..18ec172028c
--- /dev/null
+++ b/sci-libs/blis/files/cblas.lds
@@ -0,0 +1,15 @@
+{
+ # Export CBLAS symbols
+ global:
+ cblas_*;
+ CBLAS_*;
+ RowMajorStrg;
+
+ # Hide everything else.
+ local:
+ bli_thread_set_num_threads_;
+ bli_thread_set_ways_;
+ bli_*;
+ *_;
+ *;
+};
diff --git a/sci-libs/blis/metadata.xml b/sci-libs/blis/metadata.xml
new file mode 100644
index 00000000000..a27c6853409
--- /dev/null
+++ b/sci-libs/blis/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <bugs-to>https://github.com/flame/blis/issues/</bugs-to>
+ <doc>https://github.com/flame/blis</doc>
+ </upstream>
+ <maintainer type="project">
+ <name>Mo Zhou</name>
+ <email>lumin@debian.org</email>
+ </maintainer>
+ <longdescription>
+ BLIS is a portable software framework for instantiating high-performance
+ BLAS-like dense linear algebra libraries. The framework was designed to
+ isolate essential kernels of computation that, when optimized, immediately
+ enable optimized implementations of most of its commonly used and
+ computationally intensive operations. BLIS is written in ISO C99 and
+ available under a new/modified/3-clause BSD license. While BLIS exports a
+ new BLAS-like API, it also includes a BLAS compatibility layer which gives
+ application developers access to BLIS implementations via traditional BLAS
+ routine calls. An object-based API unique to BLIS is also available.
+ </longdescription>
+ <use>
+ <flag name="openmp">Use openmp threadding model</flag>
+ <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>
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/blis/files/, sci-libs/blis/
@ 2021-01-17 11:52 David Seifert
0 siblings, 0 replies; 4+ messages in thread
From: David Seifert @ 2021-01-17 11:52 UTC (permalink / raw
To: gentoo-commits
commit: 5587722dc7e475afef6212f499fb2cf502630295
Author: Jakov Smolic <jakov.smolic <AT> sartura <DOT> hr>
AuthorDate: Sun Jan 17 11:51:36 2021 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Jan 17 11:51:36 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5587722d
sci-libs/blis: Remove old
Signed-off-by: Jakov Smolic <jakov.smolic <AT> sartura.hr>
Signed-off-by: David Seifert <soap <AT> gentoo.org>
sci-libs/blis/Manifest | 1 -
sci-libs/blis/blis-0.5.2.ebuild | 108 ------------
sci-libs/blis/files/blis-0.5.2-blas-provider.patch | 13 --
sci-libs/blis/files/blis-0.5.2-gh313.patch | 187 ---------------------
sci-libs/blis/files/blis-0.5.2-rpath.patch | 13 --
5 files changed, 322 deletions(-)
diff --git a/sci-libs/blis/Manifest b/sci-libs/blis/Manifest
index a251246c916..470da790704 100644
--- a/sci-libs/blis/Manifest
+++ b/sci-libs/blis/Manifest
@@ -1,2 +1 @@
-DIST blis-0.5.2.tar.gz 3502383 BLAKE2B b09fda20711086c8bde0d4efc3f3c9b0f6072e1ddb8bd2846465877f0353cced27548abe1239b6a042fe655e85e4b7b3c960322e39b2c733866b8e17777718bd SHA512 4f91a7834ef0ed39544dd21856814467416a222240050cca323917b0fc61b9201ae4dbd109aa687cdecb27ddee5d6bf4510ef023e1c1dc73599faef0482d3d04
DIST blis-0.6.0.tar.gz 5107257 BLAKE2B cd589ad1216486e8bb0cf574cc096c1e1f2bb9587b182c2bcff44db322468d9f027323c0bf2d22ea0fabb1902dc047d2bf62253ef1c2797fc3de9ba53d7fc34a SHA512 74e9da5146f7986cbd11651d7cd0837562a1603c667b9e6d3f79b5057443de657b60d7463cb2d64daf3eff7d33fc05a64e6d8eb807f4cabe0c3121517924a206
diff --git a/sci-libs/blis/blis-0.5.2.ebuild b/sci-libs/blis/blis-0.5.2.ebuild
deleted file mode 100644
index 54196492499..00000000000
--- a/sci-libs/blis/blis-0.5.2.ebuild
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{6,7} )
-inherit python-any-r1
-
-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 ~ppc64 ~x86"
-IUSE="openmp pthread serial static-libs eselect-ldso doc 64bit-index"
-REQUIRED_USE="?? ( openmp pthread serial ) ?? ( eselect-ldso 64bit-index )"
-
-RDEPEND="eselect-ldso? ( !app-eselect/eselect-cblas
- >=app-eselect/eselect-blas-0.2 )"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
-"
-
-PATCHES=(
- "${FILESDIR}/${P}-rpath.patch"
- "${FILESDIR}/${P}-blas-provider.patch"
- "${FILESDIR}/${P}-gh313.patch"
-)
-
-src_configure() {
- local BLIS_FLAGS=()
- local confname
- # 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 )
- # determine config name
- case "${ARCH}" in
- "x86" | "amd64")
- confname=auto ;;
- "ppc64")
- confname=generic ;;
- *)
- confname=generic ;;
- esac
- # This is not an autotools configure file. We don't use econf here.
- ./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 \
- $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() {
- emake check
-}
-
-src_install() {
- default
- use doc && dodoc README.md docs/*.md
-
- if use eselect-ldso; then
- dodir /usr/$(get_libdir)/blas/blis
- 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
-}
diff --git a/sci-libs/blis/files/blis-0.5.2-blas-provider.patch b/sci-libs/blis/files/blis-0.5.2-blas-provider.patch
deleted file mode 100644
index 5999f847929..00000000000
--- a/sci-libs/blis/files/blis-0.5.2-blas-provider.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 2d31fee..7008682 100644
---- a/Makefile
-+++ b/Makefile
-@@ -659,6 +659,8 @@ else
- @$(LINKER) $(SOFLAGS) -o $(LIBBLIS_SO_OUTPUT_NAME) $? $(LDFLAGS)
- endif
- endif
-+ $(LINKER) $(SOFLAGS) -o $(BASE_LIB_PATH)/$(DEB_LIBBLAS) $? $(LDFLAGS) -Wl,--soname,$(DEB_LIBBLAS) -Wl,--version-script=$(LDS_BLAS)
-+ $(LINKER) $(SOFLAGS) -o $(BASE_LIB_PATH)/$(DEB_LIBCBLAS) $? $(LDFLAGS) -Wl,--soname,$(DEB_LIBCBLAS) -Wl,--version-script=$(LDS_CBLAS)
-
- # Local symlink for shared library.
- # NOTE: We use a '.loc' suffix to avoid filename collisions in case this
diff --git a/sci-libs/blis/files/blis-0.5.2-gh313.patch b/sci-libs/blis/files/blis-0.5.2-gh313.patch
deleted file mode 100644
index fab3a8a09ee..00000000000
--- a/sci-libs/blis/files/blis-0.5.2-gh313.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-diff --git a/common.mk b/common.mk
-index 5513098a5..999df774b 100644
---- a/common.mk
-+++ b/common.mk
-@@ -118,7 +118,8 @@ get-noopt-cxxflags-for = $(strip $(CFLAGS_PRESET) \
- get-refinit-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
- $(call get-noopt-cflags-for,$(1)) \
- -DBLIS_CNAME=$(1) \
-- $(BUILD_FLAGS) \
-+ $(BUILD_CPPFLAGS) \
-+ $(BUILD_SYMFLAGS) \
- )
-
- get-refkern-cflags-for = $(strip $(call load-var-for,CROPTFLAGS,$(1)) \
-@@ -126,23 +127,27 @@ get-refkern-cflags-for = $(strip $(call load-var-for,CROPTFLAGS,$(1)) \
- $(call get-noopt-cflags-for,$(1)) \
- $(COMPSIMDFLAGS) \
- -DBLIS_CNAME=$(1) \
-- $(BUILD_FLAGS) \
-+ $(BUILD_CPPFLAGS) \
-+ $(BUILD_SYMFLAGS) \
- )
-
- get-config-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
- $(call get-noopt-cflags-for,$(1)) \
-- $(BUILD_FLAGS) \
-+ $(BUILD_CPPFLAGS) \
-+ $(BUILD_SYMFLAGS) \
- )
-
- get-frame-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
- $(call get-noopt-cflags-for,$(1)) \
-- $(BUILD_FLAGS) \
-+ $(BUILD_CPPFLAGS) \
-+ $(BUILD_SYMFLAGS) \
- )
-
- get-kernel-cflags-for = $(strip $(call load-var-for,CKOPTFLAGS,$(1)) \
- $(call load-var-for,CKVECFLAGS,$(1)) \
- $(call get-noopt-cflags-for,$(1)) \
-- $(BUILD_FLAGS) \
-+ $(BUILD_CPPFLAGS) \
-+ $(BUILD_SYMFLAGS) \
- )
-
- # When compiling sandboxes, we use flags similar to those of general framework
-@@ -153,19 +158,24 @@ get-kernel-cflags-for = $(strip $(call load-var-for,CKOPTFLAGS,$(1)) \
- get-sandbox-c99flags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
- $(call get-noopt-cflags-for,$(1)) \
- $(CSBOXINCFLAGS) \
-- $(BUILD_FLAGS) \
-+ $(BUILD_CPPFLAGS) \
-+ $(BUILD_SYMFLAGS) \
- )
- get-sandbox-cxxflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
- $(call get-noopt-cxxflags-for,$(1)) \
- $(CSBOXINCFLAGS) \
-- $(BUILD_FLAGS) \
-+ $(BUILD_CPPFLAGS) \
-+ $(BUILD_SYMFLAGS) \
- )
-
- # Define a separate function that will return appropriate flags for use by
- # applications that want to use the same basic flags as those used when BLIS
--# was compiled. (This is the same as get-frame-cflags-for(), except that it
--# omits the BUILD_FLAGS, which are exclusively for use when BLIS is being
--# compiled.)
-+# was compiled. (NOTE: This is the same as the $(get-frame-cflags-for ...)
-+# function, except that it omits two variables that contain flags exclusively
-+# for use when BLIS is being compiled/built: BUILD_CPPFLAGS, which contains a
-+# cpp macro that confirms that BLIS is being built; and BUILD_SYMFLAGS, which
-+# contains symbol export flags that are only needed when a shared library is
-+# being compiled/linked.)
- get-user-cflags-for = $(strip $(call load-var-for,COPTFLAGS,$(1)) \
- $(call get-noopt-cflags-for,$(1)) \
- )
-@@ -627,22 +637,26 @@ $(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CPICFLAGS,$(c))))
-
- # --- Symbol exporting flags (shared libraries only) ---
-
-+# NOTE: These flags are only applied when building BLIS and not used by
-+# applications that import BLIS compilation flags via the
-+# $(get-user-cflags-for ...) function.
-+
- # Determine default export behavior / visibility of symbols for gcc.
- ifeq ($(CC_VENDOR),gcc)
- ifeq ($(IS_WIN),yes)
- ifeq ($(EXPORT_SHARED),all)
--CMISCFLAGS := -Wl,--export-all-symbols, -Wl,--enable-auto-import
-+BUILD_SYMFLAGS := -Wl,--export-all-symbols, -Wl,--enable-auto-import
- else # ifeq ($(EXPORT_SHARED),public)
--CMISCFLAGS := -Wl,--exclude-all-symbols
-+BUILD_SYMFLAGS := -Wl,--exclude-all-symbols
- endif
- else # ifeq ($(IS_WIN),no)
- ifeq ($(EXPORT_SHARED),all)
- # Export all symbols by default.
--CMISCFLAGS := -fvisibility=default
-+BUILD_SYMFLAGS := -fvisibility=default
- else # ifeq ($(EXPORT_SHARED),public)
- # Hide all symbols by default and export only those that have been annotated
- # as needing to be exported.
--CMISCFLAGS := -fvisibility=hidden
-+BUILD_SYMFLAGS := -fvisibility=hidden
- endif
- endif
- endif
-@@ -653,11 +667,11 @@ endif
- ifeq ($(CC_VENDOR),icc)
- ifeq ($(EXPORT_SHARED),all)
- # Export all symbols by default.
--CMISCFLAGS := -fvisibility=default
-+BUILD_SYMFLAGS := -fvisibility=default
- else # ifeq ($(EXPORT_SHARED),public)
- # Hide all symbols by default and export only those that have been annotated
- # as needing to be exported.
--CMISCFLAGS := -fvisibility=hidden
-+BUILD_SYMFLAGS := -fvisibility=hidden
- endif
- endif
-
-@@ -667,27 +681,25 @@ ifeq ($(IS_WIN),yes)
- ifeq ($(EXPORT_SHARED),all)
- # NOTE: clang on Windows does not appear to support exporting all symbols
- # by default, and therefore we ignore the value of EXPORT_SHARED.
--CMISCFLAGS :=
-+BUILD_SYMFLAGS :=
- else # ifeq ($(EXPORT_SHARED),public)
- # NOTE: The default behavior of clang on Windows is to hide all symbols
- # and only export functions and other declarations that have beenannotated
- # as needing to be exported.
--CMISCFLAGS :=
-+BUILD_SYMFLAGS :=
- endif
- else # ifeq ($(IS_WIN),no)
- ifeq ($(EXPORT_SHARED),all)
- # Export all symbols by default.
--CMISCFLAGS := -fvisibility=default
-+BUILD_SYMFLAGS := -fvisibility=default
- else # ifeq ($(EXPORT_SHARED),public)
- # Hide all symbols by default and export only those that have been annotated
- # as needing to be exported.
--CMISCFLAGS := -fvisibility=hidden
-+BUILD_SYMFLAGS := -fvisibility=hidden
- endif
- endif
- endif
-
--$(foreach c, $(CONFIG_LIST_FAM), $(eval $(call append-var-for,CMISCFLAGS,$(c))))
--
- # --- Language flags ---
-
- # Enable C99.
-@@ -1026,7 +1038,7 @@ VERS_DEF := -DBLIS_VERSION_STRING=\"$(VERSION)\"
- # Define a C preprocessor flag that is *only* defined when BLIS is being
- # compiled. (In other words, an application that #includes blis.h will not
- # get this cpp macro.)
--BUILD_FLAGS := -DBLIS_IS_BUILDING_LIBRARY
-+BUILD_CPPFLAGS := -DBLIS_IS_BUILDING_LIBRARY
-
-
-
-diff --git a/configure b/configure
-index 5b5695cd5..bb21671f0 100755
---- a/configure
-+++ b/configure
-@@ -152,13 +152,13 @@ print_usage()
- echo " functions and variables that belong to public APIs are"
- echo " exported in shared libraries. However, the user may"
- echo " instead export all symbols in BLIS, even those that were"
-- echo " intended for internal use only. Note Note that the public"
-- echo " APIs encompass all functions that almost any user would"
-- echo " ever want to call, including the BLAS/CBLAS compatibility"
-- echo " APIs as well as the basic and expert interfaces to the"
-- echo " typed and object APIs that are unique to BLIS. Also note"
-- echo " that changing this option to 'all' will have no effect in"
-- echo " some environments, such as when compiling with clang on"
-+ echo " intended for internal use only. Note that the public APIs"
-+ echo " encompass all functions that almost any user would ever"
-+ echo " want to call, including the BLAS/CBLAS compatibility APIs"
-+ echo " as well as the basic and expert interfaces to the typed"
-+ echo " and object APIs that are unique to BLIS. Also note that"
-+ echo " changing this option to 'all' will have no effect in some"
-+ echo " environments, such as when compiling with clang on"
- echo " Windows."
- echo " "
- echo " -t MODEL, --enable-threading[=MODEL], --disable-threading"
diff --git a/sci-libs/blis/files/blis-0.5.2-rpath.patch b/sci-libs/blis/files/blis-0.5.2-rpath.patch
deleted file mode 100644
index a8b5a46870d..00000000000
--- a/sci-libs/blis/files/blis-0.5.2-rpath.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/common.mk b/common.mk
-index ef0acfb..e1ce31d 100644
---- a/common.mk
-+++ b/common.mk
-@@ -527,7 +527,7 @@ LIBBLIS_L := $(LIBBLIS_SO)
- LIBBLIS_LINK := $(LIBBLIS_SO_PATH)
- ifeq ($(IS_WIN),no)
- # For Linux and OS X: set rpath property of shared object.
--LDFLAGS += -Wl,-rpath,$(BASE_LIB_PATH)
-+#LDFLAGS += -Wl,-rpath,$(BASE_LIB_PATH)
- endif
- endif
- endif
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/blis/files/, sci-libs/blis/
@ 2022-09-30 12:10 Andrew Ammerlaan
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Ammerlaan @ 2022-09-30 12:10 UTC (permalink / raw
To: gentoo-commits
commit: 834c70df02cc32759474c76ebb1f069b7ad550fb
Author: Zhang Zongyu <zongyu <AT> novazy <DOT> net>
AuthorDate: Thu Sep 29 12:45:36 2022 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Fri Sep 30 12:09:56 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=834c70df
sci-libs/blis: bump version to 0.9.0
Closes: https://bugs.gentoo.org/693470
Closes: https://bugs.gentoo.org/841440
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Zhang Zongyu <zongyu <AT> novazy.net>
Closes: https://github.com/gentoo/gentoo/pull/27534
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
sci-libs/blis/Manifest | 1 +
sci-libs/blis/blis-0.9.0.ebuild | 113 +++++++++++++++++++++++++++++
sci-libs/blis/files/blis-0.9.0-rpath.patch | 15 ++++
3 files changed, 129 insertions(+)
diff --git a/sci-libs/blis/Manifest b/sci-libs/blis/Manifest
index ec8f4283416a..5e90ff7400e3 100644
--- a/sci-libs/blis/Manifest
+++ b/sci-libs/blis/Manifest
@@ -1,2 +1,3 @@
DIST blis-0.6.0.tar.gz 5107257 BLAKE2B cd589ad1216486e8bb0cf574cc096c1e1f2bb9587b182c2bcff44db322468d9f027323c0bf2d22ea0fabb1902dc047d2bf62253ef1c2797fc3de9ba53d7fc34a SHA512 74e9da5146f7986cbd11651d7cd0837562a1603c667b9e6d3f79b5057443de657b60d7463cb2d64daf3eff7d33fc05a64e6d8eb807f4cabe0c3121517924a206
DIST blis-0.8.1.tar.gz 13442609 BLAKE2B cc4167aaa6461b73876f428de2ab02107803fd6d63df101bf30de4c6ca57241e29f09dfb82fe1cfec8c661b2d9efe65ab854ad7719bf36e27f8a33bf3dd4bb92 SHA512 f920e6ae699af899caca27274b55bb944c886c882dfc06bc2f66d069c08e6d4999c130626cd96297308c1b7e85e77e6552bf981cce37dbbaa5acdf0cb5078e02
+DIST blis-0.9.0.tar.gz 15078619 BLAKE2B f7c9632024e0adbba370a4077a7a47f05c54779ad6195b2ccda0950df8e784b8988b4338758ec2fabd424a69009010f8f02cbaef0eda1d74f6794127b43b4f70 SHA512 01e1990eefa4387839ac404089e4ffa32922ceaa30a1747c08a931c67706bcf29fed9d25e30c0faa36bba4f460821290e7973ed6b657d2cd95e126caaf853f81
diff --git a/sci-libs/blis/blis-0.9.0.ebuild b/sci-libs/blis/blis-0.9.0.ebuild
new file mode 100644
index 000000000000..9e2aa275f970
--- /dev/null
+++ b/sci-libs/blis/blis-0.9.0.ebuild
@@ -0,0 +1,113 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+inherit python-any-r1
+
+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 ~ppc64 ~x86"
+IUSE="doc eselect-ldso openmp pthread serial static-libs 64bit-index"
+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}"
+
+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
+)
+
+src_configure() {
+ local BLIS_FLAGS=()
+ local confname
+ # 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 )
+ # determine config name
+ case "${ARCH}" in
+ "x86" | "amd64")
+ confname=auto ;;
+ "ppc64")
+ confname=generic ;;
+ *)
+ confname=generic ;;
+ esac
+ # This is not an autotools configure file. We don't use econf here.
+ ./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 \
+ $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="${S}/lib/haswell" emake check
+}
+
+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
+}
diff --git a/sci-libs/blis/files/blis-0.9.0-rpath.patch b/sci-libs/blis/files/blis-0.9.0-rpath.patch
new file mode 100644
index 000000000000..9687a6c9428b
--- /dev/null
+++ b/sci-libs/blis/files/blis-0.9.0-rpath.patch
@@ -0,0 +1,15 @@
+diff -Nur a/common.mk b/common.mk
+--- a/common.mk 2022-09-29 16:54:14.414899248 +0800
++++ b/common.mk 2022-09-29 16:54:32.915666662 +0800
+@@ -591,9 +591,9 @@
+ LDFLAGS += -Wl,-rpath,@executable_path/../../../$(BASE_LIB_PATH)
+ else
+ # rpath for test_libblis.x
+-LDFLAGS += -Wl,-rpath,'$$ORIGIN/$(BASE_LIB_PATH)'
++#LDFLAGS += -Wl,-rpath,'$$ORIGIN/$(BASE_LIB_PATH)'
+ # rpath for BLAS tests
+-LDFLAGS += -Wl,-rpath,'$$ORIGIN/../../../$(BASE_LIB_PATH)'
++#LDFLAGS += -Wl,-rpath,'$$ORIGIN/../../../$(BASE_LIB_PATH)'
+ endif
+ endif
+ endif
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/blis/files/, sci-libs/blis/
@ 2024-06-03 13:27 Andrew Ammerlaan
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Ammerlaan @ 2024-06-03 13:27 UTC (permalink / raw
To: gentoo-commits
commit: 9c9c079f4919e0c85eca39e74bc00e6db646389f
Author: Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Sun Jun 2 11:49:42 2024 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Mon Jun 3 13:27:03 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c9c079f
sci-libs/blis: add 1.0
Changes from 0.9:
* Added patch to not install /usr/include/cblas.h, as it conflicts with sci-libs/lapack
* aarch64 now builds/passes tests (in qemu), can be keyworded later
Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/36974
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
sci-libs/blis/Manifest | 1 +
sci-libs/blis/blis-1.0.ebuild | 137 +++++++++++++++++++++
.../blis/files/blis-1.0-no-helper-headers.patch | 13 ++
3 files changed, 151 insertions(+)
diff --git a/sci-libs/blis/Manifest b/sci-libs/blis/Manifest
index feff64952906..6671de7c7fc6 100644
--- a/sci-libs/blis/Manifest
+++ b/sci-libs/blis/Manifest
@@ -1 +1,2 @@
DIST blis-0.9.0.tar.gz 15078619 BLAKE2B f7c9632024e0adbba370a4077a7a47f05c54779ad6195b2ccda0950df8e784b8988b4338758ec2fabd424a69009010f8f02cbaef0eda1d74f6794127b43b4f70 SHA512 01e1990eefa4387839ac404089e4ffa32922ceaa30a1747c08a931c67706bcf29fed9d25e30c0faa36bba4f460821290e7973ed6b657d2cd95e126caaf853f81
+DIST blis-1.0.tar.gz 15714356 BLAKE2B 7e9b6132ab556adf7ccb2d1bff6c5195eb2f48a9193a6df57d409e25b42f1aaa64f053f97996a6467ad42cbe5848c3689f3e6c501579d5d1083523ca9ed52ce1 SHA512 91cd2a2944762e584f11cb931ba11c4b296e93040b553f105ba8579d748a49cfcb6db8ae2ce1b5a537c0ae88182c9d212a4a5daa757ca4d0a7beee552d2eb55c
diff --git a/sci-libs/blis/blis-1.0.ebuild b/sci-libs/blis/blis-1.0.ebuild
new file mode 100644
index 000000000000..ecbc704021e8
--- /dev/null
+++ b/sci-libs/blis/blis-1.0.ebuild
@@ -0,0 +1,137 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..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 ~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
+)
+
+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
+}
diff --git a/sci-libs/blis/files/blis-1.0-no-helper-headers.patch b/sci-libs/blis/files/blis-1.0-no-helper-headers.patch
new file mode 100644
index 000000000000..ec747824e7dc
--- /dev/null
+++ b/sci-libs/blis/files/blis-1.0-no-helper-headers.patch
@@ -0,0 +1,13 @@
+Don't install one-line "helper header" cblas.h into /usr/include,
+as it conflicts with sci-libs/lapack.
+--- a/Makefile
++++ b/Makefile
+@@ -1052,7 +1052,7 @@ endif
+
+ # --- Install header rules ---
+
+-install-headers: check-env $(MK_INCL_DIR_INST) install-helper-headers
++install-headers: check-env $(MK_INCL_DIR_INST)
+
+ # Rule for installing main headers.
+ $(MK_INCL_DIR_INST): $(HEADERS_TO_INSTALL) $(CONFIG_MK_FILE)
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-03 13:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-17 11:52 [gentoo-commits] repo/gentoo:master commit in: sci-libs/blis/files/, sci-libs/blis/ David Seifert
-- strict thread matches above, loose matches on Subject: below --
2024-06-03 13:27 Andrew Ammerlaan
2022-09-30 12:10 Andrew Ammerlaan
2019-06-26 6:07 Benda XU
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox