diff --git a/Makefile.blas b/Makefile.blas index 94bd165..5cfb092 100644 --- a/Makefile.blas +++ b/Makefile.blas @@ -1,7 +1,7 @@ OBJCOPY = objcopy -ifndef SYMBOLPREFIX -SYMBOLPREFIX = +ifndef SYMBOLSUFFIX +SYMBOLSUFFIX = endif clean: @@ -56,29 +56,29 @@ OBJS= $(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \ $(ALLBLAS) static: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" ar ruv libblas.a $(OBJS) ranlib libblas.a else - ar ruv libblas$(SYMBOLPREFIX).a $(OBJS) - ranlib libblas$(SYMBOLPREFIX).a - for i in `nm libblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > blas-static-prefix.def.dirty + ar ruv libblas$(SYMBOLSUFFIX).a $(OBJS) + ranlib libblas$(SYMBOLSUFFIX).a + 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$(SYMBOLPREFIX).a libblas$(SYMBOLPREFIX).a.fixed - rm -rf libblas$(SYMBOLPREFIX).a - mv libblas$(SYMBOLPREFIX).a.fixed libblas$(SYMBOLPREFIX).a + $(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 shared: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" # No renaming needed cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc else - cc $(CFLAGS) -shared -Wl,-soname,libblas$(SYMBOLPREFIX).so.@SHORTVER@ -o libblas$(SYMBOLPREFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc - # generate a list of all symbols in shared library and rename with SYMBOLPREFIX - for i in `readelf -Ws libblas$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > blas-prefix.def.dirty + cc $(CFLAGS) -shared -Wl,-soname,libblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -lm -lgfortran -lc + # 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 - $(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLPREFIX).so.@LONGVER@ libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed - rm -rf libblas$(SYMBOLPREFIX).so.@LONGVER@ - mv libblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libblas$(SYMBOLPREFIX).so.@LONGVER@ + $(OBJCOPY) --redefine-syms blas-prefix.def libblas$(SYMBOLSUFFIX).so.@LONGVER@ libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed + rm -rf libblas$(SYMBOLSUFFIX).so.@LONGVER@ + mv libblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libblas$(SYMBOLSUFFIX).so.@LONGVER@ endif diff --git a/Makefile.cblas b/Makefile.cblas index 9318b69..cb98d2e 100644 --- a/Makefile.cblas +++ b/Makefile.cblas @@ -1,7 +1,7 @@ OBJCOPY = objcopy -ifndef SYMBOLPREFIX -SYMBOLPREFIX = +ifndef SYMBOLSUFFIX +SYMBOLSUFFIX = endif clean: @@ -70,30 +70,30 @@ OBJS= $(SLEV1) $(DLEV1) $(CLEV1) $(ZLEV1) $(SCLEV1) $(SLEV2) $(DLEV2) $(CLEV2) \ $(ZLEV2) $(SLEV3) $(DLEV3) $(CLEV3) $(ZLEV3) $(ERRHAND) static: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" ar ruv libcblas.a $(OBJS) ranlib libcblas.a else - ar ruv libcblas$(SYMBOLPREFIX).a $(OBJS) - ranlib libcblas$(SYMBOLPREFIX).a - for i in `nm libcblas$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > cblas-static-prefix.def.dirty + ar ruv libcblas$(SYMBOLSUFFIX).a $(OBJS) + ranlib libcblas$(SYMBOLSUFFIX).a + 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$(SYMBOLPREFIX).a libcblas$(SYMBOLPREFIX).a.fixed - rm -rf libcblas$(SYMBOLPREFIX).a - mv libcblas$(SYMBOLPREFIX).a.fixed libcblas$(SYMBOLPREFIX).a + $(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 shared: $(OBJS) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" # No renaming needed 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$(SYMBOLPREFIX).so.@SHORTVER@ -o libcblas$(SYMBOLPREFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc - # generate a list of all symbols in shared library and rename with SYMBOLPREFIX - for i in `readelf -Ws libcblas$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > cblas-prefix.def.dirty + cc $(CFLAGS) -shared -Wl,-soname,libcblas$(SYMBOLSUFFIX).so.@SHORTVER@ -o libcblas$(SYMBOLSUFFIX).so.@LONGVER@ $(OBJS) $(LDFLAGS) -L../.. -lblas -lm -lgfortran -lc + # 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 - $(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLPREFIX).so.@LONGVER@ libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed - rm -rf libcblas$(SYMBOLPREFIX).so.@LONGVER@ - mv libcblas$(SYMBOLPREFIX).so.@LONGVER@.fixed libcblas$(SYMBOLPREFIX).so.@LONGVER@ + $(OBJCOPY) --redefine-syms cblas-prefix.def libcblas$(SYMBOLSUFFIX).so.@LONGVER@ libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed + rm -rf libcblas$(SYMBOLSUFFIX).so.@LONGVER@ + mv libcblas$(SYMBOLSUFFIX).so.@LONGVER@.fixed libcblas$(SYMBOLSUFFIX).so.@LONGVER@ endif diff --git a/Makefile.lapack b/Makefile.lapack index 76dc685..6b4328d 100644 --- a/Makefile.lapack +++ b/Makefile.lapack @@ -2,8 +2,8 @@ include ../make.inc OBJCOPY = objcopy -ifndef SYMBOLPREFIX -SYMBOLPREFIX = +ifndef SYMBOLSUFFIX +SYMBOLSUFFIX = endif clean: @@ -450,29 +450,29 @@ ALLXOBJ=$(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) $(ALLXAUX) endif static: $(ALLOBJ) $(ALLXOBJ) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ) ranlib liblapack.a else - ar ruv liblapack$(SYMBOLPREFIX).a $(ALLOBJ) $(ALLXOBJ) - ranlib liblapack$(SYMBOLPREFIX).a - for i in `nm liblapack$(SYMBOLPREFIX).a |grep " T " | awk '{print $$3}'`; do echo "$$i" "64_$$i"; done > lapack-static-prefix.def.dirty + ar ruv liblapack$(SYMBOLSUFFIX).a $(ALLOBJ) $(ALLXOBJ) + ranlib liblapack$(SYMBOLSUFFIX).a + 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$(SYMBOLPREFIX).a liblapack$(SYMBOLPREFIX).a.fixed - rm -rf liblapack$(SYMBOLPREFIX).a - mv liblapack$(SYMBOLPREFIX).a.fixed liblapack$(SYMBOLPREFIX).a + $(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 shared: $(ALLOBJ) $(ALLXOBJ) -ifeq "$(SYMBOLPREFIX)" "" +ifeq "$(SYMBOLSUFFIX)" "" # No renaming needed 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$(SYMBOLPREFIX).so.@SHORTVER@ -o liblapack$(SYMBOLPREFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc - # generate a list of all symbols in shared library and rename with SYMBOLPREFIX - for i in `readelf -Ws liblapack$(SYMBOLPREFIX).so.@LONGVER@ | awk '{print $$8}' | grep -v GLIBC |grep -v GFORTRAN |grep -v "Name" `; do echo "$$i" "64_$$i"; done > lapack-prefix.def.dirty + cc $(CFLAGS) -shared -Wl,-soname,liblapack$(SYMBOLSUFFIX).so.@SHORTVER@ -o liblapack$(SYMBOLSUFFIX).so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) $(LDFLAGS) -L.. -lblas -lm -lgfortran -lc + # 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 - $(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLPREFIX).so.@LONGVER@ liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed - rm -rf liblapack$(SYMBOLPREFIX).so.@LONGVER@ - mv liblapack$(SYMBOLPREFIX).so.@LONGVER@.fixed liblapack$(SYMBOLPREFIX).so.@LONGVER@ + $(OBJCOPY) --redefine-syms lapack-prefix.def liblapack$(SYMBOLSUFFIX).so.@LONGVER@ liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed + rm -rf liblapack$(SYMBOLSUFFIX).so.@LONGVER@ + mv liblapack$(SYMBOLSUFFIX).so.@LONGVER@.fixed liblapack$(SYMBOLSUFFIX).so.@LONGVER@ endif diff --git a/lapack.spec b/lapack.spec index 30886b4..cf63cbe 100644 --- a/lapack.spec +++ b/lapack.spec @@ -10,7 +10,7 @@ Summary: Numerical linear algebra package libraries Name: lapack Version: %{mediumver}.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSD URL: http://www.netlib.org/lapack/ Source0: https://github.com/Reference-LAPACK/lapack/archive/v%{version}.tar.gz @@ -30,7 +30,7 @@ Patch8: https://github.com/Reference-LAPACK/lapack/commit/87536aa3c8bb0af00f6608 BuildRequires: gcc-gfortran, gawk Requires: blas%{?_isa} = %{version}-%{release} -%description +%global _description_lapack %{expand: LAPACK (Linear Algebra PACKage) is a standard library for numerical linear algebra. LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear @@ -42,6 +42,14 @@ are also included. LAPACK can handle dense and banded matrices, but not general sparse matrices. Similar functionality is provided for real and complex matrices in both single and double precision. LAPACK is coded in Fortran90 and built with gcc. +} + +%global _description_blas %{expand: +BLAS (Basic Linear Algebra Subprograms) is a standard library which +provides a number of basic algorithms for numerical algebra. +} + +%description %_description_lapack %package devel Summary: LAPACK development libraries @@ -61,9 +69,7 @@ LAPACK static libraries. %package -n blas Summary: The Basic Linear Algebra Subprograms library -%description -n blas -BLAS (Basic Linear Algebra Subprograms) is a standard library which -provides a number of basic algorithms for numerical algebra. +%description -n blas %_description_blas %package -n blas-devel Summary: BLAS development libraries @@ -85,59 +91,27 @@ BLAS static libraries. Summary: Numerical linear algebra package libraries Requires: blas64%{?_isa} = %{version}-%{release} -%description -n lapack64 -LAPACK (Linear Algebra PACKage) is a standard library for numerical -linear algebra. LAPACK provides routines for solving systems of -simultaneous linear equations, least-squares solutions of linear -systems of equations, eigenvalue problems, and singular value -problems. Associated matrix factorizations (LU, Cholesky, QR, SVD, -Schur, and generalized Schur) and related computations (i.e., -reordering of Schur factorizations and estimating condition numbers) -are also included. LAPACK can handle dense and banded matrices, but -not general sparse matrices. Similar functionality is provided for -real and complex matrices in both single and double precision. LAPACK -is coded in Fortran90 and built with gcc. +%description -n lapack64 %_description_lapack This build has 64bit INTEGER support. -%package -n lapack64-devel -Summary: LAPACK development libraries (64bit INTEGER) -Requires: lapack64%{?_isa} = %{version}-%{release} -Requires: lapack-devel%{?_isa} = %{version}-%{release} -Requires: blas64-devel%{?_isa} = %{version}-%{release} - -%description -n lapack64-devel -LAPACK development libraries (shared, 64bit INTEGER). - -%package -n lapack64-static -Summary: LAPACK static libraries (64bit INTEGER) -Requires: lapack64-devel%{?_isa} = %{version}-%{release} - -%description -n lapack64-static -LAPACK static libraries (64bit INTEGER). - %package -n blas64 Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER) -%description -n blas64 -BLAS (Basic Linear Algebra Subprograms) is a standard library which -provides a number of basic algorithms for numerical algebra. This build -has 64bit INTEGER support. +%description -n blas64 %_description_blas +This build has 64bit INTEGER support. -%package -n blas64-devel -Summary: BLAS development libraries -Requires: blas64%{?_isa} = %{version}-%{release} -Requires: blas-devel%{?_isa} = %{version}-%{release} -Requires: gcc-gfortran +%package -n lapack64_ +Summary: Numerical linear algebra package libraries +Requires: blas64_%{?_isa} = %{version}-%{release} -%description -n blas64-devel -BLAS development libraries (shared). +%description -n lapack64_ %_description_lapack +This build has 64bit INTEGER support and a symbol name suffix. -%package -n blas64-static -Summary: BLAS static libraries (64bit INTEGER) -Requires: blas64-devel%{?_isa} = %{version}-%{release} +%package -n blas64_ +Summary: The Basic Linear Algebra Subprograms library (64bit INTEGER) -%description -n blas64-static -BLAS static libraries (64bit INTEGER). +%description -n blas64_ %_description_blas +This build has 64bit INTEGER support and a symbol name suffix. %endif %prep @@ -184,17 +158,26 @@ 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 -SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static +FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static +cp libblas.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} +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 cp libblas64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64_.a make clean FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o -SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared +SYMBOLSUFFIX="64_" 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} %endif popd ln -s libblas.so.%{version} libblas.so %if 0%{?arch64} +ln -s libblas64.so.%{version} libblas64.so ln -s libblas64_.so.%{version} libblas64_.so %endif @@ -208,16 +191,23 @@ 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 -SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -I../include" make static +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 +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} +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 make clean -SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared +SYMBOLSUFFIX="64_" 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} %endif popd ln -s libcblas.so.%{version} libcblas.so %if 0%{?arch64} +ln -s libcblas64.so.%{version} libcblas64.so ln -s libcblas64_.so.%{version} libcblas64_.so %endif @@ -248,12 +238,40 @@ popd %if 0%{?arch64} # Build the static dlamch, dsecnd, lsame, second, slamch bits pushd INSTALL +make clean make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" popd # Build the static lapack library pushd SRC -make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static +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 +popd + +# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER) +pushd INSTALL +make clean +make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-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 +popd + +# Build the static dlamch, dsecnd, lsame, second, slamch bits +pushd INSTALL +make clean +make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" +popd + +# Build the static lapack library +pushd SRC +make clean +make SYMBOLSUFFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_.a popd @@ -266,8 +284,8 @@ popd # Build the static with pic lapack library (64bit INTEGER) pushd SRC make clean -make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static -cp liblapack64_.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64_pic.a +make SYMBOLSUFFIX="64_" 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 %endif @@ -294,14 +312,27 @@ popd # Build the shared lapack library pushd SRC make clean -make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" LDFLAGS="%{build_ldflags}" shared +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} +popd + +# Build the shared dlamch, dsecnd, lsame, second, slamch bits +pushd INSTALL +make clean +make FFLAGS_NOOPT="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" +popd + +# Build the shared lapack library +pushd SRC +make clean +make SYMBOLSUFFIX="64_" 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 %endif ln -s liblapack.so.%{version} liblapack.so - %if 0%{?arch64} +ln -s liblapack64.so.%{version} liblapack64.so ln -s liblapack64_.so.%{version} liblapack64_.so %endif @@ -323,12 +354,16 @@ mkdir -p %{buildroot}%{_libdir} mkdir -p %{buildroot}%{_mandir}/man3 chmod 755 %{buildroot}%{_mandir}/man3 -for f in liblapack.so.%{version} libblas.so.%{version} libcblas.so.%{version} liblapacke.so.%{version} libblas.a libcblas.a liblapack.a liblapack_pic.a liblapacke.a; do +for f in liblapack.so.%{version} libblas.so.%{version} libcblas.so.%{version} liblapacke.so.%{version} \ + libblas.a libcblas.a liblapack.a liblapack_pic.a liblapacke.a; do cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f done %if 0%{?arch64} -for f in liblapack64_.so.%{version} libblas64_.so.%{version} libcblas64_.so.%{version} libblas64_.a libcblas64_.a liblapack64_.a liblapack64_pic.a; do +for f in liblapack64.so.%{version} libblas64.so.%{version} libcblas64.so.%{version} \ + liblapack64_.so.%{version} libblas64_.so.%{version} libcblas64_.so.%{version} \ + libblas64.a libcblas64.a liblapack64.a liblapack_pic64.a \ + libblas64_.a libcblas64_.a liblapack64_.a liblapack_pic64_.a; do cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f done %endif @@ -405,6 +440,15 @@ ln -sf liblapacke.so.%{version} liblapacke.so ln -sf liblapacke.so.%{version} liblapacke.so.%{shortver} ln -sf liblapacke.so.%{version} liblapacke.so.%{mediumver} %if 0%{?arch64} +ln -sf liblapack64.so.%{version} liblapack64.so +ln -sf liblapack64.so.%{version} liblapack64.so.%{shortver} +ln -sf liblapack64.so.%{version} liblapack64.so.%{mediumver} +ln -sf libblas64.so.%{version} libblas64.so +ln -sf libblas64.so.%{version} libblas64.so.%{shortver} +ln -sf libblas64.so.%{version} libblas64.so.%{mediumver} +ln -sf libcblas64.so.%{version} libcblas64.so +ln -sf libcblas64.so.%{version} libcblas64.so.%{shortver} +ln -sf libcblas64.so.%{version} libcblas64.so.%{mediumver} ln -sf liblapack64_.so.%{version} liblapack64_.so ln -sf liblapack64_.so.%{version} liblapack64_.so.%{shortver} ln -sf liblapack64_.so.%{version} liblapack64_.so.%{mediumver} @@ -425,8 +469,11 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/lapack.pc %if 0%{?arch64} cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64.pc -sed -i 's|-llapack|-llapack64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc +sed -i 's|-llapack|-llapack64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc sed -i 's|blas|blas64|g' %{buildroot}%{_libdir}/pkgconfig/lapack64.pc +cp -a %{buildroot}%{_libdir}/pkgconfig/lapack.pc %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc +sed -i 's|-llapack|-llapack64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc +sed -i 's|blas|blas64_|g' %{buildroot}%{_libdir}/pkgconfig/lapack64_.pc %endif cp -a BLAS/blas.pc.in %{buildroot}%{_libdir}/pkgconfig/blas.pc sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc @@ -434,7 +481,9 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}|g' %{buildroot}%{_libdi sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/blas.pc %if 0%{?arch64} cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64.pc -sed -i 's|-lblas|-lblas64_|g' %{buildroot}%{_libdir}/pkgconfig/blas64.pc +sed -i 's|-lblas|-lblas64|g' %{buildroot}%{_libdir}/pkgconfig/blas64.pc +cp -a %{buildroot}%{_libdir}/pkgconfig/blas.pc %{buildroot}%{_libdir}/pkgconfig/blas64_.pc +sed -i 's|-lblas|-lblas64_|g' %{buildroot}%{_libdir}/pkgconfig/blas64_.pc %endif cp -a LAPACKE/lapacke.pc.in %{buildroot}%{_libdir}/pkgconfig/lapacke.pc sed -i 's|@CMAKE_INSTALL_FULL_LIBDIR@|%{_libdir}|g' %{buildroot}%{_libdir}/pkgconfig/lapacke.pc @@ -446,8 +495,11 @@ sed -i 's|@CMAKE_INSTALL_FULL_INCLUDEDIR@|%{_includedir}/cblas|g' %{buildroot}%{ sed -i 's|@LAPACK_VERSION@|%{version}|g' %{buildroot}%{_libdir}/pkgconfig/cblas.pc %if 0%{?arch64} cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64.pc -sed -i 's|-lcblas|-lcblas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc +sed -i 's|-lcblas|-lcblas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libdir}/pkgconfig/cblas64.pc +cp -a %{buildroot}%{_libdir}/pkgconfig/cblas.pc %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc +sed -i 's|-lcblas|-lcblas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc +sed -i 's|Requires.private: blas|Requires.private: blas64_|g' %{buildroot}%{_libdir}/pkgconfig/cblas64_.pc %endif %ldconfig_scriptlets @@ -456,8 +508,10 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd %if 0%{?arch64} %ldconfig_scriptlets -n lapack64 +%ldconfig_scriptlets -n lapack64_ %ldconfig_scriptlets -n blas64 +%ldconfig_scriptlets -n blas64_ %endif %files -f lapackmans @@ -471,11 +525,23 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd %{_libdir}/liblapacke.so %{_libdir}/pkgconfig/lapack.pc %{_libdir}/pkgconfig/lapacke.pc +%if 0%{?arch64} +%{_libdir}/liblapack64.so +%{_libdir}/pkgconfig/lapack64.pc +%{_libdir}/liblapack64_.so +%{_libdir}/pkgconfig/lapack64_.pc +%endif %files static %{_libdir}/liblapack.a %{_libdir}/liblapack_pic.a %{_libdir}/liblapacke.a +%if 0%{?arch64} +%{_libdir}/liblapack64.a +%{_libdir}/liblapack_pic64.a +%{_libdir}/liblapack64_.a +%{_libdir}/liblapack_pic64_.a +%endif %files -n blas -f blasmans %doc blasqr.ps LICENSE @@ -488,41 +554,51 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd %{_libdir}/libcblas.so %{_libdir}/pkgconfig/blas.pc %{_libdir}/pkgconfig/cblas.pc +%if 0%{?arch64} +%{_libdir}/libblas64.so +%{_libdir}/libcblas64.so +%{_libdir}/pkgconfig/blas64.pc +%{_libdir}/pkgconfig/cblas64.pc +%{_libdir}/libblas64_.so +%{_libdir}/libcblas64_.so +%{_libdir}/pkgconfig/blas64_.pc +%{_libdir}/pkgconfig/cblas64_.pc +%endif %files -n blas-static %{_libdir}/libblas.a %{_libdir}/libcblas.a +%if 0%{?arch64} +%{_libdir}/libblas64.a +%{_libdir}/libcblas64.a +%{_libdir}/libblas64_.a +%{_libdir}/libcblas64_.a +%endif %if 0%{?arch64} %files -n blas64 %doc LICENSE -%{_libdir}/libblas64_.so.* -%{_libdir}/libcblas64_.so.* - -%files -n blas64-devel -%{_libdir}/libblas64_.so -%{_libdir}/libcblas64_.so -%{_libdir}/pkgconfig/blas64.pc -%{_libdir}/pkgconfig/cblas64.pc - -%files -n blas64-static -%{_libdir}/libblas64_.a -%{_libdir}/libcblas64_.a +%{_libdir}/libblas64.so.* +%{_libdir}/libcblas64.so.* %files -n lapack64 %doc README.md LICENSE +%{_libdir}/liblapack64.so.* + +%files -n blas64_ +%doc LICENSE +%{_libdir}/libblas64_.so.* +%{_libdir}/libcblas64_.so.* + +%files -n lapack64_ +%doc README.md LICENSE %{_libdir}/liblapack64_.so.* - -%files -n lapack64-devel -%{_libdir}/liblapack64_.so -%{_libdir}/pkgconfig/lapack64.pc - -%files -n lapack64-static -%{_libdir}/liblapack64_.a -%{_libdir}/liblapack64_pic.a %endif %changelog +* Sun Jun 21 2020 Iñaki Úcar - 3.9.0-4 +- make separate packages for 64-bit versions with and without suffix (bz1295965) + * Thu Mar 19 2020 Tom Callaway - 3.9.0-3 - apply upstream fix for accidental removal of deprecated symbols from header file