# HG changeset patch # User John W. Eaton # Date 1529559130 14400 # Node ID 80461a9e516ce3ed56bff94e3a2dd6dd19de1d5c # Parent 1ecb1e67eaa1417e314db81e66486792616ce09a override default xerbla with version from Octave * mingw-blas-1-xerbla.patch, blas.mk: Build default libxerbla lib. * mingw-lapack-1-xerbla.patch, lapack.mk: Use external libxerbla. * mingw-openblas-1-xerbla.patch, openblas.mk: Likewise. * src/qrupdate-1-fixes.patch: Likewise. * default-octave.mk: Also install libxerbla.dll as libxerbla-octave.dll. diff -r 1ecb1e67eaa1 -r 80461a9e516c src/blas.mk --- a/src/blas.mk Sat Jun 09 10:13:46 2018 -0400 +++ b/src/blas.mk Thu Jun 21 01:32:10 2018 -0400 @@ -21,17 +21,29 @@ tail -1 endef +$(PKG)_TARGETS = BLASLIB=libblas.a +ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_TARGETS += XERBLALIB=libxerbla.a + $(PKG)_LIBXERBLA = -lxerbla +endif + define $(PKG)_BUILD $(SED) -i 's,$$(FORTRAN),$(MXE_F77) $(MXE_F77_PICFLAG) $($(PKG)_DEFAULT_INTEGER_8_FLAG),g' '$(1)/Makefile' - $(MAKE) -C '$(1)' -j '$(JOBS)' - cd '$(1)' && $(MXE_AR) cr libblas.a *.o + $(MAKE) -C '$(1)' ARCH=$(MXE_AR) RANLIB=$(MXE_RANLIB) $($(PKG)_TARGETS) -j '$(JOBS)' if [ $(BUILD_SHARED) = yes ]; then \ - $(MAKE_SHARED_FROM_STATIC) --ar '$(MXE_AR)' --ld '$(MXE_F77)' '$(1)/libblas.a' --install '$(INSTALL)' --libdir '$(3)$(HOST_LIBDIR)' --bindir '$(3)$(HOST_BINDIR)'; \ + if [ -n "$($(PKG)_LIBXERBLA)" ]; then \ + $(MAKE_SHARED_FROM_STATIC) --ar '$(MXE_AR)' --ld '$(MXE_F77)' '$(1)/libxerbla.a' --install '$(INSTALL)' --libdir '$(3)$(HOST_LIBDIR)' --bindir '$(3)$(HOST_BINDIR)'; \ + $(INSTALL) '$(3)/$(HOST_BINDIR)/libxerbla.dll' '$(3)$(HOST_BINDIR)/libxerbla-blas.dll'; \ + fi; \ + $(MAKE_SHARED_FROM_STATIC) --ar '$(MXE_AR)' --ld '$(MXE_F77)' '$(1)/libblas.a' --install '$(INSTALL)' --libdir '$(3)$(HOST_LIBDIR)' --bindir '$(3)$(HOST_BINDIR)' $($(PKG)_LIBXERBLA); \ fi if [ $(BUILD_STATIC) = yes ]; then \ $(INSTALL) -d '$(3)$(HOST_LIBDIR)'; \ $(INSTALL) '$(1)/libblas.a' '$(3)$(HOST_LIBDIR)/'; \ + if [ -n "$($(PKG)_LIBXERBLA)" ]; then \ + $(INSTALL) '$(1)/libxerbla.a' '$(3)$(HOST_LIBDIR)/'; \ + fi; \ fi endef diff -r 1ecb1e67eaa1 -r 80461a9e516c src/default-octave.mk --- a/src/default-octave.mk Sat Jun 09 10:13:46 2018 -0400 +++ b/src/default-octave.mk Thu Jun 21 01:32:10 2018 -0400 @@ -185,6 +185,7 @@ $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)' if [ "x$(MXE_SYSTEM)" == "xmingw" ]; then \ + $(INSTALL) '$(3)/$(HOST_BINDIR)/libxerbla.dll' '$(3)$(HOST_BINDIR)/libxerbla-octave.dll'; \ cp '$(1)/.build/src/.libs/octave-gui.exe' '$(3)$(HOST_BINDIR)'; \ if [ "x$(ENABLE_BINARY_PACKAGES)" == "xyes" ]; then \ mkdir -p '$(3)$(BUILD_TOOLS_PREFIX)/bin'; \ diff -r 1ecb1e67eaa1 -r 80461a9e516c src/lapack.mk --- a/src/lapack.mk Sat Jun 09 10:13:46 2018 -0400 +++ b/src/lapack.mk Thu Jun 21 01:32:10 2018 -0400 @@ -11,9 +11,15 @@ $(PKG)_DEPS := blas ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) - $(PKG)_BLAS_CONFIG_OPTS := -DBLAS_LIBRARIES=$(HOST_BINDIR)/libblas.dll + $(PKG)_BLAS_CONFIG_OPTS := -DBLAS_LIBRARIES="$(HOST_BINDIR)/libblas.dll $(HOST_BINDIR)/libxerbla.dll" else - $(PKG)_BLAS_CONFIG_OPTS := -DBLAS_LIBRARIES="-L$(HOST_PREFIX)/lib -lblas" +ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_BLAS_CONFIG_OPTS := -DBLAS_LIBRARIES="-L$(HOST_PREFIX)/lib -lblas -lxerbla" -DBLAS_LINKER_FLAGS="-L$(HOST_PREFIX)/lib -lblas -lxerbla" + $(PKG)_BLAS_LIBS := -lblas -lxerbla +else + $(PKG)_BLAS_CONFIG_OPTS := -DBLAS_LIBRARIES="-L$(HOST_PREFIX)/lib -lblas" -DBLAS_LINKER_FLAGS="-L$(HOST_PREFIX)/lib -lblas" + $(PKG)_BLAS_LIBS := -lblas +endif endif ifeq ($(ENABLE_FORTRAN_INT64),yes) @@ -38,7 +44,7 @@ $(MAKE) -C '$(1)' -j '$(JOBS)' VERBOSE=1 lapacklib if [ $(BUILD_SHARED) = yes ]; then \ - $(MAKE_SHARED_FROM_STATIC) --ar '$(MXE_AR)' --ld '$(MXE_F77)' '$(1)/liblapack.a' --install '$(INSTALL)' --libdir '$(HOST_LIBDIR)' --bindir '$(HOST_BINDIR)' -lblas; \ + $(MAKE_SHARED_FROM_STATIC) --ar '$(MXE_AR)' --ld '$(MXE_F77)' '$(1)/liblapack.a' --install '$(INSTALL)' --libdir '$(HOST_LIBDIR)' --bindir '$(HOST_BINDIR)' $($(PKG)_BLAS_LIBS); \ fi $(INSTALL) -d '$(HOST_LIBDIR)/pkgconfig' diff -r 1ecb1e67eaa1 -r 80461a9e516c src/mingw-blas-1-xerbla.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mingw-blas-1-xerbla.patch Thu Jun 21 01:32:10 2018 -0400 @@ -0,0 +1,52 @@ +diff -uNr a/Makefile b/Makefile +--- a/Makefile 2017-11-15 00:39:21.000000000 -0500 ++++ b/Makefile 2018-06-20 09:55:02.049803368 -0400 +@@ -55,8 +55,8 @@ + # + ####################################################################### + +-all: $(BLASLIB) +- ++all: $(BLASLIB) $(XERBLALIB) ++ + #--------------------------------------------------------- + # Comment out the next 6 definitions if you already have + # the Level 1 BLAS. +@@ -88,9 +88,11 @@ + # Level 2 and Level 3 BLAS. Comment it out only if you already have + # both the Level 2 and 3 BLAS. + #--------------------------------------------------------------------- +-ALLBLAS = lsame.o xerbla.o xerbla_array.o ++ALLBLAS = lsame.o xerbla_array.o + $(ALLBLAS) : $(FRC) + ++XERBLA = xerbla.o ++ + #--------------------------------------------------------- + # Comment out the next 4 definitions if you already have + # the Level 2 BLAS. +@@ -137,10 +139,16 @@ + $(CBLAS1) $(CBLAS2) $(CBLAS3) $(ZBLAS1) \ + $(ZBLAS2) $(ZBLAS3) $(ALLBLAS) + ++XERBLAOBJ=$(XERBLA) ++ + $(BLASLIB): $(ALLOBJ) + $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) + $(RANLIB) $@ + ++$(XERBLALIB): $(XERBLAOBJ) ++ $(ARCH) $(ARCHFLAGS) $@ $(XERBLAOBJ) ++ $(RANLIB) $@ ++ + single: $(SBLAS1) $(ALLBLAS) $(SBLAS2) $(SBLAS3) + $(ARCH) $(ARCHFLAGS) $(BLASLIB) $(SBLAS1) $(ALLBLAS) \ + $(SBLAS2) $(SBLAS3) +diff -uNr a/make.inc b/make.inc +--- a/make.inc 2011-04-19 15:08:00.000000000 -0400 ++++ b/make.inc 2018-06-20 09:55:18.185059266 -0400 +@@ -32,3 +32,4 @@ + # The location and name of the Reference BLAS library. + # + BLASLIB = blas$(PLAT).a ++XERBLALIB = xerbla$(PLAT).a diff -r 1ecb1e67eaa1 -r 80461a9e516c src/mingw-lapack-1-xerbla.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mingw-lapack-1-xerbla.patch Thu Jun 21 01:32:10 2018 -0400 @@ -0,0 +1,24 @@ +diff -uNr a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt +--- a/SRC/CMakeLists.txt 2017-06-17 18:46:53.000000000 -0400 ++++ b/SRC/CMakeLists.txt 2018-06-20 12:10:39.078671922 -0400 +@@ -37,7 +37,7 @@ + + set(ALLAUX ilaenv.f ieeeck.f lsamen.f iparmq.f iparam2stage.F + ilaprec.f ilatrans.f ilauplo.f iladiag.f chla_transtype.f +- ../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla.f xerbla_array.f ++ ../INSTALL/ilaver.f ../INSTALL/lsame.f xerbla_array.f + ../INSTALL/slamch.f) + + set(SCLAUX +diff -uNr a/SRC/Makefile b/SRC/Makefile +--- a/SRC/Makefile 2017-06-17 18:46:53.000000000 -0400 ++++ b/SRC/Makefile 2018-06-20 11:48:05.702370314 -0400 +@@ -56,7 +56,7 @@ + # + ####################################################################### + +-ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o iparam2stage.o \ ++ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla_array.o iparmq.o iparam2stage.o \ + ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \ + ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o + diff -r 1ecb1e67eaa1 -r 80461a9e516c src/mingw-openblas-1-xerbla.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/mingw-openblas-1-xerbla.patch Thu Jun 21 01:32:10 2018 -0400 @@ -0,0 +1,50 @@ +diff -uNr a/driver/others/Makefile b/driver/others/Makefile +--- a/driver/others/Makefile 2018-05-23 09:12:20.000000000 -0400 ++++ b/driver/others/Makefile 2018-06-20 10:11:42.783308770 -0400 +@@ -1,7 +1,7 @@ + TOPDIR = ../.. + include ../../Makefile.system + +-COMMONOBJS = memory.$(SUFFIX) xerbla.$(SUFFIX) c_abs.$(SUFFIX) z_abs.$(SUFFIX) openblas_set_num_threads.$(SUFFIX) openblas_get_num_threads.$(SUFFIX) openblas_get_num_procs.$(SUFFIX) openblas_get_config.$(SUFFIX) openblas_get_parallel.$(SUFFIX) openblas_error_handle.$(SUFFIX) openblas_env.$(SUFFIX) ++COMMONOBJS = memory.$(SUFFIX) c_abs.$(SUFFIX) z_abs.$(SUFFIX) openblas_set_num_threads.$(SUFFIX) openblas_get_num_threads.$(SUFFIX) openblas_get_num_procs.$(SUFFIX) openblas_get_config.$(SUFFIX) openblas_get_parallel.$(SUFFIX) openblas_error_handle.$(SUFFIX) openblas_env.$(SUFFIX) + + #COMMONOBJS += slamch.$(SUFFIX) slamc3.$(SUFFIX) dlamch.$(SUFFIX) dlamc3.$(SUFFIX) + +@@ -71,14 +71,11 @@ + endif + + ifeq ($(DYNAMIC_ARCH), 1) +-HPLOBJS = memory.$(SUFFIX) xerbla.$(SUFFIX) dynamic.$(SUFFIX) ++HPLOBJS = memory.$(SUFFIX) dynamic.$(SUFFIX) + else +-HPLOBJS = memory.$(SUFFIX) xerbla.$(SUFFIX) parameter.$(SUFFIX) ++HPLOBJS = memory.$(SUFFIX) parameter.$(SUFFIX) + endif + +-xerbla.$(SUFFIX) : xerbla.c +- $(CC) $(CFLAGS) -c $< -o $(@F) +- + dynamic.$(SUFFIX) : dynamic.c + $(CC) $(CFLAGS) -c $< -o $(@F) + +@@ -166,9 +163,6 @@ + mulx.$(SUFFIX) : $(ARCH)/mulx.c + $(CC) $(CFLAGS) -c -DXDOUBLE -UCOMPLEX $< -o $(@F) + +-xerbla.$(PSUFFIX) : xerbla.c +- $(CC) $(PFLAGS) -c $< -o $(@F) +- + parameter.$(PSUFFIX) : parameter.c ../../param.h + $(CC) $(PFLAGS) -c $< -o $(@F) + +diff -uNr a/exports/gensymbol b/exports/gensymbol +--- a/exports/gensymbol 2018-05-23 09:12:20.000000000 -0400 ++++ b/exports/gensymbol 2018-06-20 10:10:00.468225478 -0400 +@@ -38,7 +38,6 @@ + zhbmv,zhemm,zhemv,zher2,zher2k,zher,zherk,zhpmv,zhpr2, + zhpr,zrotg,zscal,zswap,zsymm,zsyr2k,zsyrk,ztbmv, + ztbsv,ztpmv,ztpsv,ztrmm,ztrmv,ztrsm,ztrsv, +- xerbla, + saxpby,daxpby,caxpby,zaxpby, + sgeadd,dgeadd,cgeadd,zgeadd, + somatcopy, diff -r 1ecb1e67eaa1 -r 80461a9e516c src/openblas.mk --- a/src/openblas.mk Sat Jun 09 10:13:46 2018 -0400 +++ b/src/openblas.mk Thu Jun 21 01:32:10 2018 -0400 @@ -19,6 +19,10 @@ $(PKG)_MAKE_OPTS += NO_CBLAS=1 USE_THREAD=1 CC=$(MXE_CC) FC=$(MXE_F77) HOSTCC=gcc HOSTFC=gfortran CROSS=1 CROSS_SUFFIX=$(MXE_TOOL_PREFIX) endif +ifeq ($(MXE_WINDOWS_BUILD),yes) + $(PKG)_MAKE_OPTS += EXTRALIB=-lxerbla +endif + ifeq ($(ENABLE_FORTRAN_INT64),yes) $(PKG)_MAKE_OPTS += BINARY=64 INTERFACE64=1 endif diff -r 1ecb1e67eaa1 -r 80461a9e516c src/qrupdate-1-fixes.patch --- a/src/qrupdate-1-fixes.patch Sat Jun 09 10:13:46 2018 -0400 +++ b/src/qrupdate-1-fixes.patch Thu Jun 21 01:32:10 2018 -0400 @@ -44477,7 +44477,7 @@ + +libqrupdate_la_LIBADD = \ + $(LAPACK_LIBS) \ -+ $(BLAS_LIBS) ++ $(BLAS_LIBS) -lxerbla + +libqrupdate_la_SOURCES = \ +caxcpy.f cch1dn.f cch1up.f cchdex.f cchinx.f cchshx.f cgqvec.f \