From 001fc9f9d912ba3c1ead91be3a586733d6142297 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 5 Mar 2018 16:50:54 -0500 Subject: [PATCH] use LDFLAGS for shared libs --- Makefile.blas | 4 ++-- Makefile.cblas | 4 ++-- Makefile.lapack | 4 ++-- lapack-3.7.1-lapacke-shared.patch | 2 +- lapack-3.7.1-lapacke-tmglib.patch | 4 ++-- lapack.spec | 19 +++++++++++-------- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Makefile.blas b/Makefile.blas index f73bc30..94bd165 100644 --- a/Makefile.blas +++ b/Makefile.blas @@ -72,9 +72,9 @@ endif shared: $(OBJS) ifeq "$(SYMBOLPREFIX)" "" # No renaming needed - cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) -lm -lgfortran -lc + 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) -lm -lgfortran -lc + 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 sort -n blas-prefix.def.dirty | uniq > blas-prefix.def diff --git a/Makefile.cblas b/Makefile.cblas index 2d1bc1c..9318b69 100644 --- a/Makefile.cblas +++ b/Makefile.cblas @@ -86,9 +86,9 @@ endif shared: $(OBJS) ifeq "$(SYMBOLPREFIX)" "" # No renaming needed - cc $(CFLAGS) -shared -Wl,-soname,libcblas.so.@SHORTVER@ -o libcblas.so.@LONGVER@ $(OBJS) -L../../ -lblas -lm -lgfortran -lc + 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) -L../.. -lblas -lm -lgfortran -lc + 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 sort -n cblas-prefix.def.dirty | uniq > cblas-prefix.def diff --git a/Makefile.lapack b/Makefile.lapack index 7e50419..07661ef 100644 --- a/Makefile.lapack +++ b/Makefile.lapack @@ -458,9 +458,9 @@ endif shared: $(ALLOBJ) $(ALLXOBJ) ifeq "$(SYMBOLPREFIX)" "" # No renaming needed - cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.@SHORTVER@ -o liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) -L.. -lblas -lm -lgfortran -lc + 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) -L.. -lblas -lm -lgfortran -lc + 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 sort -n lapack-prefix.def.dirty | uniq > lapack-prefix.def diff --git a/lapack-3.7.1-lapacke-shared.patch b/lapack-3.7.1-lapacke-shared.patch index 0833c1b..1b4d4ea 100644 --- a/lapack-3.7.1-lapacke-shared.patch +++ b/lapack-3.7.1-lapacke-shared.patch @@ -14,7 +14,7 @@ diff -up lapack-3.7.1/LAPACKE/Makefile.shared lapack-3.7.1/LAPACKE/Makefile cp $< $@ +shlib: lapacke -+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc ++ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc + lapacke_example: lapacke $(MAKE) -C example diff --git a/lapack-3.7.1-lapacke-tmglib.patch b/lapack-3.7.1-lapacke-tmglib.patch index c4b41b3..fd3c859 100644 --- a/lapack-3.7.1-lapacke-tmglib.patch +++ b/lapack-3.7.1-lapacke-tmglib.patch @@ -5,8 +5,8 @@ diff -up lapack-3.7.1/LAPACKE/Makefile.tmglib lapack-3.7.1/LAPACKE/Makefile cp $< $@ shlib: lapacke -- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc -+ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o +- $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc ++ $(CC) $(CFLAGS) -shared -Wl,-soname,$(SHLIB_LAPACKE).@SHORTVER@ -o $(SHLIB_LAPACKE).@LONGVER@ src/*.o utils/*.o $(LDFLAGS) $(LIBS) -lgfortran -lc ../TESTING/MATGEN/*.o lapacke_example: lapacke $(MAKE) -C example diff --git a/lapack.spec b/lapack.spec index 42486e8..f0310c5 100644 --- a/lapack.spec +++ b/lapack.spec @@ -10,7 +10,7 @@ Summary: Numerical linear algebra package libraries Name: lapack Version: %{mediumver}.0 -Release: 7%{?dist} +Release: 8%{?dist} License: BSD Group: System Environment/Libraries URL: http://www.netlib.org/lapack/ @@ -190,7 +190,7 @@ FFLAGS="$RPM_OPT_FLAGS" CFLAGS="$RPM_OPT_FLAGS" make static cp libblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/ make clean FFLAGS="$RPM_OPT_O_FLAGS -fPIC" make dcabs1.o -FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" make shared +FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" make shared cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ %if 0%{?arch64} make clean @@ -199,7 +199,7 @@ SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_ 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" make shared +SYMBOLPREFIX="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 @@ -215,14 +215,14 @@ pushd CBLAS/src FFLAGS="$RPM_OPT_FLAGS" CFLAGS="$RPM_OPT_FLAGS -I../include" make static cp libcblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/ make clean -FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" make shared +FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC -I../include" LDFLAGS="%{build_ldflags}" make shared 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 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" make shared +SYMBOLPREFIX="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 @@ -291,7 +291,7 @@ popd # Build the shared lapack library pushd SRC make clean -make FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" shared +make FFLAGS="$RPM_OPT_FLAGS -fPIC" CFLAGS="$RPM_OPT_FLAGS -fPIC" LDFLAGS="%{build_ldflags}" shared cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ popd @@ -305,7 +305,7 @@ 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" shared +make SYMBOLPREFIX="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 @@ -322,7 +322,7 @@ pushd LAPACKE make clean make CFLAGS="$RPM_OPT_FLAGS" BUILD_DEPRECATED="true" lapacke make clean -make CFLAGS="$RPM_OPT_FLAGS -fPIC" BUILD_DEPRECATED="true" shlib +make CFLAGS="$RPM_OPT_FLAGS -fPIC" BUILD_DEPRECATED="true" LDFLAGS="%{build_ldflags}" shlib cp liblapacke.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/ popd @@ -542,6 +542,9 @@ sed -i 's|Requires.private: blas|Requires.private: blas64|g' %{buildroot}%{_libd %endif %changelog +* Mon Mar 5 2018 Tom Callaway - 3.8.0-8 +- use LDFLAGS for shared libs + * Mon Feb 26 2018 Tom Callaway - 3.8.0-7 - add missing aawork functions back to lapacke makefile (bz1549262)