import CS lapack-3.9.0-13.el9

This commit is contained in:
eabdullin 2025-09-25 08:35:20 +00:00
parent 08f8d0ae01
commit 7d5880df08
6 changed files with 47 additions and 45 deletions

View File

@ -62,12 +62,14 @@ ifeq "$(SYMBOLSUFFIX)" ""
else
ar ruv libblas$(SYMBOLSUFFIX).a $(OBJS)
ranlib libblas$(SYMBOLSUFFIX).a
ifndef RENAMEONLY
for i in `nm libblas$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > blas-static-prefix.def.dirty
sort -n blas-static-prefix.def.dirty | uniq > blas-static-prefix.def
$(OBJCOPY) --redefine-syms blas-static-prefix.def libblas$(SYMBOLSUFFIX).a libblas$(SYMBOLSUFFIX).a.fixed
rm -rf libblas$(SYMBOLSUFFIX).a
mv libblas$(SYMBOLSUFFIX).a.fixed libblas$(SYMBOLSUFFIX).a
endif
endif
shared: $(OBJS)
ifeq "$(SYMBOLSUFFIX)" ""
@ -75,6 +77,7 @@ ifeq "$(SYMBOLSUFFIX)" ""
cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
else
cc $(CFLAGS) -shared -Wl,-soname,libblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc
ifndef RENAMEONLY
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
for i in `readelf -Ws libblas$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > blas-prefix.def.dirty
sort -n blas-prefix.def.dirty | uniq > blas-prefix.def
@ -82,3 +85,4 @@ else
rm -rf libblas$(SYMBOLSUFFIX).so.@LONGVER@
mv libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libblas$(SYMBOLSUFFIX).so.@LONGVER@
endif
endif

View File

@ -76,12 +76,14 @@ ifeq "$(SYMBOLSUFFIX)" ""
else
ar ruv libcblas$(SYMBOLSUFFIX).a $(OBJS)
ranlib libcblas$(SYMBOLSUFFIX).a
ifndef RENAMEONLY
for i in `nm libcblas$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty
sort -n cblas-static-prefix.def.dirty | uniq > cblas-static-prefix.def
$(OBJCOPY) --redefine-syms cblas-static-prefix.def libcblas$(SYMBOLSUFFIX).a libcblas$(SYMBOLSUFFIX).a.fixed
rm -rf libcblas$(SYMBOLSUFFIX).a
mv libcblas$(SYMBOLSUFFIX).a.fixed libcblas$(SYMBOLSUFFIX).a
endif
endif
shared: $(OBJS)
ifeq "$(SYMBOLSUFFIX)" ""
@ -89,6 +91,7 @@ ifeq "$(SYMBOLSUFFIX)" ""
cc $(CFLAGS) -shared -Wl,-soname,libcblas.so.@SHORTVER@ -o libcblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../../ -lblas -lm -lgfortran -lc
else
cc $(CFLAGS) -shared -Wl,-soname,libcblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libcblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc
ifndef RENAMEONLY
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
for i in `readelf -Ws libcblas$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > cblas-prefix.def.dirty
sort -n cblas-prefix.def.dirty | uniq > cblas-prefix.def
@ -96,4 +99,4 @@ else
rm -rf libcblas$(SYMBOLSUFFIX).so.@LONGVER@
mv libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libcblas$(SYMBOLSUFFIX).so.@LONGVER@
endif
endif

View File

@ -456,12 +456,14 @@ ifeq "$(SYMBOLSUFFIX)" ""
else
ar ruv liblapack$(SYMBOLSUFFIX).a $(ALLOBJ) $(ALLXOBJ)
ranlib liblapack$(SYMBOLSUFFIX).a
ifndef RENAMEONLY
for i in `nm liblapack$(SYMBOLSUFFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty
sort -n lapack-static-prefix.def.dirty | uniq > lapack-static-prefix.def
$(OBJCOPY) --redefine-syms lapack-static-prefix.def liblapack$(SYMBOLSUFFIX).a liblapack$(SYMBOLSUFFIX).a.fixed
rm -rf liblapack$(SYMBOLSUFFIX).a
mv liblapack$(SYMBOLSUFFIX).a.fixed liblapack$(SYMBOLSUFFIX).a
endif
endif
shared: $(ALLOBJ) $(ALLXOBJ)
ifeq "$(SYMBOLSUFFIX)" ""
@ -469,6 +471,7 @@ ifeq "$(SYMBOLSUFFIX)" ""
cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.@SHORTVER@ -o liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
else
cc $(CFLAGS) -shared -Wl,-soname,liblapack$(SYMBOLSUFFIX).so.@SHORTVER@ -o liblapack$(SYMBOLSUFFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc
ifndef RENAMEONLY
# generate a list of all symbols in shared library and rename with SYMBOLSUFFIX
for i in `readelf -Ws liblapack$(SYMBOLSUFFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > lapack-prefix.def.dirty
sort -n lapack-prefix.def.dirty | uniq > lapack-prefix.def
@ -476,3 +479,4 @@ else
rm -rf liblapack$(SYMBOLSUFFIX).so.@LONGVER@
mv liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed liblapack$(SYMBOLSUFFIX).so.@LONGVER@
endif
endif

View File

@ -1,12 +0,0 @@
diff -up lapack-3.4.1/LAPACKE/src/Makefile.disable-functions lapack-3.4.1/LAPACKE/src/Makefile
--- lapack-3.4.1/LAPACKE/src/Makefile.disable-functions 2012-10-24 11:19:46.054150834 -0400
+++ lapack-3.4.1/LAPACKE/src/Makefile 2012-10-24 11:19:54.430152048 -0400
@@ -2040,7 +2040,7 @@ lapacke_slagsy_work.o \
lapacke_zlagsy.o \
lapacke_zlagsy_work.o
-ALLOBJ = $(SRC_OBJ) $(MATGEN_OBJ)
+ALLOBJ = $(SRC_OBJ)
ifdef USEXBLAS
ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC)

View File

@ -1,12 +0,0 @@
diff -up lapack-3.5.0/LAPACKE/src/Makefile.matgenobj lapack-3.5.0/LAPACKE/src/Makefile
--- lapack-3.5.0/LAPACKE/src/Makefile.matgenobj 2014-06-17 13:21:30.336206692 -0400
+++ lapack-3.5.0/LAPACKE/src/Makefile 2014-06-17 13:22:31.701885152 -0400
@@ -2061,7 +2061,7 @@ lapacke_slagsy_work.o \
lapacke_zlagsy.o \
lapacke_zlagsy_work.o
-ALLOBJ = $(SRC_OBJ)
+ALLOBJ = $(SRC_OBJ) $(MATGEN_OBJ)
ifdef USEXBLAS
ALLXOBJ = $(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC)

View File

@ -10,8 +10,8 @@
Summary: Numerical linear algebra package libraries
Name: lapack
Version: %{mediumver}.0
Release: 10%{?dist}
License: BSD
Release: 13%{?dist}
License: BSD-3-Clause-Open-MPI
URL: http://www.netlib.org/lapack/
Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{version}.tar.gz
Source1: http://www.netlib.org/lapack/manpages.tgz
@ -22,8 +22,6 @@ Source5: http://www.netlib.org/blas/blasqr.ps
Source6: Makefile.cblas
Patch3: lapack-3.9.0-make.inc.patch
Patch4: lapack-3.9.0-lapacke-shared.patch
Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch
Patch6: lapack-3.5.0-lapacke-matgenobj.patch
Patch7: lapack-3.9.0-lapacke-tmglib.patch
# Bugzilla 1814756
Patch8: https://github.com/Reference-LAPACK/lapack/commit/87536aa3c8bb0af00f66088fb6ac05d87509e011.patch
@ -87,12 +85,14 @@ LAPACK development libraries (shared).
%package -n lapack64
Summary: Numerical linear algebra package libraries
Requires: blas64%{?_isa} = %{version}-%{release}
Requires: blas%{?_isa} = %{version}-%{release}
%description -n lapack64 %_description_lapack
This build has 64bit INTEGER support.
%package -n blas64
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
Requires: blas%{?_isa} = %{version}-%{release}
%description -n blas64 %_description_blas
This build has 64bit INTEGER support.
@ -100,12 +100,14 @@ This build has 64bit INTEGER support.
%package -n lapack64_
Summary: Numerical linear algebra package libraries
Requires: blas64_%{?_isa} = %{version}-%{release}
Requires: blas%{?_isa} = %{version}-%{release}
%description -n lapack64_ %_description_lapack
This build has 64bit INTEGER support and a symbol name suffix.
%package -n blas64_
Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER)
Requires: blas%{?_isa} = %{version}-%{release}
%description -n blas64_ %_description_blas
This build has 64bit INTEGER support and a symbol name suffix.
@ -142,8 +144,6 @@ BLAS development libraries (shared).
%setup -q -D -T -a1
%patch3 -p1 -b .fedora
%patch4 -p1 -b .shared
# %patch5 -p1 -b .disable-functions
# %patch6 -p1 -b .matgenobj
%patch7 -p1 -b .tmglib
%patch8 -p1 -b .bz1814756
@ -181,12 +181,12 @@ cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
%if 0%{?arch64}
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
cp libblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.a
SYMBOLSUFFIX="64" RENAMEONLY=1 FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
cp libblas64.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.a
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.so.%{version}
SYMBOLSUFFIX="64" RENAMEONLY=1 FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared
cp libblas64.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.so.%{version}
make clean
FFLAGS="$RPM_OPT_O_FLAGS -fdefault-integer-8" make dcabs1.o
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
@ -214,11 +214,11 @@ FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/
%if 0%{?arch64}
make clean
FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
cp libcblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.a
SYMBOLSUFFIX="64" RENAMEONLY=1 FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
cp libcblas64.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.a
make clean
FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
cp libcblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.so.%{version}
SYMBOLSUFFIX="64" RENAMEONLY=1 FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared
cp libcblas64.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64.so.%{version}
make clean
SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static
cp libcblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libcblas64_.a
@ -268,8 +268,8 @@ popd
# Build the static lapack library
pushd SRC
make clean
make FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.a
make SYMBOLSUFFIX="64" RENAMEONLY=1 FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
cp liblapack64.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.a
popd
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
@ -281,8 +281,8 @@ popd
# Build the static with pic lapack library (64bit INTEGER)
pushd SRC
make clean
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic64.a
make SYMBOLSUFFIX="64" RENAMEONLY=1 FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
cp liblapack64.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack_pic64.a
popd
# Build the static dlamch, dsecnd, lsame, second, slamch bits
@ -335,8 +335,8 @@ popd
# Build the shared lapack library
pushd SRC
make clean
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.so.%{version}
make SYMBOLSUFFIX="64" RENAMEONLY=1 FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared
cp liblapack64.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.so.%{version}
popd
# Build the shared dlamch, dsecnd, lsame, second, slamch bits
@ -625,6 +625,21 @@ sed -i 's|Requires.private: blas|Requires.private: blas64_|g' %{buildroot}%{_lib
%endif
%changelog
* Thu Jul 17 2025 Jakub Martisko <jamartis@redhat.com> - 3.9.0-13
- Add explicit requires to the devel subpackages
- Note: the the cblas64 seems to be linked against the libblas (not the 64 version)
- this is not a regression, however in the Fedora it uses libblas64 instead.
- Resolves: RHEL-5768
* Wed Jul 16 2025 Jakub Martisko <jamartis@redhat.com> - 3.9.0-12
- Spec file cleanup
- Remove unused patches
Related: RHEL-5770
* Wed Oct 23 2024 Takuya Wakazono <takuya.wakazono@miraclelinux.com> - 3.9.0-11
- Fix soname of the 64-bit version libraries
Resolves: RHEL-24851
* Fri Aug 11 2023 Jakub Martisko <jamartis@redhat.com> - 3.9.0-10
- Add explicit requires to the devel subpackages
Related: rhbz#2229142