move to 64_ suffix and symbol mangling (bz1295965)
This commit is contained in:
parent
87d4de66ee
commit
24c2b26e99
@ -1,3 +1,9 @@
|
||||
OBJCOPY = objcopy
|
||||
|
||||
ifndef SYMBOLPREFIX
|
||||
SYMBOLPREFIX =
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -f *.o libblas.a libblas.so*
|
||||
|
||||
@ -50,8 +56,29 @@ OBJS= $(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
|
||||
$(ALLBLAS)
|
||||
|
||||
static: $(OBJS)
|
||||
ifeq "$(SYMBOLPREFIX)" ""
|
||||
ar ruv libblas.a $(OBJS)
|
||||
ranlib libblas.a
|
||||
else
|
||||
ar ruv $(SYMBOLPREFIX)libblas.a $(OBJS)
|
||||
ranlib $(SYMBOLPREFIX)libblas.a
|
||||
for i in `nm $(SYMBOLPREFIX)libblas.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 $(SYMBOLPREFIX)libblas.a $(SYMBOLPREFIX)libblas.a.fixed
|
||||
rm -rf $(SYMBOLPREFIX)libblas.a
|
||||
mv $(SYMBOLPREFIX)libblas.a.fixed $(SYMBOLPREFIX)libblas.a
|
||||
endif
|
||||
|
||||
shared: $(OBJS)
|
||||
ifeq "$(SYMBOLPREFIX)" ""
|
||||
# No renaming needed
|
||||
cc $(CFLAGS) -shared -Wl,-soname,libblas.so.@SHORTVER@ -o libblas.so.@LONGVER@ $(OBJS) -lm -lgfortran -lc
|
||||
else
|
||||
cc $(CFLAGS) -shared -Wl,-soname,$(SYMBOLPREFIX)libblas.so.@SHORTVER@ -o $(SYMBOLPREFIX)libblas.so.@LONGVER@ $(OBJS) -lm -lgfortran -lc
|
||||
# generate a list of all symbols in shared library and rename with SYMBOLPREFIX
|
||||
for i in `readelf -Ws $(SYMBOLPREFIX)libblas.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 $(SYMBOLPREFIX)libblas.so.@LONGVER@ $(SYMBOLPREFIX)libblas.so.@LONGVER@.fixed
|
||||
rm -rf $(SYMBOLPREFIX)libblas.so.@LONGVER@
|
||||
mv $(SYMBOLPREFIX)libblas.so.@LONGVER@.fixed $(SYMBOLPREFIX)libblas.so.@LONGVER@
|
||||
endif
|
||||
|
@ -1,5 +1,11 @@
|
||||
include ../make.inc
|
||||
|
||||
OBJCOPY = objcopy
|
||||
|
||||
ifndef SYMBOLPREFIX
|
||||
SYMBOLPREFIX =
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -f *.o liblapack* DEPRECATED/*.o
|
||||
|
||||
@ -430,8 +436,29 @@ ALLXOBJ=$(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) $(ALLXAUX)
|
||||
endif
|
||||
|
||||
static: $(ALLOBJ) $(ALLXOBJ)
|
||||
ifeq "$(SYMBOLPREFIX)" ""
|
||||
ar ruv liblapack.a $(ALLOBJ) $(ALLXOBJ)
|
||||
ranlib liblapack.a
|
||||
else
|
||||
ar ruv $(SYMBOLPREFIX)liblapack.a $(ALLOBJ) $(ALLXOBJ)
|
||||
ranlib $(SYMBOLPREFIX)liblapack.a
|
||||
for i in `nm $(SYMBOLPREFIX)liblapack.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 $(SYMBOLPREFIX)liblapack.a $(SYMBOLPREFIX)liblapack.a.fixed
|
||||
rm -rf $(SYMBOLPREFIX)liblapack.a
|
||||
mv $(SYMBOLPREFIX)liblapack.a.fixed $(SYMBOLPREFIX)liblapack.a
|
||||
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
|
||||
else
|
||||
cc $(CFLAGS) -shared -Wl,-soname,$(SYMBOLPREFIX)liblapack.so.@SHORTVER@ -o $(SYMBOLPREFIX)liblapack.so.@LONGVER@ $(ALLOBJ) $(ALLXOBJ) -L.. -lblas -lm -lgfortran -lc
|
||||
# generate a list of all symbols in shared library and rename with SYMBOLPREFIX
|
||||
for i in `readelf -Ws $(SYMBOLPREFIX)liblapack.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 $(SYMBOLPREFIX)liblapack.so.@LONGVER@ $(SYMBOLPREFIX)liblapack.so.@LONGVER@.fixed
|
||||
rm -rf $(SYMBOLPREFIX)liblapack.so.@LONGVER@
|
||||
mv $(SYMBOLPREFIX)liblapack.so.@LONGVER@.fixed $(SYMBOLPREFIX)liblapack.so.@LONGVER@
|
||||
endif
|
||||
|
64
lapack.spec
64
lapack.spec
@ -10,7 +10,7 @@
|
||||
Summary: Numerical linear algebra package libraries
|
||||
Name: lapack
|
||||
Version: %{mediumver}.1
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
License: BSD
|
||||
Group: System Environment/Libraries
|
||||
URL: http://www.netlib.org/lapack/
|
||||
@ -25,7 +25,7 @@ Patch4: lapack-3.7.1-lapacke-shared.patch
|
||||
Patch5: lapack-3.4.1-lapacke-disable-testing-functions.patch
|
||||
Patch6: lapack-3.5.0-lapacke-matgenobj.patch
|
||||
Patch7: lapack-3.7.1-lapacke-tmglib.patch
|
||||
BuildRequires: gcc-gfortran
|
||||
BuildRequires: gcc-gfortran, gawk
|
||||
Requires: blas%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description
|
||||
@ -189,20 +189,18 @@ 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
|
||||
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" make static
|
||||
cp 64_libblas.a ${RPM_BUILD_DIR}/%{name}-%{version}/64_libblas.a
|
||||
make clean
|
||||
FFLAGS="$RPM_OPT_O_FLAGS -fPIC -fdefault-integer-8" make dcabs1.o
|
||||
sed -i 's|-soname,libblas|-soname,libblas64|g' Makefile
|
||||
FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" make shared
|
||||
sed -i 's|-soname,libblas64|-soname,libblas|g' Makefile
|
||||
cp libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/libblas64.so.%{version}
|
||||
SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" make shared
|
||||
cp 64_libblas.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/64_libblas.so.%{version}
|
||||
%endif
|
||||
popd
|
||||
|
||||
ln -s libblas.so.%{version} libblas.so
|
||||
%if 0%{?arch64}
|
||||
ln -s libblas64.so.%{version} libblas64.so
|
||||
ln -s 64_libblas.so.%{version} 64_libblas.so
|
||||
%endif
|
||||
|
||||
# Build the static dlamch, dsecnd, lsame, second, slamch bits
|
||||
@ -237,8 +235,8 @@ popd
|
||||
|
||||
# Build the static lapack library
|
||||
pushd SRC
|
||||
make FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
|
||||
cp liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.a
|
||||
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS" static
|
||||
cp 64_liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/64_liblapack.a
|
||||
popd
|
||||
|
||||
# Build the static with pic dlamch, dsecnd, lsame, second, slamch bits (64bit INTEGER)
|
||||
@ -250,8 +248,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}/liblapack64_pic.a
|
||||
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC" static
|
||||
cp 64_liblapack.a ${RPM_BUILD_DIR}/%{name}-%{version}/64_liblapack_pic.a
|
||||
popd
|
||||
%endif
|
||||
|
||||
@ -278,16 +276,15 @@ popd
|
||||
# Build the shared lapack library
|
||||
pushd SRC
|
||||
make clean
|
||||
sed -i 's|-soname,liblapack|-soname,liblapack64|g' Makefile
|
||||
make FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" shared
|
||||
cp liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/liblapack64.so.%{version}
|
||||
sed -i 's|-soname,liblapack64|-soname,liblapack|g' Makefile
|
||||
make SYMBOLPREFIX="64_" FFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" CFLAGS="$RPM_OPT_FLAGS -fPIC -fdefault-integer-8" shared
|
||||
cp 64_liblapack.so.%{version} ${RPM_BUILD_DIR}/%{name}-%{version}/64_liblapack.so.%{version}
|
||||
popd
|
||||
%endif
|
||||
|
||||
ln -s liblapack.so.%{version} liblapack.so
|
||||
|
||||
%if 0%{?arch64}
|
||||
ln -s liblapack64.so.%{version} liblapack64.so
|
||||
ln -s 64_liblapack.so.%{version} 64_liblapack.so
|
||||
%endif
|
||||
|
||||
# Build the lapacke libraries
|
||||
@ -313,7 +310,7 @@ for f in liblapack.so.%{version} libblas.so.%{version} liblapacke.so.%{version}
|
||||
done
|
||||
|
||||
%if 0%{?arch64}
|
||||
for f in liblapack64.so.%{version} libblas64.so.%{version} libblas64.a liblapack64.a liblapack64_pic.a; do
|
||||
for f in 64_liblapack.so.%{version} 64_libblas.so.%{version} 64_libblas.a 64_liblapack.a 64_liblapack_pic.a; do
|
||||
cp -f $f ${RPM_BUILD_ROOT}%{_libdir}/$f
|
||||
done
|
||||
%endif
|
||||
@ -383,12 +380,12 @@ 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 64_liblapack.so.%{version} 64_liblapack.so
|
||||
ln -sf 64_liblapack.so.%{version} 64_liblapack.so.%{shortver}
|
||||
ln -sf 64_liblapack.so.%{version} 64_liblapack.so.%{mediumver}
|
||||
ln -sf 64_libblas.so.%{version} 64_libblas.so
|
||||
ln -sf 64_libblas.so.%{version} 64_libblas.so.%{shortver}
|
||||
ln -sf 64_libblas.so.%{version} 64_libblas.so.%{mediumver}
|
||||
%endif
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
@ -437,27 +434,30 @@ ln -sf libblas64.so.%{version} libblas64.so.%{mediumver}
|
||||
%if 0%{?arch64}
|
||||
%files -n blas64
|
||||
%doc LICENSE
|
||||
%{_libdir}/libblas64.so.*
|
||||
%{_libdir}/64_libblas.so.*
|
||||
|
||||
%files -n blas64-devel
|
||||
%{_libdir}/libblas64.so
|
||||
%{_libdir}/64_libblas.so
|
||||
|
||||
%files -n blas64-static
|
||||
%{_libdir}/libblas64.a
|
||||
%{_libdir}/64_libblas.a
|
||||
|
||||
%files -n lapack64
|
||||
%doc README.md LICENSE
|
||||
%{_libdir}/liblapack64.so.*
|
||||
%{_libdir}/64_liblapack.so.*
|
||||
|
||||
%files -n lapack64-devel
|
||||
%{_libdir}/liblapack64.so
|
||||
%{_libdir}/64_liblapack.so
|
||||
|
||||
%files -n lapack64-static
|
||||
%{_libdir}/liblapack64.a
|
||||
%{_libdir}/liblapack64_pic.a
|
||||
%{_libdir}/64_liblapack.a
|
||||
%{_libdir}/64_liblapack_pic.a
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Aug 11 2017 Tom Callaway <spot@fedoraproject.org> - 3.7.1-4
|
||||
- move to 64_ suffix and symbol mangling (bz1295965)
|
||||
|
||||
* Thu Aug 10 2017 Tom Callaway <spot@fedoraproject.org> - 3.7.1-3
|
||||
- include DSLASRC and ZCLASRC
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user