From ab405b1cdb88e28e3363aee62eed2d6957e2ac91 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Villemot?= Date: Sat, 6 May 2017 13:22:06 +0000 Subject: [PATCH] Import openblas_0.2.19-3.debian.tar.xz [dgit import tarball openblas 0.2.19-3 openblas_0.2.19-3.debian.tar.xz] --- README.Debian | 49 ++ TODO | 5 + blas-openblas.pc.in | 10 + changelog | 497 +++++++++++++++ compat | 1 + control | 46 ++ copyright | 580 ++++++++++++++++++ lapack-openblas.pc.in | 10 + libopenblas-base.install | 4 + libopenblas-base.postinst | 18 + libopenblas-base.preinst | 18 + libopenblas-base.prerm | 16 + libopenblas-base.shlibs | 3 + libopenblas-dev.install | 4 + libopenblas-dev.links | 4 + libopenblas-dev.postinst | 24 + libopenblas-dev.preinst | 18 + libopenblas-dev.prerm | 16 + patches/arm-gcc-flags.patch | 22 + patches/kfreebsd.patch | 61 ++ patches/matgen-symbols-not-included.patch | 112 ++++ patches/mips-implement-mb-and-wmb.patch | 39 ++ ...e-incorrect-blas_lock-implementation.patch | 58 ++ patches/no-embedded-lapack.patch | 130 ++++ patches/order-files.patch | 30 + patches/remove-openmp-warning.patch | 27 + patches/series | 9 + patches/shared-blas-lapack.patch | 31 + rules | 111 ++++ source/format | 1 + tests/control | 3 + tests/upstream-testsuite | 21 + watch | 3 + 33 files changed, 1981 insertions(+) create mode 100644 README.Debian create mode 100644 TODO create mode 100644 blas-openblas.pc.in create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 lapack-openblas.pc.in create mode 100644 libopenblas-base.install create mode 100644 libopenblas-base.postinst create mode 100644 libopenblas-base.preinst create mode 100644 libopenblas-base.prerm create mode 100644 libopenblas-base.shlibs create mode 100644 libopenblas-dev.install create mode 100644 libopenblas-dev.links create mode 100644 libopenblas-dev.postinst create mode 100644 libopenblas-dev.preinst create mode 100644 libopenblas-dev.prerm create mode 100644 patches/arm-gcc-flags.patch create mode 100644 patches/kfreebsd.patch create mode 100644 patches/matgen-symbols-not-included.patch create mode 100644 patches/mips-implement-mb-and-wmb.patch create mode 100644 patches/mips-remove-incorrect-blas_lock-implementation.patch create mode 100644 patches/no-embedded-lapack.patch create mode 100644 patches/order-files.patch create mode 100644 patches/remove-openmp-warning.patch create mode 100644 patches/series create mode 100644 patches/shared-blas-lapack.patch create mode 100755 rules create mode 100644 source/format create mode 100644 tests/control create mode 100644 tests/upstream-testsuite create mode 100644 watch diff --git a/README.Debian b/README.Debian new file mode 100644 index 0000000..381e451 --- /dev/null +++ b/README.Debian @@ -0,0 +1,49 @@ +How to switch between the various BLAS/LAPACK implementations +============================================================= + +BLAS: +$ sudo update-alternatives --config libblas.so.3 + +LAPACK: +$ sudo update-alternatives --config liblapack.so.3 + +More information is available at: + + http://wiki.debian.org/DebianScience/LinearAlgebraLibraries + + +Building an optimized OpenBLAS package for your machine +======================================================= + +On amd64 and i386, libopenblas-base provides a multiple architecture library. +All kernels are included in the library and the one matching your architecture +is selected at run time. Recompiling locally should bring minimal performance +improvement. + +On the contrary, on non-x86 archs, the package is compiled with minimal +optimizations, so that it can run on all hardware. You may want to recompile it +locally for optimal performance. + +If you want to create a custom OpenBLAS package, optimized for your specific +machine, proceed as follows. + +Install the build dependencies: + +$ sudo aptitude build-dep openblas +$ sudo aptitude install devscripts + +Get the sources of the package: + +$ apt-get source openblas + +Compile the package: + +$ cd openblas- +$ fakeroot debian/rules custom + +It should produce a package that you can install with: + +$ sudo dpkg -i ../libopenblas-base_.deb + + -- Sébastien Villemot , Tue, 6 Sep 2016 11:36:05 +0200 + -- Sylvestre Ledru Tue, 31 May 2011 13:56:22 +0200 diff --git a/TODO b/TODO new file mode 100644 index 0000000..0fe62ee --- /dev/null +++ b/TODO @@ -0,0 +1,5 @@ +* disable the download of lapack and use the one from debian +* update copyright +* update homepage +* write some doc about update-alternatives +* write a debconf alert about the fact that a rebuild will improve the perf diff --git a/blas-openblas.pc.in b/blas-openblas.pc.in new file mode 100644 index 0000000..e24eab8 --- /dev/null +++ b/blas-openblas.pc.in @@ -0,0 +1,10 @@ +prefix=/usr +libdir=${prefix}/lib/openblas-base +includedir=${prefix}/include/openblas +Name: openblas-blas +Description: Optimized BLAS (linear algebra) library based on GotoBLAS2 +Version: @DEB_VERSION_UPSTREAM@ +URL: https://github.com/xianyi/OpenBLAS +Libs: -L${libdir} -lblas +Libs.private: -L${libdir} -lblas -lgfortran -lpthread -lm +Cflags: -I${includedir} diff --git a/changelog b/changelog new file mode 100644 index 0000000..b818fe0 --- /dev/null +++ b/changelog @@ -0,0 +1,497 @@ +openblas (0.2.19-3) unstable; urgency=medium + + * New patches that fix threading issue on mips64el. + + d/p/mips-implement-mb-and-wmb.patch + + d/p/mips-remove-incorrect-blas_lock-implementation.patch + Thanks to James Cowgill (Closes: #861486) + + -- Sébastien Villemot Sat, 06 May 2017 15:22:06 +0200 + +openblas (0.2.19-2) unstable; urgency=medium + + * Also build libopenblas-dev on mips64el. (Closes: #852283) + * Bump debhelper compat level to 10. + * d/watch: bump to format version 4. + * Add "-march=native -mtune=native" to CFLAGS when building custom package. + (Closes: #844509) + + -- Sébastien Villemot Mon, 23 Jan 2017 15:06:15 +0100 + +openblas (0.2.19-1) unstable; urgency=medium + + * Imported Upstream version 0.2.19 + * d/p/always-run-testsuite.patch: drop patch, no longer needed. + * Add support for mips64el. + * d/p/order-files.patch: new patch, makes build reproducible. + Thanks to Alexis Bienvenüe (Closes: #824639) + * d/README.Debian: explain that recompilation is useful on non-x86 archs. + + -- Sébastien Villemot Tue, 06 Sep 2016 20:24:32 +0200 + +openblas (0.2.18-1) unstable; urgency=medium + + * Imported Upstream version 0.2.18 + * d/control: bump Standards-Version to 3.9.8, no changes needed. + + -- Sébastien Villemot Sun, 17 Apr 2016 18:40:31 +0200 + +openblas (0.2.17-1) unstable; urgency=medium + + * Imported Upstream version 0.2.17 + * d/copyright: reflect upstream changes. + * d/p/power-arch-detection.patch: drop patch, applied upstream. + * d/p/matgen-symbols-not-included.patch: new patch. + Needed because MATGEN symbols are not included in the Debian binary. + * d/control: + + bump Standards-Version to 3.9.7, no changes needed. + + use secure URLs in Vcs-* fields. + * Drop libopenblas-dbg, now rely on automatic debug package. + + -- Sébastien Villemot Thu, 24 Mar 2016 15:11:45 +0100 + +openblas (0.2.15-1) unstable; urgency=medium + + * Imported Upstream version 0.2.15 + * debian/copyright: reflect upstream changes. + * Remove patches applied upstream: + + debian/patches/arm-arch-detection.patch + + debian/patches/arm64.patch + + debian/patches/disable-gemm3m-tests.patch + * Build on ppc64el arch, which is now supported by upstream. + * d/p/power-arch-detection.patch: new patch. + Ensures that the testsuite is run on ppc64el and ppc64. + However, don't enable it on powerpc, because it crashes… + * Tighten B-D on lapack to >= 3.5.0-5~, in order to get latest patches. + * Remove obsolete Conflicts/Replaces against lib{blas,lapack}3gf. + + -- Sébastien Villemot Tue, 10 Nov 2015 23:24:12 +0100 + +openblas (0.2.14-1) unstable; urgency=low + + * Imported Upstream version 0.2.14 + * debian/copyright: reflect upstream changes. + * debian/rules: remove TARGET=GENERIC flag when building dynamic arch binary. + This flag creates a compilation failure and seems no longer needed. + * Add a debug package. (Closes: #783639) + * debian/control: improve short description of packages. + * Add autopkgtest support, relying on upstream testsuite. + + debian/tests/upstream-testsuite: script to run the testsuite. + + debian/tests/control: add the new test. + Thanks to Christian Kastner for crafting the patch. (Closes: #781996) + * Enable build on arm64 architecture. + + d/control: add arm64 to Architecture fields. + + d/rules: use TARGET=ARMV8 for arm64 arch. + + d/p/arm64.patch: new patch from upstream, to fix a build failure. + * Fix crash with illegal instruction on armhf with static libraries. + + d/p/arm-gcc-flags.patch: enforce -march=armv7-a and -mfpu=vfpv3-d16 flags. + * Add -lgfortran and -lpthread in .pc files for static linking. + * Ensure that the testsuite is run on arm* arches at build time. + + d/p/arm-arch-detection.patch: new patch, avoids false detection of + cross-compilation. + + d/p/disable-gemm3m-tests.patch: new patch, avoid compilation failure of + the testsuite. + + d/p/test-custom-package.patch renamed to d/p/always-run-testsuite.patch, + to clearly show that it is needed even for vanilla arm* packages. + + -- Sébastien Villemot Wed, 29 Apr 2015 18:46:11 +0200 + +openblas (0.2.12-1) unstable; urgency=medium + + * Imported Upstream version 0.2.12. (Closes: #765795) + + -- Sébastien Villemot Sun, 26 Oct 2014 10:42:29 +0100 + +openblas (0.2.11-3) unstable; urgency=medium + + [ Alastair McKinstry ] + * Add {blas,lapack}-openblas.pc files and symlinks via + update-alternatives. (Closes: #764491) + + -- Sébastien Villemot Wed, 15 Oct 2014 21:54:50 +0200 + +openblas (0.2.11-2) unstable; urgency=medium + + * libopenblas-base: add dependency on libblas-common. + The goal is to make BLAS implementations multi-arch safe by preventing the + co-installability of, say, libblas3:amd64 and libatlas3-base:i386. See + * Bump Standards-Version to 3.9.6, no changes needed. + + -- Sébastien Villemot Sat, 27 Sep 2014 20:25:40 +0200 + +openblas (0.2.11-1) unstable; urgency=medium + + * Imported Upstream version 0.2.11 + * debian/copyright: reflect upstream changes. + + -- Sébastien Villemot Sat, 30 Aug 2014 14:20:55 +0200 + +openblas (0.2.10-2) unstable; urgency=medium + + * libopenblas-{base,dev}.prerm: fix removal of liblapack.so.3 alternative. + * debian/rules: pass the same make options to all make invocations. + Fixes FTBFS on armhf. + * Tighten build-dep on liblapack-pic. + Ensures that the LAPACK version used to compile OpenBLAS is as recent as + upstream embedded copy (including unreleased patches). + + -- Sébastien Villemot Fri, 08 Aug 2014 14:25:37 +0200 + +openblas (0.2.10-1) unstable; urgency=medium + + * Imported Upstream version 0.2.10 + * Ship the optimized LAPACK as a new alternative. + + Use the binary from liblapack-pic for routines not overridden by + OpenBLAS. + As a consequence, add a Built-Using field to libopenblas-{base,dev}. + + libblas3-soname.patch: dropped patch. + + shared-blas-lapack.patch: new patch. + * Ship headers in /usr/include/openblas. + * Remove Sylvestre Ledru from Uploaders. Thanks Sylvestre for your work! + * debian/copyright: rewrite using machine-readable format. + * Use Files-Excluded from d/copyright to remove embedded LAPACK copy. + * no-embedded-lapack.patch: new patch. + Adapts build system for the absence of lapack-netlib/ directory. + * kfreebsd.patch: install shared library and link it against libm. + This patch also incorporates the former content of kfreebsd-soname.patch. + * Rewrite using debhelper and upstream's 'make install' rule. + * Update README.Debian. + + -- Sébastien Villemot Tue, 05 Aug 2014 20:05:26 +0200 + +openblas (0.2.9-1) unstable; urgency=medium + + * Imported Upstream version 0.2.9 + * Remove patches applied upstream: + - dgemv-crash.patch + - fork-handler.patch + - qemu-athlon.patch + - wrong-parameter-for-zherk-zher2.patch + * Add armhf support. + - Use ARMv6 target. We cannot currently use the ARMv7 target, because it + requires VFPv3-D32 (and armhf only guarantees VFPv3-D16). + - arm-gcc-flags.patch: Remove arch-specific GCC flags. + * PowerPC: enforce a generic-enough target (PPCG4) for the generic package. + Previously, the target was (erroneously) selected based on the buildd + hardware. + * Update debian/orig-tar.sh: now keeps a quasi-empty lapack-netlib/TESTING + dir. + + -- Sébastien Villemot Sun, 15 Jun 2014 15:17:05 +0200 + +openblas (0.2.8-6) unstable; urgency=medium + + * Team upload. + * backport two fixes from upstream git: + - dgemv-crash.patch: fixes core2/barcelona dgemv kernel + - wrong-parameter-for-zherk-zher2.patch + + -- Julian Taylor Thu, 13 Mar 2014 20:03:07 +0100 + +openblas (0.2.8-5) unstable; urgency=medium + + * kfreebsd-soname.patch: give a SONAME to the shared library under kfreebsd, + by using the same stanza to create the shared object than under Linux. + Incidentally, this fixes the FTBFS on kfreebsd-* archs. + * Remove ia64, powerpcspe, hurd-i386 and sparc from the list of + supported architectures (the package never compiled on those). + * fork-handler.patch: improved version backported from upstream. + + -- Sébastien Villemot Fri, 21 Feb 2014 18:07:32 +0100 + +openblas (0.2.8-4) unstable; urgency=medium + + * Revert to pthreads parallelism instead of OpenMP (Closes: #737675) + * remove-openmp-warning.patch: new patch, removes annoying warning when + OpenBLAS is called from an OpenMP application. + * fork-handler.patch: fixes hangs of OpenBLAS when called from a program + using OpenMP (Closes: #739331) + * Drop obsolete code in maintainer scripts to deal with the transition + libblas.so.3gf => libblas.so.3. + * Ship an additional libopenblas.so.0 in /usr/lib, to allow direct + linking to OpenBLAS, without using the alternatives system for BLAS + implementations. Thanks to Martin Koehler for his help in crafting a + proper solution. (Closes: #725673) + + -- Sébastien Villemot Wed, 19 Feb 2014 17:20:03 +0100 + +openblas (0.2.8-3) unstable; urgency=medium + + * Use OpenMP parallelism instead of pthreads (Closes: #684344). + * Bump Standards-Version to 3.9.5, no changes needed. + * Bump to debhelper compat level 9. + + -- Sébastien Villemot Wed, 15 Jan 2014 14:07:39 +0100 + +openblas (0.2.8-2) unstable; urgency=low + + * qemu-athlon.patch: new patch, should fix FTBFS on babin.debian.org + (which is a weird qemu guest declaring an Athlon CPU but without + 3dnow! extensions) + + -- Sébastien Villemot Tue, 27 Aug 2013 18:04:04 +0200 + +openblas (0.2.8-1) unstable; urgency=low + + * New upstream release + + -- Sébastien Villemot Sat, 03 Aug 2013 23:25:41 +0200 + +openblas (0.2.7-1) unstable; urgency=low + + * New upstream release + * power7.patch: remove patch, applied upstream + * Repackage upstream tarball without embedded LAPACK copy + * Package descriptions: mention that multiple arch is only for x86; fix typo + * Use canonical URLs for packaging VCS + * Add dependency of libopenblas-dev on libblas-dev, so that CBLAS headers are + installed. (Closes: #685890) + * Disable memory address range benchmarking (NO_WARMUP=1), for better + startup performance. (Closes: #709224) + * test-custom-package.patch: new package, ensures that testsuite is run even + when building a custom package. (Closes: #677866) + + -- Sébastien Villemot Fri, 26 Jul 2013 18:37:41 +0200 + +openblas (0.2.6-2) unstable; urgency=low + + * power7.patch: new patch, should fix FTBFS on powerpc buildd with Power7 arch + * libblas3-soname.patch: new patch, sets the SONAME of the dynamic library to + libblas.so.3. (Closes: #687349) + * Put "libblas3 | libblas.so.3" in the shlibs of libopenblas-base. + Packages compiled with libopenblas-dev installed will now have a BLAS + dependency satisfiable by all BLAS flavours. + * Switch to git as VCS for packaging + + -- Sébastien Villemot Mon, 20 May 2013 18:40:07 +0200 + +openblas (0.2.6-1) unstable; urgency=low + + * Upload to unstable + * Update Standards-Version to 3.9.4 + * Increase the maximum number of threads to 64 when building the generic + package. At runtime, OpenBLAS will not use more threads than there are + available cores. (LP: #817212) + + -- Sébastien Villemot Sat, 02 Mar 2013 17:46:01 +0100 + +openblas (0.2.6-1~exp1) experimental; urgency=low + + * New upstream release + + Fixes use of uninitialized values in vectorized sgemv on i386. + (Closes: #696000) + + Fixes the overflowing buffer bug of gemv. (Closes: #697231) + + Fixes the the overflowing buffer bug of multithreading hbmv and sbmv. + (Closes: #697232) + + Fixes crash on 32-bit Athlon CPUs. (Closes: #697233) + + Better handling of unknown amd64 CPUs (e.g. within qemu). + (Closes: #697235) + * Disable processor affinity. (Closes: #684338) + * Force the maximum number of threads to 2 when building the generic package + (as we do for ATLAS). Otherwise, it is the number of cores on the build + machine which is chosen instead. + * README.Debian: improve instructions for building the custom package + + -- Sébastien Villemot Sat, 02 Mar 2013 15:09:09 +0100 + +openblas (0.2.5-1~exp1) experimental; urgency=low + + [ Sébastien Villemot ] + * Update debian/watch + * Use my @debian.org email address + * Remove obsolete DM-Upload-Allowed flag + + [ Sylvestre Ledru ] + * New upstream release + * generic_profile.diff removed (applied upstream) + + -- Sylvestre Ledru Sat, 08 Dec 2012 16:24:30 +0100 + +openblas (0.2.4-1~exp1) experimental; urgency=low + + * New upstream release + + -- Sylvestre Ledru Mon, 15 Oct 2012 20:15:49 +0200 + +openblas (0.2.3-1~exp1) experimental; urgency=low + + * New upstream release + + Kills threads when unloading the library (Closes: #673061) + + -- Sébastien Villemot Mon, 20 Aug 2012 12:18:07 +0000 + +openblas (0.2.2-1~exp1) experimental; urgency=low + + * New upstream release + * hurd.diff, hurd_gettid.diff, kfreebsd.diff, sparc.diff: remove patches, + applied upstream + * debian/rules: implement support for DEB_BUILD_OPTIONS=noopt + + -- Sébastien Villemot Wed, 11 Jul 2012 16:32:27 +0000 + +openblas (0.2.1-1~exp1) experimental; urgency=low + + * New upstream release + + -- Sylvestre Ledru Mon, 02 Jul 2012 02:24:00 +0200 + +openblas (0.1.1-5) unstable; urgency=low + + * libopenblas-base.prerm: avoid crash if libblas.so.3gf already deleted + * Add myself to Uploaders + * Set DM-Upload-Allowed to yes + + -- Sébastien Villemot Sun, 24 Jun 2012 16:15:11 +0000 + +openblas (0.1.1-4) unstable; urgency=low + + * Fix the FTBFS under KFreebsd. Thanks to Sébastien Villemot (Closes: #677165) + + -- Sylvestre Ledru Wed, 13 Jun 2012 10:29:51 +0200 + +openblas (0.1.1-3) unstable; urgency=low + + * Upload in unstable + + -- Sylvestre Ledru Sat, 02 Jun 2012 17:33:58 +0200 + +openblas (0.1.1-3~exp4) experimental; urgency=low + + * Rollback previous upload + + -- Sylvestre Ledru Fri, 01 Jun 2012 11:04:51 +0200 + +openblas (0.1.1-3~exp3) experimental; urgency=low + + * Fix a bad alternative link to the old library name + + -- Sylvestre Ledru Fri, 01 Jun 2012 10:28:09 +0200 + +openblas (0.1.1-3~exp2) experimental; urgency=low + + * Fix FTBFS (Closes: #666277) + + -- Sylvestre Ledru Wed, 30 May 2012 14:52:40 +0200 + +openblas (0.1.1-3~exp1) experimental; urgency=low + + * Replaces and Breaks updated against the right versions of other impacted + packages + + -- Sylvestre Ledru Mon, 21 May 2012 13:13:46 +0200 + +openblas (0.1.1-2) experimental; urgency=low + + * Moved removal from postinst to preinst + + -- Sylvestre Ledru Fri, 18 May 2012 15:58:32 +0200 + +openblas (0.1.1-1) experimental; urgency=low + + * New upstream release + * Remove libblas.so.3gf references before the install + + -- Sylvestre Ledru Mon, 14 May 2012 18:47:53 +0200 + +openblas (0.1.0-1) experimental; urgency=low + + * New upstream release + * Standards-Version updated to 3.9.3 + + -- Sylvestre Ledru Wed, 04 Apr 2012 14:31:34 +0200 + +openblas (0.1alpha2.5-1~exp2) experimental; urgency=low + + * Join modifications with blas, lapack, atlas and openblas. + Declare the replacements of all *3gf blas & lapack implementation + (See bug #660607) + + -- Sylvestre Ledru Mon, 20 Feb 2012 19:33:41 +0100 + +openblas (0.1alpha2.5-1~exp1) experimental; urgency=low + + * New upstream release + * Fix an upgrade issue (Closes: #659786) + + -- Sylvestre Ledru Sun, 19 Feb 2012 15:50:41 +0100 + +openblas (0.1alpha2.3-1~exp1) experimental; urgency=low + + * New upstream release + Fix FTBFS under KfreeBSD (Closes: #635552) + + -- Sylvestre Ledru Mon, 05 Sep 2011 15:24:24 +0200 + +openblas (0.1alpha2.2-4~exp1) experimental; urgency=low + + * Rename the reference libblas.so.3gf to libblas.so.3 + + -- Sylvestre Ledru Sat, 03 Sep 2011 20:24:39 +0200 + +openblas (0.1alpha2.2-3) unstable; urgency=low + + * Same player try again: the lib has different names with build with the + dynamic arch or not. + + -- Sylvestre Ledru Tue, 26 Jul 2011 18:40:04 +0200 + +openblas (0.1alpha2.2-2) unstable; urgency=low + + * Disable dynamic arch on non amd64 / i386 archs (Closes: #631887) + * Fix a FTBFS under hurd + + -- Sylvestre Ledru Tue, 26 Jul 2011 16:56:27 +0200 + +openblas (0.1alpha2.2-1) unstable; urgency=low + + * New upstream release (Closes: #631886) + + -- Sylvestre Ledru Mon, 25 Jul 2011 10:46:44 +0200 + +openblas (0.1alpha2.1-1) unstable; urgency=low + + * New upstream release + * gfortran added a build dep + + -- Sylvestre Ledru Wed, 29 Jun 2011 21:18:48 +0200 + +openblas (0.1alpha2-1) unstable; urgency=low + + * New upstream release + * Good news: use DYNAMIC_ARCH=1 in the build option of OpenBLAS/Gotoblas + to support multiple architecture. All kernel will be included in the library + and dynamically switched the best architecture at run time. + + -- Sylvestre Ledru Thu, 23 Jun 2011 10:44:43 +0200 + +openblas (0.1alpha1-4) experimental; urgency=low + + * Fix FTBFS under kfreebsd, sparc & hurd. + * Limit architectures to amd64 i386 ia64 powerpc powerpcspe ppc64 + kfreebsd-i386 kfreebsd-amd64 hurd-i386 sparc + * cherry-pick from upstream to fail build when the arch is not supported + + -- Sylvestre Ledru Mon, 30 May 2011 17:05:23 +0200 + +openblas (0.1alpha1-3) experimental; urgency=low + + * clean target now really cleans everything. Thanks to Ryan Lovett + (Closes: #624253) + + -- Sylvestre Ledru Wed, 04 May 2011 18:03:10 +0200 + +openblas (0.1alpha1-2) experimental; urgency=low + + * Update the README.Debian file + * watch file removed for now (it was the one from atlas) + * Fix a custom build issue (thanks to Ryan Lovett for the bug report) + * Fix a FTBFS under sparc + * Switch to dpkg-source 3.0 (quilt) format + * Standards-Version updated to version 3.9.2 + + -- Sylvestre Ledru Sat, 16 Apr 2011 15:23:22 +0200 + +openblas (0.1alpha1-1) experimental; urgency=low + + * Initial version (Closes: #605456) + + -- Sylvestre Ledru Fri, 04 Feb 2011 18:28:26 +0100 diff --git a/compat b/compat new file mode 100644 index 0000000..9a03714 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 \ No newline at end of file diff --git a/control b/control new file mode 100644 index 0000000..792f009 --- /dev/null +++ b/control @@ -0,0 +1,46 @@ +Source: openblas +Section: devel +Priority: optional +Maintainer: Debian Science Team +Uploaders: Sébastien Villemot +Standards-Version: 3.9.8 +Build-Depends: dpkg-dev (>= 1.16.2~), debhelper (>= 10), gfortran, + liblapack-pic (>= 3.5.0-5~) +Homepage: https://github.com/xianyi/OpenBLAS +Vcs-Git: https://anonscm.debian.org/git/debian-science/packages/openblas.git +Vcs-Browser: https://anonscm.debian.org/git/debian-science/packages/openblas.git + +Package: libopenblas-base +Section: libs +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el +Depends: ${shlibs:Depends}, ${misc:Depends}, libblas-common +Provides: libblas.so.3, liblapack.so.3 +Built-Using: ${Built-Using} +Description: Optimized BLAS (linear algebra) library (shared library) + OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version. + . + Unlike Atlas, OpenBLAS provides a multiple architecture library. + . + All kernel will be included in the library and dynamically switched to + the best architecture at run time (only on x86 arches). + . + For more information on how to rebuild locally OpenBLAS, see the section: + "Building Optimized OpenBLAS Packages on your ARCH" in README.Debian + +Package: libopenblas-dev +Section: libdevel +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el +Depends: libopenblas-base (= ${binary:Version}), libblas-dev, ${shlibs:Depends}, + ${misc:Depends} +Provides: libblas.so, liblapack.so +Built-Using: ${Built-Using} +Description: Optimized BLAS (linear algebra) library (development files) + OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version. + . + Unlike Atlas, OpenBLAS provides a multiple architecture library. + . + All kernel will be included in the library and dynamically switched to + the best architecture at run time (only on x86 arches). + . + This package includes the static libraries and symbolic links + needed for program development. diff --git a/copyright b/copyright new file mode 100644 index 0000000..fcefaa4 --- /dev/null +++ b/copyright @@ -0,0 +1,580 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: OpenBLAS +Upstream-Contact: Zhang Xianyi +Source: https://github.com/xianyi/OpenBLAS +Files-Excluded: lapack-netlib/* + +Files: * +Copyright: 2011-2016 The OpenBLAS Project + 2009-2010 The University of Texas at Austin + 2013 Martin Koehler, grisuthedragon@users.github.com +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 3. Neither the name of the OpenBLAS project nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: benchmark/cholesky.c + benchmark/linpack.c + benchmark/geev.c + benchmark/getri.c + benchmark/gesv.c + benchmark/potrf.c + common.h + common_alpha.h + common_ia64.h + common_interface.h + common_lapack.h + common_level1.h + common_level2.h + common_level3.h + common_linux.h + common_macro.h + common_param.h + common_power.h + common_sparc.h + common_thread.h + common_x86.h + common_x86_64.h + cpuid.h + cpuid_alpha.c + cpuid_ia64.c + cpuid_power.c + cpuid_sparc.c + cpuid_x86.c + driver/level2/gbmv_k.c + driver/level2/gbmv_thread.c + driver/level2/gemv_thread.c + driver/level2/ger_thread.c + driver/level2/sbmv_k.c + driver/level2/sbmv_thread.c + driver/level2/spmv_k.c + driver/level2/spmv_thread.c + driver/level2/spr2_k.c + driver/level2/spr2_thread.c + driver/level2/spr_k.c + driver/level2/spr_thread.c + driver/level2/symv_thread.c + driver/level2/syr2_k.c + driver/level2/syr2_thread.c + driver/level2/syr_k.c + driver/level2/syr_thread.c + driver/level2/tbmv_L.c + driver/level2/tbmv_U.c + driver/level2/tbmv_thread.c + driver/level2/tbsv_L.c + driver/level2/tbsv_U.c + driver/level2/tpmv_L.c + driver/level2/tpmv_U.c + driver/level2/tpmv_thread.c + driver/level2/tpsv_L.c + driver/level2/tpsv_U.c + driver/level2/trmv_L.c + driver/level2/trmv_U.c + driver/level2/trmv_thread.c + driver/level2/trsv_L.c + driver/level2/trsv_U.c + driver/level2/zgbmv_k.c + driver/level2/zhbmv_k.c + driver/level2/zher2_k.c + driver/level2/zher_k.c + driver/level2/zhpmv_k.c + driver/level2/zhpr2_k.c + driver/level2/zhpr_k.c + driver/level2/zsbmv_k.c + driver/level2/zspmv_k.c + driver/level2/zspr2_k.c + driver/level2/zspr_k.c + driver/level2/zsyr2_k.c + driver/level2/zsyr_k.c + driver/level2/ztbmv_L.c + driver/level2/ztbmv_U.c + driver/level2/ztbsv_L.c + driver/level2/ztbsv_U.c + driver/level2/ztpmv_L.c + driver/level2/ztpmv_U.c + driver/level2/ztpsv_L.c + driver/level2/ztpsv_U.c + driver/level2/ztrmv_L.c + driver/level2/ztrmv_U.c + driver/level2/ztrsv_L.c + driver/level2/ztrsv_U.c + driver/level3/gemm.c + driver/level3/gemm3m.c + driver/level3/gemm_thread_m.c + driver/level3/gemm_thread_mn.c + driver/level3/gemm_thread_n.c + driver/level3/gemm_thread_variable.c + driver/level3/level3_gemm3m_thread.c + driver/level3/level3_syrk_threaded.c + driver/level3/level3_thread.c + driver/level3/symm_k.c + driver/level3/syr2k_k.c + driver/level3/syr2k_kernel.c + driver/level3/syrk_k.c + driver/level3/syrk_kernel.c + driver/level3/syrk_thread.c + driver/level3/trmm_L.c + driver/level3/trmm_R.c + driver/level3/trsm_L.c + driver/level3/trsm_R.c + driver/level3/zhemm_k.c + driver/level3/zher2k_k.c + driver/level3/zher2k_kernel.c + driver/level3/zherk_beta.c + driver/level3/zherk_k.c + driver/level3/zherk_kernel.c + driver/level3/zsyrk_beta.c + driver/mapper/mapper.c + driver/others/abs.c + driver/others/blas_l1_thread.c + driver/others/blas_server_omp.c + driver/others/blas_server_win32.c + driver/others/divtable.c + driver/others/dynamic.c + driver/others/lamc3.c + driver/others/lamch.c + driver/others/lsame.c + driver/others/memory_qalloc.c + driver/others/parameter.c + driver/others/profile.c + driver/others/xerbla.c + exports/dllinit.c + interface/asum.c + interface/axpy.c + interface/copy.c + interface/dot.c + interface/dsdot.c + interface/gbmv.c + interface/geadd.c + interface/gemm.c + interface/gemv.c + interface/ger.c + interface/imax.c + interface/lapack/gesv.c + interface/lapack/getf2.c + interface/lapack/getrf.c + interface/lapack/getrs.c + interface/lapack/laswp.c + interface/lapack/lauu2.c + interface/lapack/lauum.c + interface/lapack/potf2.c + interface/lapack/potrf.c + interface/lapack/potri.c + interface/lapack/trti2.c + interface/lapack/trtri.c + interface/lapack/zgetf2.c + interface/lapack/zgetrf.c + interface/lapack/zgetrs.c + interface/lapack/zlaswp.c + interface/lapack/zlauu2.c + interface/lapack/zlauum.c + interface/lapack/zpotf2.c + interface/lapack/zpotrf.c + interface/lapack/zpotri.c + interface/lapack/ztrti2.c + interface/lapack/ztrtri.c + interface/max.c + interface/nrm2.c + interface/rot.c + interface/sbmv.c + interface/scal.c + interface/sdsdot.c + interface/spmv.c + interface/spr.c + interface/spr2.c + interface/swap.c + interface/symm.c + interface/symv.c + interface/syr.c + interface/syr2.c + interface/syr2k.c + interface/syrk.c + interface/tbmv.c + interface/tbsv.c + interface/tpmv.c + interface/tpsv.c + interface/trmv.c + interface/trsm.c + interface/trsv.c + interface/zaxpy.c + interface/zdot.c + interface/zgbmv.c + interface/zgeadd.c + interface/zgemv.c + interface/zger.c + interface/zhbmv.c + interface/zhemv.c + interface/zher.c + interface/zher2.c + interface/zhpmv.c + interface/zhpr.c + interface/zhpr2.c + interface/zrot.c + interface/zsbmv.c + interface/zscal.c + interface/zspmv.c + interface/zspr.c + interface/zspr2.c + interface/zswap.c + interface/zsymv.c + interface/zsyr.c + interface/zsyr2.c + interface/ztbmv.c + interface/ztbsv.c + interface/ztpmv.c + interface/ztpsv.c + interface/ztrmv.c + interface/ztrsv.c + kernel/generic/cabs.c + kernel/generic/gemm_beta.c + kernel/generic/gemm_ncopy_1.c + kernel/generic/gemm_ncopy_16.c + kernel/generic/gemm_ncopy_2.c + kernel/generic/gemm_ncopy_4.c + kernel/generic/gemm_ncopy_6.c + kernel/generic/gemm_ncopy_8.c + kernel/generic/gemm_tcopy_1.c + kernel/generic/gemm_tcopy_16.c + kernel/generic/gemm_tcopy_2.c + kernel/generic/gemm_tcopy_4.c + kernel/generic/gemm_tcopy_6.c + kernel/generic/gemm_tcopy_8.c + kernel/generic/ger.c + kernel/generic/laswp_ncopy_1.c + kernel/generic/laswp_ncopy_2.c + kernel/generic/laswp_ncopy_4.c + kernel/generic/laswp_ncopy_8.c + kernel/generic/lsame.c + kernel/generic/neg_tcopy_1.c + kernel/generic/neg_tcopy_16.c + kernel/generic/neg_tcopy_2.c + kernel/generic/neg_tcopy_4.c + kernel/generic/neg_tcopy_8.c + kernel/generic/symm_lcopy_1.c + kernel/generic/symm_lcopy_16.c + kernel/generic/symm_lcopy_2.c + kernel/generic/symm_lcopy_4.c + kernel/generic/symm_lcopy_6.c + kernel/generic/symm_lcopy_8.c + kernel/generic/symm_ucopy_1.c + kernel/generic/symm_ucopy_16.c + kernel/generic/symm_ucopy_2.c + kernel/generic/symm_ucopy_4.c + kernel/generic/symm_ucopy_6.c + kernel/generic/symm_ucopy_8.c + kernel/generic/symv_k.c + kernel/generic/trmm_lncopy_1.c + kernel/generic/trmm_lncopy_16.c + kernel/generic/trmm_lncopy_2.c + kernel/generic/trmm_lncopy_4.c + kernel/generic/trmm_lncopy_6.c + kernel/generic/trmm_lncopy_8.c + kernel/generic/trmm_ltcopy_1.c + kernel/generic/trmm_ltcopy_16.c + kernel/generic/trmm_ltcopy_2.c + kernel/generic/trmm_ltcopy_4.c + kernel/generic/trmm_ltcopy_6.c + kernel/generic/trmm_ltcopy_8.c + kernel/generic/trmm_uncopy_1.c + kernel/generic/trmm_uncopy_16.c + kernel/generic/trmm_uncopy_2.c + kernel/generic/trmm_uncopy_4.c + kernel/generic/trmm_uncopy_6.c + kernel/generic/trmm_uncopy_8.c + kernel/generic/trmm_utcopy_1.c + kernel/generic/trmm_utcopy_16.c + kernel/generic/trmm_utcopy_2.c + kernel/generic/trmm_utcopy_4.c + kernel/generic/trmm_utcopy_6.c + kernel/generic/trmm_utcopy_8.c + kernel/generic/trsm_kernel_LN.c + kernel/generic/trsm_kernel_LT.c + kernel/generic/trsm_kernel_RN.c + kernel/generic/trsm_kernel_RT.c + kernel/generic/trsm_lncopy_1.c + kernel/generic/trsm_lncopy_16.c + kernel/generic/trsm_lncopy_2.c + kernel/generic/trsm_lncopy_4.c + kernel/generic/trsm_lncopy_6.c + kernel/generic/trsm_lncopy_8.c + kernel/generic/trsm_ltcopy_1.c + kernel/generic/trsm_ltcopy_16.c + kernel/generic/trsm_ltcopy_2.c + kernel/generic/trsm_ltcopy_4.c + kernel/generic/trsm_ltcopy_6.c + kernel/generic/trsm_ltcopy_8.c + kernel/generic/trsm_uncopy_1.c + kernel/generic/trsm_uncopy_16.c + kernel/generic/trsm_uncopy_2.c + kernel/generic/trsm_uncopy_4.c + kernel/generic/trsm_uncopy_6.c + kernel/generic/trsm_uncopy_8.c + kernel/generic/trsm_utcopy_1.c + kernel/generic/trsm_utcopy_16.c + kernel/generic/trsm_utcopy_2.c + kernel/generic/trsm_utcopy_4.c + kernel/generic/trsm_utcopy_6.c + kernel/generic/trsm_utcopy_8.c + kernel/generic/zgemm3m_ncopy_1.c + kernel/generic/zgemm3m_ncopy_2.c + kernel/generic/zgemm3m_ncopy_4.c + kernel/generic/zgemm3m_ncopy_8.c + kernel/generic/zgemm3m_tcopy_1.c + kernel/generic/zgemm3m_tcopy_2.c + kernel/generic/zgemm3m_tcopy_4.c + kernel/generic/zgemm3m_tcopy_8.c + kernel/generic/zgemm_beta.c + kernel/generic/zgemm_ncopy_1.c + kernel/generic/zgemm_ncopy_2.c + kernel/generic/zgemm_ncopy_4.c + kernel/generic/zgemm_ncopy_8.c + kernel/generic/zgemm_tcopy_1.c + kernel/generic/zgemm_tcopy_2.c + kernel/generic/zgemm_tcopy_4.c + kernel/generic/zgemm_tcopy_8.c + kernel/generic/zger.c + kernel/generic/zhemm3m_lcopy_1.c + kernel/generic/zhemm3m_lcopy_2.c + kernel/generic/zhemm3m_lcopy_4.c + kernel/generic/zhemm3m_lcopy_8.c + kernel/generic/zhemm3m_ucopy_1.c + kernel/generic/zhemm3m_ucopy_2.c + kernel/generic/zhemm3m_ucopy_4.c + kernel/generic/zhemm3m_ucopy_8.c + kernel/generic/zhemm_ltcopy_1.c + kernel/generic/zhemm_ltcopy_2.c + kernel/generic/zhemm_ltcopy_4.c + kernel/generic/zhemm_ltcopy_8.c + kernel/generic/zhemm_utcopy_1.c + kernel/generic/zhemm_utcopy_2.c + kernel/generic/zhemm_utcopy_4.c + kernel/generic/zhemm_utcopy_8.c + kernel/generic/zhemv_k.c + kernel/generic/zlaswp_ncopy_1.c + kernel/generic/zlaswp_ncopy_2.c + kernel/generic/zlaswp_ncopy_4.c + kernel/generic/zneg_tcopy_1.c + kernel/generic/zneg_tcopy_2.c + kernel/generic/zneg_tcopy_4.c + kernel/generic/zneg_tcopy_8.c + kernel/generic/zsymm3m_lcopy_1.c + kernel/generic/zsymm3m_lcopy_2.c + kernel/generic/zsymm3m_lcopy_4.c + kernel/generic/zsymm3m_lcopy_8.c + kernel/generic/zsymm3m_ucopy_1.c + kernel/generic/zsymm3m_ucopy_2.c + kernel/generic/zsymm3m_ucopy_4.c + kernel/generic/zsymm3m_ucopy_8.c + kernel/generic/zsymm_lcopy_1.c + kernel/generic/zsymm_lcopy_2.c + kernel/generic/zsymm_lcopy_4.c + kernel/generic/zsymm_lcopy_8.c + kernel/generic/zsymm_ucopy_1.c + kernel/generic/zsymm_ucopy_2.c + kernel/generic/zsymm_ucopy_4.c + kernel/generic/zsymm_ucopy_8.c + kernel/generic/zsymv_k.c + kernel/generic/ztrmm_lncopy_1.c + kernel/generic/ztrmm_lncopy_2.c + kernel/generic/ztrmm_lncopy_4.c + kernel/generic/ztrmm_lncopy_8.c + kernel/generic/ztrmm_ltcopy_1.c + kernel/generic/ztrmm_ltcopy_2.c + kernel/generic/ztrmm_ltcopy_4.c + kernel/generic/ztrmm_ltcopy_8.c + kernel/generic/ztrmm_uncopy_1.c + kernel/generic/ztrmm_uncopy_2.c + kernel/generic/ztrmm_uncopy_4.c + kernel/generic/ztrmm_uncopy_8.c + kernel/generic/ztrmm_utcopy_1.c + kernel/generic/ztrmm_utcopy_2.c + kernel/generic/ztrmm_utcopy_4.c + kernel/generic/ztrmm_utcopy_8.c + kernel/generic/ztrsm_lncopy_1.c + kernel/generic/ztrsm_lncopy_2.c + kernel/generic/ztrsm_lncopy_4.c + kernel/generic/ztrsm_lncopy_8.c + kernel/generic/ztrsm_ltcopy_1.c + kernel/generic/ztrsm_ltcopy_2.c + kernel/generic/ztrsm_ltcopy_4.c + kernel/generic/ztrsm_ltcopy_8.c + kernel/generic/ztrsm_uncopy_1.c + kernel/generic/ztrsm_uncopy_2.c + kernel/generic/ztrsm_uncopy_4.c + kernel/generic/ztrsm_uncopy_8.c + kernel/generic/ztrsm_utcopy_1.c + kernel/generic/ztrsm_utcopy_2.c + kernel/generic/ztrsm_utcopy_4.c + kernel/generic/ztrsm_utcopy_8.c + kernel/power/lock.c + kernel/setparam-ref.c + kernel/x86_64/dger.c + kernel/x86_64/sger.c + kernel/x86_64/ctrsm_kernel_LN_bulldozer.c + kernel/x86_64/ctrsm_kernel_LT_bulldozer.c + kernel/x86_64/ctrsm_kernel_RN_bulldozer.c + kernel/x86_64/ctrsm_kernel_RT_bulldozer.c + kernel/x86_64/dtrsm_kernel_LN_bulldozer.c + kernel/x86_64/dtrsm_kernel_RN_haswell.c + kernel/x86_64/dtrsm_kernel_RT_bulldozer.c + kernel/x86_64/strsm_kernel_LN_bulldozer.c + kernel/x86_64/strsm_kernel_LT_bulldozer.c + kernel/x86_64/strsm_kernel_RN_bulldozer.c + kernel/x86_64/strsm_kernel_RT_bulldozer.c + kernel/x86_64/ztrsm_kernel_LN_bulldozer.c + kernel/x86_64/ztrsm_kernel_LT_bulldozer.c + kernel/x86_64/ztrsm_kernel_RN_bulldozer.c + kernel/x86_64/ztrsm_kernel_RT_bulldozer.c + lapack/getf2/getf2_k.c + lapack/getf2/zgetf2_k.c + lapack/getrf/getrf_parallel.c + lapack/getrf/getrf_parallel_omp.c + lapack/getrf/getrf_single.c + lapack/getrs/getrs_parallel.c + lapack/getrs/getrs_single.c + lapack/getrs/zgetrs_parallel.c + lapack/getrs/zgetrs_single.c + lapack/laswp/generic/laswp_k.c + lapack/laswp/generic/laswp_k_1.c + lapack/laswp/generic/laswp_k_2.c + lapack/laswp/generic/laswp_k_4.c + lapack/laswp/generic/laswp_k_8.c + lapack/laswp/generic/zlaswp_k.c + lapack/laswp/generic/zlaswp_k_1.c + lapack/laswp/generic/zlaswp_k_2.c + lapack/laswp/generic/zlaswp_k_4.c + lapack/lauu2/lauu2_L.c + lapack/lauu2/lauu2_U.c + lapack/lauu2/zlauu2_L.c + lapack/lauu2/zlauu2_U.c + lapack/lauum/lauum_L_parallel.c + lapack/lauum/lauum_L_single.c + lapack/lauum/lauum_U_parallel.c + lapack/lauum/lauum_U_single.c + lapack/potf2/potf2_L.c + lapack/potf2/potf2_U.c + lapack/potf2/zpotf2_L.c + lapack/potf2/zpotf2_U.c + lapack/potrf/potrf_L_parallel.c + lapack/potrf/potrf_L_single.c + lapack/potrf/potrf_U_parallel.c + lapack/potrf/potrf_U_single.c + lapack/potrf/potrf_parallel.c + lapack/trti2/trti2_L.c + lapack/trti2/trti2_U.c + lapack/trti2/ztrti2_L.c + lapack/trti2/ztrti2_U.c + lapack/trtri/trtri_L_parallel.c + lapack/trtri/trtri_U_parallel.c + symcopy.h + driver/level3/gemm3m_level3.c + driver/level3/hemm3m_k.c + driver/level3/symm3m_k.c + driver/level3/level3.c + driver/level3/level3_syrk.c + driver/level3/level3_syr2k.c +Copyright: 2009-2010 The University of Texas at Austin +License: BSD-2-clause-texas + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + . + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT + AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT + AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + . + The views and conclusions contained in the software and + documentation are those of the authors and should not be + interpreted as representing official policies, either expressed + or implied, of The University of Texas at Austin. + +Files: ctest/* reference/* test/* +Copyright: none +License: public-domain + These files come from netlib.org and are in the public domain. + +Files: utest/ctest.h +Copyright: 2011-2016 Bas van den Berg +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the complete text of the Apache License, + version 2.0, can be found in the file + `/usr/share/common-licenses/Apache-2.0'. + +Files: debian/* +Copyright: 2011-2012 Sylvestre Ledru + 2012-2016 Sébastien Villemot +License: BSD-2-clause + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + . + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT + AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT + AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. diff --git a/lapack-openblas.pc.in b/lapack-openblas.pc.in new file mode 100644 index 0000000..75a3f08 --- /dev/null +++ b/lapack-openblas.pc.in @@ -0,0 +1,10 @@ +prefix=/usr +libdir=${prefix}/lib/openblas-base +includedir=${prefix}/include/openblas +Name: openblas-lapack +Description: Optimized BLAS (linear algebra) library, LAPACK +Version: @DEB_VERSION_UPSTREAM@ +URL: https://github.com/xianyi/OpenBLAS +Libs: -L${libdir} -llapack +Libs.private: -L${libdir} -llapack -lgfortran -lpthread -lm +Cflags: -I${includedir} diff --git a/libopenblas-base.install b/libopenblas-base.install new file mode 100644 index 0000000..97c1ffa --- /dev/null +++ b/libopenblas-base.install @@ -0,0 +1,4 @@ +usr/lib/libopenblas*-r0.*.so +usr/lib/libopenblas.so.0 +interface/libblas.so.3 usr/lib/openblas-base/ +interface/liblapack.so.3 usr/lib/openblas-base/ diff --git a/libopenblas-base.postinst b/libopenblas-base.postinst new file mode 100644 index 0000000..487b869 --- /dev/null +++ b/libopenblas-base.postinst @@ -0,0 +1,18 @@ +#! /bin/sh + +set -e + +update-alternatives --install /usr/lib/libblas.so.3 libblas.so.3 \ + /usr/lib/openblas-base/libblas.so.3 40 \ + --slave /usr/lib/libblas.so.3gf libblas.so.3gf /usr/lib/openblas-base/libblas.so.3 + +update-alternatives --install /usr/lib/liblapack.so.3 liblapack.so.3 \ + /usr/lib/openblas-base/liblapack.so.3 40 \ + --slave /usr/lib/liblapack.so.3gf liblapack.so.3gf /usr/lib/openblas-base/liblapack.so.3 + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/libopenblas-base.preinst b/libopenblas-base.preinst new file mode 100644 index 0000000..e9f69a7 --- /dev/null +++ b/libopenblas-base.preinst @@ -0,0 +1,18 @@ +#! /bin/sh + +set -e + +# In 0.2.8-4, /usr/lib/openblas-base/libopenblas.so.0 was renamed to +# /usr/lib/openblas-base/libblas.so.3. It is therefore necessary to remove the +# old path from the alternatives system before adding the new. +if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt 0.2.8-4 +then + update-alternatives --remove libblas.so.3 /usr/lib/openblas-base/libopenblas.so.0 2>/dev/null +fi + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/libopenblas-base.prerm b/libopenblas-base.prerm new file mode 100644 index 0000000..c27ae00 --- /dev/null +++ b/libopenblas-base.prerm @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e + +if [ "$1" != "upgrade" ] +then + update-alternatives --remove libblas.so.3 \ + /usr/lib/openblas-base/libblas.so.3 + + update-alternatives --remove liblapack.so.3 \ + /usr/lib/openblas-base/liblapack.so.3 +fi + +#DEBHELPER# + +exit 0 diff --git a/libopenblas-base.shlibs b/libopenblas-base.shlibs new file mode 100644 index 0000000..9dd26ad --- /dev/null +++ b/libopenblas-base.shlibs @@ -0,0 +1,3 @@ +libopenblas 0 libopenblas-base +libblas 3 libblas3 | libblas.so.3 +liblapack 3 liblapack3 | liblapack.so.3 diff --git a/libopenblas-dev.install b/libopenblas-dev.install new file mode 100644 index 0000000..99a451b --- /dev/null +++ b/libopenblas-dev.install @@ -0,0 +1,4 @@ +usr/lib/libopenblas*.a +usr/lib/libopenblas.so +usr/include/* /usr/include/openblas/ +debian/*.pc /usr/lib/pkgconfig diff --git a/libopenblas-dev.links b/libopenblas-dev.links new file mode 100644 index 0000000..e65523f --- /dev/null +++ b/libopenblas-dev.links @@ -0,0 +1,4 @@ +usr/lib/libopenblas.a usr/lib/openblas-base/libblas.a +usr/lib/libopenblas.a usr/lib/openblas-base/liblapack.a +usr/lib/openblas-base/libblas.so.3 usr/lib/openblas-base/libblas.so +usr/lib/openblas-base/liblapack.so.3 usr/lib/openblas-base/liblapack.so diff --git a/libopenblas-dev.postinst b/libopenblas-dev.postinst new file mode 100644 index 0000000..f7832dc --- /dev/null +++ b/libopenblas-dev.postinst @@ -0,0 +1,24 @@ +#! /bin/sh + +set -e + +update-alternatives --install /usr/lib/libblas.so libblas.so \ + /usr/lib/openblas-base/libblas.so 40 \ + --slave /usr/lib/libblas.a libblas.a \ + /usr/lib/openblas-base/libblas.a \ + --slave /usr/lib/pkgconfig/blas.pc blas.pc \ + /usr/lib/pkgconfig/blas-openblas.pc + +update-alternatives --install /usr/lib/liblapack.so liblapack.so \ + /usr/lib/openblas-base/liblapack.so 40 \ + --slave /usr/lib/liblapack.a liblapack.a \ + /usr/lib/openblas-base/liblapack.a \ + --slave /usr/lib/pkgconfig/lapack.pc lapack.pc \ + /usr/lib/pkgconfig/lapack-openblas.pc + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/libopenblas-dev.preinst b/libopenblas-dev.preinst new file mode 100644 index 0000000..759948a --- /dev/null +++ b/libopenblas-dev.preinst @@ -0,0 +1,18 @@ +#! /bin/sh + +set -e + +# In 0.2.8-4, /usr/lib/openblas-base/libopenblas.so was renamed to +# /usr/lib/openblas-base/libblas.so. It is therefore necessary to remove the +# old path from the alternatives system before adding the new. +if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt 0.2.8-4 +then + update-alternatives --remove libblas.so /usr/lib/openblas-base/libopenblas.so 2>/dev/null +fi + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/libopenblas-dev.prerm b/libopenblas-dev.prerm new file mode 100644 index 0000000..8cc8dbb --- /dev/null +++ b/libopenblas-dev.prerm @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e + +if [ "$1" != "upgrade" ] +then + update-alternatives --remove libblas.so \ + /usr/lib/openblas-base/libblas.so + + update-alternatives --remove liblapack.so \ + /usr/lib/openblas-base/liblapack.so +fi + +#DEBHELPER# + +exit 0 diff --git a/patches/arm-gcc-flags.patch b/patches/arm-gcc-flags.patch new file mode 100644 index 0000000..3ce87c6 --- /dev/null +++ b/patches/arm-gcc-flags.patch @@ -0,0 +1,22 @@ +Description: Use flags suitable for armhf port when TARGET=ARMV6 + See debian/rules for an explanation of why we can't use TARGET=ARMV7 on armhf. + Also, if we don't explicitly set the -march and -mfpu flags, the resulting + static libraries crash with SIGILL (reason not yet elucidated). +Author: Sébastien Villemot +Forwarded: not-needed +Last-Update: 2015-04-29 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Makefile.arm ++++ b/Makefile.arm +@@ -20,8 +20,8 @@ endif + endif + + ifeq ($(CORE), ARMV6) +-CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6 +-FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6 ++CCOMMON_OPT += -marm -mfpu=vfpv3-d16 -mfloat-abi=hard -march=armv7-a ++FCOMMON_OPT += -marm -mfpu=vfpv3-d16 -mfloat-abi=hard -march=armv7-a + endif + + diff --git a/patches/kfreebsd.patch b/patches/kfreebsd.patch new file mode 100644 index 0000000..dd00d9e --- /dev/null +++ b/patches/kfreebsd.patch @@ -0,0 +1,61 @@ +Description: Various fixes for kFreeBSD shared library + Under kFreeBSD, give a SONAME to the shared library and install it. Also link + it against libm. + Simply use the same code as Linux for all these operations. +Author: Sébastien Villemot +Forwarded: not-needed +Last-Update: 2014-08-05 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/exports/Makefile ++++ b/exports/Makefile +@@ -118,7 +118,7 @@ endif + dllinit.$(SUFFIX) : dllinit.c + $(CC) $(CFLAGS) -c -o $(@F) -s $< + +-ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS)) ++ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS FreeBSD)) + + so : ../$(LIBSONAME) + +@@ -146,7 +146,7 @@ endif + endif + + #http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or +-ifeq ($(OSNAME), $(filter $(OSNAME),FreeBSD NetBSD)) ++ifeq ($(OSNAME), $(filter $(OSNAME),NetBSD)) + + so : ../$(LIBSONAME) + +--- a/Makefile.install ++++ b/Makefile.install +@@ -64,17 +64,12 @@ endif + #for install shared library + ifndef NO_SHARED + @echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) +-ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS)) ++ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS FreeBSD)) + @install -pm755 $(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), FreeBSD) +- @cp $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" +- @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ +- ln -fs $(LIBSONAME) $(LIBPREFIX).so +-endif + ifeq ($(OSNAME), NetBSD) + @cp $(LIBSONAME) "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" + @cd "$(DESTDIR)$(OPENBLAS_LIBRARY_DIR)" ; \ +--- a/Makefile.system ++++ b/Makefile.system +@@ -229,7 +229,7 @@ ifeq ($(OSNAME), NetBSD) + MD5SUM = md5 -n + endif + +-ifeq ($(OSNAME), Linux) ++ifeq ($(OSNAME), $(filter $(OSNAME),Linux FreeBSD)) + EXTRALIB += -lm + NO_EXPRECISION = 1 + endif diff --git a/patches/matgen-symbols-not-included.patch b/patches/matgen-symbols-not-included.patch new file mode 100644 index 0000000..e47d667 --- /dev/null +++ b/patches/matgen-symbols-not-included.patch @@ -0,0 +1,112 @@ +Description: MATGEN symbols are not included in Debian binary + The libopenblas binaries do not include libmatgen code, so don't mark them as + exported and don't test for their presence (in linktest). +Author: Sébastien Villemot +Forwarded: not-needed +Last-Update: 2016-03-24 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/exports/gensymbol ++++ b/exports/gensymbol +@@ -463,24 +463,6 @@ + cggsvp3, + cgsvj0, + cgsvj1, +- clagge, +- claghe, +- clagsy, +- clahilb, +- clakf2, +- clarge, +- clarnd, +- claror, +- clarot, +- clatm1, +- clatm2, +- clatm3, +- clatm5, +- clatm6, +- clatme, +- clatmr, +- clatms, +- clatmt, + cpotrf2, + csbmv, + cspr2, +@@ -495,25 +477,6 @@ + dggsvd3, + dggsvp3, + dladiv2, +- dlagge, +- dlagsy, +- dlahilb, +- dlakf2, +- dlaran, +- dlarge, +- dlarnd, +- dlaror, +- dlarot, +- dlatm1, +- dlatm2, +- dlatm3, +- dlatm5, +- dlatm6, +- dlatm7, +- dlatme, +- dlatmr, +- dlatms, +- dlatmt, + dorm22, + dpotrf2, + dsecnd, +@@ -527,25 +490,6 @@ + sggsvd3, + sggsvp3, + sladiv2, +- slagge, +- slagsy, +- slahilb, +- slakf2, +- slaran, +- slarge, +- slarnd, +- slaror, +- slarot, +- slatm1, +- slatm2, +- slatm3, +- slatm5, +- slatm6, +- slatm7, +- slatme, +- slatmr, +- slatms, +- slatmt, + sorm22, + spotrf2, + zgejsv, +@@ -559,24 +503,6 @@ + zggsvp3, + zgsvj0, + zgsvj1, +- zlagge, +- zlaghe, +- zlagsy, +- zlahilb, +- zlakf2, +- zlarge, +- zlarnd, +- zlaror, +- zlarot, +- zlatm1, +- zlatm2, +- zlatm3, +- zlatm5, +- zlatm6, +- zlatme, +- zlatmr, +- zlatms, +- zlatmt, + zpotrf2, + zsbmv, + zspr2, diff --git a/patches/mips-implement-mb-and-wmb.patch b/patches/mips-implement-mb-and-wmb.patch new file mode 100644 index 0000000..eb3ce73 --- /dev/null +++ b/patches/mips-implement-mb-and-wmb.patch @@ -0,0 +1,39 @@ +Description: mips: implement MB and WMB + The MIPS architecture has weak memory ordering and therefore requires + sutible memory barriers when doing lock free programming with multiple + threads (just like ARM does). This commit implements those barriers for + MIPS and MIPS64 using GCC bultins which is probably easiest way. +Author: James Cowgill +Origin: https://github.com/jcowgill/OpenBLAS/commit/67836c2ab48a5d6a8cd227358fa67e2a260eba34 +Forwarded: https://github.com/xianyi/OpenBLAS/pull/1178 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861486 +Reviewed-By: Sébastien Villemot +Last-Update: 2017-05-06 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/common_mips.h ++++ b/common_mips.h +@@ -33,8 +33,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF + #ifndef COMMON_MIPS + #define COMMON_MIPS + +-#define MB +-#define WMB ++#define MB __sync_synchronize() ++#define WMB __sync_synchronize() + + #define INLINE inline + +--- a/common_mips64.h ++++ b/common_mips64.h +@@ -71,8 +71,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF + #ifndef COMMON_MIPS64 + #define COMMON_MIPS64 + +-#define MB +-#define WMB ++#define MB __sync_synchronize() ++#define WMB __sync_synchronize() + + #define INLINE inline + diff --git a/patches/mips-remove-incorrect-blas_lock-implementation.patch b/patches/mips-remove-incorrect-blas_lock-implementation.patch new file mode 100644 index 0000000..dc61d80 --- /dev/null +++ b/patches/mips-remove-incorrect-blas_lock-implementation.patch @@ -0,0 +1,58 @@ +Description: mips: remove incorrect blas_lock implementations + MIPS 32-bit currently has an empty blas_lock implementation which is + worse than nothing at all. MIPS 64-bit does has a blas_lock + implementation but is broken. Remove them and fallback to the generic + version in common.h which should do the right thing on MIPS. +Author: James Cowgill +Origin: https://github.com/jcowgill/OpenBLAS/commit/de7875ca5df77306c5f7216959d3c15d82a0a259 +Forwarded: https://github.com/xianyi/OpenBLAS/pull/1178 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861486 +Reviewed-By: Sébastien Villemot +Last-Update: 2017-05-06 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/common_mips.h ++++ b/common_mips.h +@@ -42,11 +42,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF + + #ifndef ASSEMBLER + +-static void INLINE blas_lock(volatile unsigned long *address){ +- +-} +-#define BLAS_LOCK_DEFINED +- + static inline unsigned int rpcc(void){ + unsigned long ret; + +--- a/common_mips64.h ++++ b/common_mips64.h +@@ -78,28 +78,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF + + #ifndef ASSEMBLER + +-static void INLINE blas_lock(volatile unsigned long *address){ +- +- long int ret, val = 1; +- +- do { +- while (*address) {YIELDING;}; +- +- __asm__ __volatile__( +- "1: ll %0, %3\n" +- " ori %2, %0, 1\n" +- " sc %2, %1\n" +- " beqz %2, 1b\n" +- " andi %2, %0, 1\n" +- " sync\n" +- : "=&r" (val), "=m" (address), "=&r" (ret) +- : "m" (address) +- : "memory"); +- +- } while (ret); +-} +-#define BLAS_LOCK_DEFINED +- + static inline unsigned int rpcc(void){ + unsigned long ret; + diff --git a/patches/no-embedded-lapack.patch b/patches/no-embedded-lapack.patch new file mode 100644 index 0000000..95af232 --- /dev/null +++ b/patches/no-embedded-lapack.patch @@ -0,0 +1,130 @@ +Description: Adapt build system for the absence of lapack-netlib/ directory. + Instead use the binary provided by package liblapack-pic, stripping from it the + symbols that are overriden by OpenBLAS. +Author: Sébastien Villemot +Forwarded: not-needed +Last-Update: 2014-08-05 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Makefile ++++ b/Makefile +@@ -201,64 +201,14 @@ hpl_p : + fi; \ + done + +-ifeq ($(NO_LAPACK), 1) + netlib : ++ mkdir lapack-netlib ++ cd lapack-netlib && ar -x /usr/lib/lapack/liblapack_pic.a ++ make -C interface delete-duplicate-lapack-objects ++ ar -ru $(LIBNAME) lapack-netlib/* + +-else +-netlib : lapack_prebuild +-ifndef NOFORTRAN +- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib +- @$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib +-endif +-ifndef NO_LAPACKE +- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib +-endif +-endif +- +-prof_lapack : lapack_prebuild +- @$(MAKE) -C $(NETLIB_LAPACK_DIR) lapack_prof +- +-lapack_prebuild : +-ifndef NOFORTRAN +- -@echo "FORTRAN = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "OPTS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "NOOPT = -O0 $(LAPACK_NOOPT)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "PNOOPT = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "ARCH = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "BLASLIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "LAPACKELIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "SUFFIX = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "PSUFFIX = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "CEXTRALIB = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc +-ifeq ($(F_COMPILER), GFORTRAN) +- -@echo "TIMER = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc +-ifdef SMP +-ifeq ($(OSNAME), WINNT) +- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc +-else +- -@echo "LOADER = $(FC) -pthread" >> $(NETLIB_LAPACK_DIR)/make.inc +-endif +-else +- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc +-endif +-else +- -@echo "TIMER = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc +- -@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc +-endif +-ifeq ($(BUILD_LAPACK_DEPRECATED), 1) +- -@echo "BUILD_DEPRECATED = 1" >> $(NETLIB_LAPACK_DIR)/make.inc +-endif +- -@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc +-endif ++clean:: ++ rm -rf lapack-netlib + + large.tgz : + ifndef NOFORTRAN +@@ -323,9 +273,5 @@ ifeq ($(OSNAME), Darwin) + @rm -rf getarch.dSYM getarch_2nd.dSYM + endif + @rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib +- @touch $(NETLIB_LAPACK_DIR)/make.inc +- @$(MAKE) -C $(NETLIB_LAPACK_DIR) clean +- @rm -f $(NETLIB_LAPACK_DIR)/make.inc $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling.h + @rm -f *.grd Makefile.conf_last config_last.h +- @(cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out testing_results.txt) + @echo Done. +--- a/Makefile.system ++++ b/Makefile.system +@@ -9,8 +9,6 @@ ifndef TOPDIR + TOPDIR = . + endif + +-NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-netlib +- + # Default C compiler + # - Only set if not specified on the command line or inherited from the environment. + # - CC is an implicit variable so neither '?=' or 'ifndef' can be used. +--- a/interface/Makefile ++++ b/interface/Makefile +@@ -2137,3 +2137,8 @@ cblas_cgeadd.$(SUFFIX) cblas_cgeadd.$(PS + cblas_zgeadd.$(SUFFIX) cblas_zgeadd.$(PSUFFIX) : zgeadd.c + $(CC) -c $(CFLAGS) -DCBLAS $< -o $(@F) + ++# The list of symbols to be removed can be seen in the diff between LAPACK's ++# original SRC/Makefile and the version of that same file that is included in ++# OpenBLAS (unfiltered) tarball ++delete-duplicate-lapack-objects: ++ cd ../lapack-netlib && rm $(SLAPACKOBJS) $(DLAPACKOBJS) $(CLAPACKOBJS) $(ZLAPACKOBJS) lsame.o xerbla.o +--- a/Makefile.install ++++ b/Makefile.install +@@ -46,14 +46,6 @@ ifndef NO_CBLAS + @sed 's/common/openblas_config/g' cblas.h > "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h" + endif + +-ifndef NO_LAPACKE +- @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR) +- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" +- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_config.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h" +- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_mangling_with_flags.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h" +- @-install -pm644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_utils.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h" +-endif +- + #for install static library + ifndef NO_STATIC + @echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) diff --git a/patches/order-files.patch b/patches/order-files.patch new file mode 100644 index 0000000..471f1b2 --- /dev/null +++ b/patches/order-files.patch @@ -0,0 +1,30 @@ +Description: Order files + Order the files when calling `ar' or $(CC), to make the build reproducible. +Author: Alexis Bienvenüe +Bugs-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=824639 +Reviewed-by: Sébastien Villemot +Last-Update: 2016-09-06 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Makefile ++++ b/Makefile +@@ -205,7 +205,7 @@ netlib : + mkdir lapack-netlib + cd lapack-netlib && ar -x /usr/lib/lapack/liblapack_pic.a + make -C interface delete-duplicate-lapack-objects +- ar -ru $(LIBNAME) lapack-netlib/* ++ ar -ru $(LIBNAME) `LC_ALL=C ls lapack-netlib/*` + + clean:: + rm -rf lapack-netlib +--- a/interface/Makefile ++++ b/interface/Makefile +@@ -2153,7 +2153,7 @@ libblas.so.3: $(SBLAS1OBJS) $(SBLAS2OBJS + + # The prerequisites must match the symbols deleted in target delete-duplicate-lapack-objects + liblapack.so.3: $(SLAPACKOBJS) $(DLAPACKOBJS) $(CLAPACKOBJS) $(ZLAPACKOBJS) ../kernel/lsame.o ../driver/others/xerbla.o +- $(CC) $(LDFLAGS) -shared -o $@ $^ ../lapack-netlib/* -Wl,-soname,liblapack.so.3 -L.. -lopenblas $(EXTRALIB) ++ $(CC) $(LDFLAGS) -shared -o $@ $^ `LC_ALL=C ls ../lapack-netlib/*` -Wl,-soname,liblapack.so.3 -L.. -lopenblas $(EXTRALIB) + + clean:: + rm -f libblas.so.3 liblapack.so.3 diff --git a/patches/remove-openmp-warning.patch b/patches/remove-openmp-warning.patch new file mode 100644 index 0000000..250c0f9 --- /dev/null +++ b/patches/remove-openmp-warning.patch @@ -0,0 +1,27 @@ +Description: Remove warning about OpenMP + This warning is annoying when the library is built with pthreads. + See #684344 +Author: Sébastien Villemot +Forwarded: no +Last-Update: 2014-02-17 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/driver/others/blas_server.c ++++ b/driver/others/blas_server.c +@@ -751,16 +751,6 @@ int exec_blas(BLASLONG num, blas_queue_t + fprintf(STDERR, "Exec_blas is called. Number of executing threads : %ld\n", num); + #endif + +-#ifdef __ELF__ +- if (omp_in_parallel && (num > 1)) { +- if (omp_in_parallel() > 0) { +- fprintf(stderr, +- "OpenBLAS Warning : Detect OpenMP Loop and this application may hang. " +- "Please rebuild the library with USE_OPENMP=1 option.\n"); +- } +- } +-#endif +- + if ((num > 1) && queue -> next) exec_blas_async(1, queue -> next); + + #ifdef TIMING_DEBUG diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..10169ef --- /dev/null +++ b/patches/series @@ -0,0 +1,9 @@ +arm-gcc-flags.patch +kfreebsd.patch +remove-openmp-warning.patch +no-embedded-lapack.patch +shared-blas-lapack.patch +matgen-symbols-not-included.patch +order-files.patch +mips-implement-mb-and-wmb.patch +mips-remove-incorrect-blas_lock-implementation.patch diff --git a/patches/shared-blas-lapack.patch b/patches/shared-blas-lapack.patch new file mode 100644 index 0000000..4203fca --- /dev/null +++ b/patches/shared-blas-lapack.patch @@ -0,0 +1,31 @@ +Description: Create shared libraries lib{blas,lapack}.so.3 + It is done so that duplicate code with libopenblas.so.0 is kept as low as + possible. Only the symbols from the external BLAS/LAPACK API are incorporated + in the shared libraries. The rest is obtained by dynamic linking against + libopenblas.so.0. +Author: Sébastien Villemot +Forwarded: not-needed +Last-Update: 2014-05-08 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/interface/Makefile ++++ b/interface/Makefile +@@ -2142,3 +2142,18 @@ cblas_zgeadd.$(SUFFIX) cblas_zgeadd.$(PS + # OpenBLAS (unfiltered) tarball + delete-duplicate-lapack-objects: + cd ../lapack-netlib && rm $(SLAPACKOBJS) $(DLAPACKOBJS) $(CLAPACKOBJS) $(ZLAPACKOBJS) lsame.o xerbla.o ++ ++shared-blas-lapack: libblas.so.3 liblapack.so.3 ++ ++# The list of prerequisite is created by comparing with NETLIB BLAS public API. ++# The symbol cblas_xerbla is missing here, but it does not seem to be provided ++# by libopenblas.so.0 either. ++libblas.so.3: $(SBLAS1OBJS) $(SBLAS2OBJS) $(SBLAS3OBJS) $(DBLAS1OBJS) $(DBLAS2OBJS) $(DBLAS3OBJS) $(CBLAS1OBJS) $(CBLAS2OBJS) $(CBLAS3OBJS) $(ZBLAS1OBJS) $(ZBLAS2OBJS) $(ZBLAS3OBJS) ../kernel/lsame.o ../kernel/scabs1.o ../kernel/dcabs1.o ../driver/others/xerbla.o ++ $(CC) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname,libblas.so.3 -L.. -lopenblas $(EXTRALIB) ++ ++# The prerequisites must match the symbols deleted in target delete-duplicate-lapack-objects ++liblapack.so.3: $(SLAPACKOBJS) $(DLAPACKOBJS) $(CLAPACKOBJS) $(ZLAPACKOBJS) ../kernel/lsame.o ../driver/others/xerbla.o ++ $(CC) $(LDFLAGS) -shared -o $@ $^ ../lapack-netlib/* -Wl,-soname,liblapack.so.3 -L.. -lopenblas $(EXTRALIB) ++ ++clean:: ++ rm -f libblas.so.3 liblapack.so.3 diff --git a/rules b/rules new file mode 100755 index 0000000..de75b84 --- /dev/null +++ b/rules @@ -0,0 +1,111 @@ +#!/usr/bin/make -f + +include /usr/share/dpkg/buildflags.mk +include /usr/share/dpkg/pkg-info.mk + +MAKE_OPTIONS := NO_LAPACKE=1 NO_AFFINITY=1 NO_WARMUP=1 CFLAGS="$(CPPFLAGS) $(CFLAGS)" FFLAGS="$(FFLAGS)" + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + MAKE_OPTIONS += DEBUG=1 +endif + +# Build generic package with hardcoded max number of threads of 64 +GENERIC_OPTIONS := NUM_THREADS=64 + +# On x86 archs, enable dynamic arch selection +ENABLE_DYNAMIC_ARCHS := amd64 i386 kfreebsd-amd64 kfreebsd-i386 +ifneq (,$(findstring $(DEB_HOST_ARCH),$(ENABLE_DYNAMIC_ARCHS))) + GENERIC_OPTIONS += DYNAMIC_ARCH=1 +endif + +# We cannot use the ARMv7 profile on armhf, because it requires a 32-register FP unit. +# See kernel/arm/KERNEL.ARMv7: it loads some *_vfpv3.S files, which use 32 registers. +# Also, it FTBFS if GCC flag -mvfpv3 is removed (see arm-gcc-flags.patch), because GCC +# refuses asm files with 32 FP registers in that case. +# Issue discussed in https://github.com/xianyi/OpenBLAS/issues/388 +# See also debian/patches/arm-gcc-flags.patch which is related. +ifeq ($(DEB_HOST_ARCH),armhf) + GENERIC_OPTIONS += TARGET=ARMV6 +endif + +ifeq ($(DEB_HOST_ARCH),arm64) + GENERIC_OPTIONS += TARGET=ARMV8 +endif + +# There is no dynamic arch selection on PowerPC. To avoid selecting a +# target based on the buildd hardware, we enforce a generic-enough +# target. +ifeq ($(DEB_HOST_ARCH),powerpc) + GENERIC_OPTIONS += TARGET=PPCG4 +endif + +# Same for mips64el +ifeq ($(DEB_HOST_ARCH),mips64el) + GENERIC_OPTIONS += TARGET=SICORTEX +endif + +ifeq ($(DEB_HOST_ARCH),ppc64el) + GENERIC_OPTIONS += TARGET=POWER8 +endif + +# The testsuite crashes on PowerPC. Disable it by pretending we are +# cross-compiling. +ifeq ($(DEB_HOST_ARCH),powerpc) + GENERIC_OPTIONS += CROSS=1 +endif + + +ifeq ($(TARGET),) + # Generic package + MAKE_OPTIONS += $(GENERIC_OPTIONS) +else ifeq ($(TARGET),custom) + # Custom package, leave the arch detection to OpenBLAS +else + # Use the TARGET value provided by the user + MAKE_OPTIONS += TARGET=$(TARGET) +endif + + +%: + dh $@ + +debian/blas-openblas.pc: debian/blas-openblas.pc.in + sed -e "s%@DEB_VERSION_UPSTREAM@%$(DEB_VERSION_UPSTREAM)%" < $< > $@ + +debian/lapack-openblas.pc: debian/lapack-openblas.pc.in + sed -e "s%@DEB_VERSION_UPSTREAM@%$(DEB_VERSION_UPSTREAM)%" < $< > $@ + +override_dh_auto_build: debian/blas-openblas.pc debian/lapack-openblas.pc + $(MAKE) $(MAKE_OPTIONS) + + $(MAKE) -C interface shared-blas-lapack $(MAKE_OPTIONS) + +override_dh_auto_install: + $(MAKE) install $(MAKE_OPTIONS) DESTDIR=debian/tmp/ PREFIX=/usr + +override_dh_auto_clean: + dh_auto_clean + rm -f debian/*.pc + +custom: + dch --local='+custom' "custom build on: `uname -a`" + LANG=C DEB_CFLAGS_MAINT_APPEND="-march=native -mtune=native" debian/rules TARGET=custom build binary + +# We want packages linked with -lblas to depend on any BLAS alternative, and we +# want packages linked with -lopenblas to depend specifically on +# libopenblas-base. +# +# Such a setting is not supported by dh_makeshlibs, so we ship a hand-crafted +# shlibs file. +override_dh_makeshlibs: + dh_makeshlibs + cp debian/libopenblas-base.shlibs debian/libopenblas-base/DEBIAN/shlibs + +override_dh_gencontrol: + dh_gencontrol -- -VBuilt-Using="`dpkg-query -W -f='$${source:Package} (= $${source:Version})' liblapack-pic`" + +override_dh_strip: + dh_strip --dbgsym-migration='libopenblas-dbg (<< 0.2.16-1~)' + +get-orig-source: + -uscan --upstream-version 0 diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/tests/control b/tests/control new file mode 100644 index 0000000..88bd543 --- /dev/null +++ b/tests/control @@ -0,0 +1,3 @@ +Tests: upstream-testsuite +Restrictions: allow-stderr +Depends: @, gfortran diff --git a/tests/upstream-testsuite b/tests/upstream-testsuite new file mode 100644 index 0000000..6c7373d --- /dev/null +++ b/tests/upstream-testsuite @@ -0,0 +1,21 @@ +#!/bin/sh +# Execute upstream's testsuite against the installed binaries. + +set -e + +if [ -z "$ADTTMP" ] +then + echo "Temporary directory \$ADTTMP is not set. Aborting" >&2 + exit 1 +fi + +# Work from $ADTTMP as we need to treat the original source as read-only +cp -a test Makefile* ?_check cpuid* ctest* getarch* param.h "$ADTTMP"/ +cd "$ADTTMP"/test + +# Make tests use the installed binaries instead of using the build result path +sed -i -e 's,\.\./\$(LIBNAME),,g' Makefile +sed -i -e 's,CEXTRALIB =,CEXTRALIB = -lopenblas -lpthread,' Makefile + +# Execute tests +make diff --git a/watch b/watch new file mode 100644 index 0000000..d32f8e6 --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=4 +opts=filenamemangle=s/.+\/archive\/v(.+)\.tar\.gz$/openblas_$1.orig.tar.gz/ \ +https://github.com/xianyi/OpenBLAS/tags .*/archive/v(\d[\d\.]+)\.tar\.gz -- 2.30.2