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