diff --git a/SOURCES/Makefile.blas b/SOURCES/Makefile.blas index 5cfb092..806d5e5 100644 --- a/SOURCES/Makefile.blas +++ b/SOURCES/Makefile.blas @@ -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 diff --git a/SOURCES/Makefile.cblas b/SOURCES/Makefile.cblas index cb98d2e..f96814a 100644 --- a/SOURCES/Makefile.cblas +++ b/SOURCES/Makefile.cblas @@ -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 diff --git a/SOURCES/Makefile.lapack b/SOURCES/Makefile.lapack index 6b4328d..29be0b1 100644 --- a/SOURCES/Makefile.lapack +++ b/SOURCES/Makefile.lapack @@ -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 diff --git a/SOURCES/lapack-3.4.1-lapacke-disable-testing-functions.patch b/SOURCES/lapack-3.4.1-lapacke-disable-testing-functions.patch deleted file mode 100644 index 0fa2990..0000000 --- a/SOURCES/lapack-3.4.1-lapacke-disable-testing-functions.patch +++ /dev/null @@ -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) diff --git a/SOURCES/lapack-3.5.0-lapacke-matgenobj.patch b/SOURCES/lapack-3.5.0-lapacke-matgenobj.patch deleted file mode 100644 index fc0f21b..0000000 --- a/SOURCES/lapack-3.5.0-lapacke-matgenobj.patch +++ /dev/null @@ -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) diff --git a/SPECS/lapack.spec b/SPECS/lapack.spec index 4b388d3..76e1027 100644 --- a/SPECS/lapack.spec +++ b/SPECS/lapack.spec @@ -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 - 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 - 3.9.0-12 +- Spec file cleanup +- Remove unused patches + Related: RHEL-5770 + +* Wed Oct 23 2024 Takuya Wakazono - 3.9.0-11 +- Fix soname of the 64-bit version libraries + Resolves: RHEL-24851 + * Fri Aug 11 2023 Jakub Martisko - 3.9.0-10 - Add explicit requires to the devel subpackages Related: rhbz#2229142