diff --git a/.github/workflows/posix.yml b/.github/workflows/posix.yml index bb87fff7..f1415d42 100644 --- a/.github/workflows/posix.yml +++ b/.github/workflows/posix.yml @@ -47,7 +47,7 @@ jobs: INTERFACE64: '1' env: REPO_DIR: OpenBLAS - OPENBLAS_COMMIT: "v0.3.26" + OPENBLAS_COMMIT: "5403900539" NIGHTLY: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} MACOSX_DEPLOYMENT_TARGET: 10.9 MB_PYTHON_VERSION: ${{ matrix.python-version }} diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 354ecefd..bfe5a25c 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -7,7 +7,7 @@ on: branches: [ main ] env: - OPENBLAS_COMMIT: "v0.3.26" + OPENBLAS_COMMIT: "5403900539" OPENBLAS_ROOT: "c:\\opt" # Preserve working directory for calls into bash # Without this, invoking bash will cd to the home directory @@ -27,6 +27,7 @@ jobs: fail-fast: false runs-on: ${{ matrix.os }} + timeout-minutes: 90 steps: - uses: actions/checkout@v4.1.1 - name: install-rtools diff --git a/.travis.yml b/.travis.yml index 08e8e31e..669ddd8b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ env: global: # The archive that gets built has name from ``git describe`` on this # commit. - - OPENBLAS_COMMIT="v0.3.26" + - OPENBLAS_COMMIT="5403900539" - REPO_DIR=OpenBLAS language: python diff --git a/OpenBLAS b/OpenBLAS index 6c77e5e3..54039005 160000 --- a/OpenBLAS +++ b/OpenBLAS @@ -1 +1 @@ -Subproject commit 6c77e5e314474773a7749357b153caba4ec3817d +Subproject commit 5403900539b263532c4c0c49212de118d602552e diff --git a/multibuild b/multibuild index 452dd2d1..88146e74 160000 --- a/multibuild +++ b/multibuild @@ -1 +1 @@ -Subproject commit 452dd2d1705f6b2375369a6570c415beb3163f70 +Subproject commit 88146e74ebc86baf97b6fec448ef766d64326582 diff --git a/patches/0001-create-a-single-shared-object.patch b/patches/0001-create-a-single-shared-object.patch deleted file mode 100644 index 356ee0a7..00000000 --- a/patches/0001-create-a-single-shared-object.patch +++ /dev/null @@ -1,185 +0,0 @@ -From 04b50aef6bca52238afeb627e51a855f9172eea4 Mon Sep 17 00:00:00 2001 -From: mattip -Date: Sun, 21 Jan 2024 22:34:48 +0200 -Subject: [PATCH] create a single shared object - ---- - Makefile | 10 ---------- - Makefile.install | 18 ++---------------- - Makefile.system | 3 +++ - exports/Makefile | 4 ++-- - openblas.pc.in | 2 +- - 5 files changed, 8 insertions(+), 29 deletions(-) - -diff --git a/Makefile b/Makefile -index b344abcd2..ae989ac26 100644 ---- a/Makefile -+++ b/Makefile -@@ -134,17 +134,12 @@ shared : libs netlib $(RELA) - ifneq ($(NO_SHARED), 1) - ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS Android Haiku FreeBSD DragonFly)) - @$(MAKE) -C exports so -- @ln -fs $(LIBSONAME) $(LIBPREFIX).so -- @ln -fs $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION) - endif - ifeq ($(OSNAME), $(filter $(OSNAME),OpenBSD NetBSD)) - @$(MAKE) -C exports so -- @ln -fs $(LIBSONAME) $(LIBPREFIX).so - endif - ifeq ($(OSNAME), Darwin) - @$(MAKE) -C exports dyn -- @ln -fs $(LIBDYNNAME) $(LIBPREFIX).dylib -- @ln -fs $(LIBDYNNAME) $(LIBPREFIX).$(MAJOR_VERSION).dylib - endif - ifeq ($(OSNAME), WINNT) - @$(MAKE) -C exports dll -@@ -229,13 +224,11 @@ ifeq ($(INTERFACE64),1) - endif - @echo THELIBNAME=$(LIBNAME) >> Makefile.conf_last - @echo THELIBSONAME=$(LIBSONAME) >> Makefile.conf_last -- @-ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) - @touch lib.grd - - prof : prof_blas prof_lapack - - prof_blas : -- ln -fs $(LIBNAME_P) $(LIBPREFIX)_p.$(LIBSUFFIX) - for d in $(SUBDIRS) ; \ - do if test -d $$d; then \ - $(MAKE) -C $$d prof || exit 1 ; \ -@@ -246,7 +239,6 @@ ifeq ($(DYNAMIC_ARCH), 1) - endif - - blas : -- ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) - for d in $(BLASDIRS) ; \ - do if test -d $$d; then \ - $(MAKE) -C $$d libs || exit 1 ; \ -@@ -254,7 +246,6 @@ blas : - done - - hpl : -- ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) - for d in $(BLASDIRS) ../laswp exports ; \ - do if test -d $$d; then \ - $(MAKE) -C $$d $(@F) || exit 1 ; \ -@@ -268,7 +259,6 @@ ifeq ($(DYNAMIC_ARCH), 1) - endif - - hpl_p : -- ln -fs $(LIBNAME_P) $(LIBPREFIX)_p.$(LIBSUFFIX) - for d in $(SUBDIRS) ../laswp exports ; \ - do if test -d $$d; then \ - $(MAKE) -C $$d $(@F) || exit 1 ; \ -diff --git a/Makefile.install b/Makefile.install -index 81f959177..e5c7ef5be 100644 ---- a/Makefile.install -+++ b/Makefile.install -@@ -98,30 +98,20 @@ endif - ifneq ($(NO_STATIC),1) - @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) - @install -m644 $(LIBNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" -- @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ -- ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) - endif - #for install shared library - ifneq ($(NO_SHARED),1) - @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) - ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS Android Haiku FreeBSD DragonFly)) - @install -m755 $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" -- @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ -- ln -fs $(LIBSONAME) $(LIBPREFIX).so ; \ -- ln -fs $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION) - endif - - ifeq ($(OSNAME), $(filter $(OSNAME),OpenBSD NetBSD)) - @cp $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" -- @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ -- ln -fs $(LIBSONAME) $(LIBPREFIX).so - endif - ifeq ($(OSNAME), Darwin) - @-cp $(LIBDYNNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" -- @-install_name_tool -id "$(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).$(MAJOR_VERSION).dylib" "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)" -- @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ -- ln -fs $(LIBDYNNAME) $(LIBPREFIX).dylib ; \ -- ln -fs $(LIBDYNNAME) $(LIBPREFIX).$(MAJOR_VERSION).dylib -+ @-install_name_tool -id "$(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dylib" "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)" - endif - ifeq ($(OSNAME), WINNT) - @-cp $(LIBDLLNAME) "$(DESTDIR)$(OPENBLAS_BINARY_DIR)" -@@ -148,16 +138,11 @@ endif - ifneq ($(NO_STATIC),1) - @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) - @installbsd -c -m 644 $(LIBNAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" -- @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ -- ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX) - endif - #for install shared library - ifneq ($(NO_SHARED),1) - @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) - @installbsd -c -m 755 $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" -- @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ -- ln -fs $(LIBSONAME) $(LIBPREFIX).so ; \ -- ln -fs $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION) - endif - - endif -@@ -170,6 +155,7 @@ endif - - @echo Generating $(LIBSONAMEBASE)$(SUFFIX64).pc in "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)" - @echo 'libdir='$(OPENBLAS_LIBRARY_DIR) > "$(PKGFILE)" -+ @echo 'libprefix='$(SYMBOLPREFIX) >> "$(PKGFILE)" - @echo 'libsuffix='$(SYMBOLSUFFIX) >> "$(PKGFILE)" - @echo 'includedir='$(OPENBLAS_INCLUDE_DIR) >> "$(PKGFILE)" - @echo 'openblas_config= USE_64BITINT='$(INTERFACE64) 'DYNAMIC_ARCH='$(DYNAMIC_ARCH) 'DYNAMIC_OLDER='$(DYNAMIC_OLDER) 'NO_CBLAS='$(NO_CBLAS) 'NO_LAPACK='$(NO_LAPACK) 'NO_LAPACKE='$(NO_LAPACKE) 'NO_AFFINITY='$(NO_AFFINITY) 'USE_OPENMP='$(USE_OPENMP) $(CORE) 'MAX_THREADS='$(NUM_THREADS)>> "$(PKGFILE)" -diff --git a/Makefile.system b/Makefile.system -index e602eaf05..b4f7c70b6 100644 ---- a/Makefile.system -+++ b/Makefile.system -@@ -1699,6 +1699,9 @@ LIBNAME_P = $(LIBPREFIX)p$(REVISION)_p.$(LIBSUFFIX) - endif - endif - -+# Override for scipy-openblas: don't put the revision into the so name -+LIBNAME = $(LIBPREFIX).$(LIBSUFFIX) -+LIBNAME_P = $(LIBPREFIX)_p.$(LIBSUFFIX) - - LIBDLLNAME = $(LIBPREFIX).dll - IMPLIBNAME = lib$(LIBNAMEBASE).dll.a -diff --git a/exports/Makefile b/exports/Makefile -index 7682f851d..632fa324b 100644 ---- a/exports/Makefile -+++ b/exports/Makefile -@@ -132,7 +132,7 @@ libgoto_hpl.def : $(GENSYM) - ./$(GENSYM) win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) $(NO_LAPACKE) $(NEED2UNDERSCORES) $(ONLY_CBLAS) "$(SYMBOLPREFIX)" "$(SYMBOLSUFFIX)" $(BUILD_LAPACK_DEPRECATED) $(BUILD_BFLOAT16) $(BUILD_SINGLE) $(BUILD_DOUBLE) $(BUILD_COMPLEX) $(BUILD_COMPLEX16) > $(@F) - - ifeq ($(OSNAME), Darwin) --INTERNALNAME = $(LIBPREFIX).$(MAJOR_VERSION).dylib -+INTERNALNAME = $(LIBPREFIX).dylib - endif - - ifeq (, $(SYMBOLPREFIX)$(SYMBOLSUFFIX)) -@@ -169,7 +169,7 @@ INTERNALNAME = $(LIBPREFIX).so - FEXTRALIB += -lm - EXTRALIB += -lm - else --INTERNALNAME = $(LIBPREFIX).so.$(MAJOR_VERSION) -+INTERNALNAME = $(LIBPREFIX).so - endif - - ifeq (, $(SYMBOLPREFIX)$(SYMBOLSUFFIX)) -diff --git a/openblas.pc.in b/openblas.pc.in -index 8ad6e8bee..33209293d 100644 ---- a/openblas.pc.in -+++ b/openblas.pc.in -@@ -2,6 +2,6 @@ Name: openblas - Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version - Version: ${version} - URL: https://github.com/xianyi/OpenBLAS --Libs: -L${libdir} -lopenblas${libsuffix} -+Libs: -L${libdir} -l${libprefix}openblas${libsuffix} - Libs.private: ${extralib} - Cflags: -I${includedir} --- -2.34.1 - diff --git a/pyproject.toml b/pyproject.toml index 66b3b0ac..d69e8573 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta" [project] name = "scipy-openblas64" -version = "0.3.26.0.5" +version = "0.3.26.238.0" requires-python = ">=3.7" description = "Provides OpenBLAS for python packaging" readme = "README.md" diff --git a/tools/build_openblas.sh b/tools/build_openblas.sh index a9404250..a8076cb9 100644 --- a/tools/build_openblas.sh +++ b/tools/build_openblas.sh @@ -83,14 +83,15 @@ if [ "$if_bits" == "64" ]; then else interface_flags="" fi -interface_flags="$interface_flags SYMBOLPREFIX=scipy_" +# On windows, the LIBNAMEPREFIX is not needed, SYMBOLPREFIX is added to the lib +# name LIBPREFIX in Makefile.system. +interface_flags="$interface_flags SYMBOLPREFIX=scipy_ FIXED_LIBNAME=1" # Build name for output library from gcc version and OpenBLAS commit. GCC_TAG="gcc_$(gcc -dumpversion | tr .- _)" OPENBLAS_VERSION=$(git describe --tags --abbrev=8) # Build OpenBLAS # Variable used in creating output libraries -export LIBNAMESUFFIX=${OPENBLAS_VERSION}-${GCC_TAG} make BINARY=$build_bits DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=0 \ NUM_THREADS=24 NO_WARMUP=1 NO_AFFINITY=1 CONSISTENT_FPCSR=1 \ BUILD_LAPACK_DEPRECATED=1 TARGET=PRESCOTT BUFFERSIZE=20\ @@ -100,7 +101,7 @@ make BINARY=$build_bits DYNAMIC_ARCH=1 USE_THREAD=1 USE_OPENMP=0 \ MAX_STACK_ALLOC=2048 \ $interface_flags make PREFIX=$openblas_root/$build_bits $interface_flags install -DLL_BASENAME=libscipy_openblas${SYMBOLSUFFIX}_${LIBNAMESUFFIX} +DLL_BASENAME=libscipy_openblas${SYMBOLSUFFIX}${LIBNAMESUFFIX} # OpenBLAS does not build a symbol-suffixed static library on Windows: # do it ourselves. On 32-bit builds, the objcopy.def names need a '_' prefix diff --git a/tools/build_steps.sh b/tools/build_steps.sh index e5eeae42..02445d27 100644 --- a/tools/build_steps.sh +++ b/tools/build_steps.sh @@ -149,17 +149,18 @@ function do_build_lib { esac case $interface64 in 1) - local interface_flags="INTERFACE64=1 SYMBOLSUFFIX=64_ SYMBOLPREFIX=scipy_ OBJCONV=$PWD/objconv/objconv"; + local interface_flags="INTERFACE64=1 SYMBOLSUFFIX=64_ LIBNAMESUFFIX=64_ OBJCONV=$PWD/objconv/objconv"; local symbolsuffix="64_"; if [ -n "$IS_OSX" ]; then $PWD/objconv/objconv --help fi ;; *) - local interface_flags="SYMBOLPREFIX=scipy_ OBJCONV=$PWD/objconv/objconv" + local interface_flags="OBJCONV=$PWD/objconv/objconv" local symbolsuffix=""; ;; esac + interface_flags="$interface_flags SYMBOLPREFIX=scipy_ LIBNAMEPREFIX=scipy_ FIXED_LIBNAME=1" mkdir -p libs start_spinner set -x