gnu: openblas: Fix build on i686.
* gnu/packages/patches/openblas-fix-tests-i686.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/maths.scm (openblas)[native-inputs]: Add it. [arguments]: Add phase to apply it on i686 systems only.
This commit is contained in:
parent
0106d6b40d
commit
b7a46ed227
|
@ -967,6 +967,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/omake-fix-non-determinism.patch \
|
%D%/packages/patches/omake-fix-non-determinism.patch \
|
||||||
%D%/packages/patches/ola-readdir-r.patch \
|
%D%/packages/patches/ola-readdir-r.patch \
|
||||||
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
|
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
|
||||||
|
%D%/packages/patches/openblas-fix-tests-i686.patch \
|
||||||
%D%/packages/patches/openexr-missing-samples.patch \
|
%D%/packages/patches/openexr-missing-samples.patch \
|
||||||
%D%/packages/patches/openfoam-4.1-cleanup.patch \
|
%D%/packages/patches/openfoam-4.1-cleanup.patch \
|
||||||
%D%/packages/patches/openldap-CVE-2017-9287.patch \
|
%D%/packages/patches/openldap-CVE-2017-9287.patch \
|
||||||
|
|
|
@ -2836,6 +2836,16 @@ parts of it.")
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(delete 'configure)
|
(delete 'configure)
|
||||||
|
;; Conditionally apply a patch on i686 to avoid rebuilding
|
||||||
|
;; all architectures. FIXME: This should be moved to the
|
||||||
|
;; (source (patches ...)) field in the next rebuild cycle.
|
||||||
|
,@(if (string-prefix? "i686" (or (%current-target-system)
|
||||||
|
(%current-system)))
|
||||||
|
`((add-after 'unpack 'fix-tests
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(invoke "patch" "-p1"
|
||||||
|
"--input" (assoc-ref inputs "i686-fix-tests.patch")))))
|
||||||
|
'())
|
||||||
(add-before 'build 'set-extralib
|
(add-before 'build 'set-extralib
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
;; Get libgfortran found when building in utest.
|
;; Get libgfortran found when building in utest.
|
||||||
|
@ -2847,6 +2857,11 @@ parts of it.")
|
||||||
`(("fortran-lib" ,gfortran "lib")))
|
`(("fortran-lib" ,gfortran "lib")))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("cunit" ,cunit)
|
`(("cunit" ,cunit)
|
||||||
|
,@(if (string-prefix? "i686" (or (%current-target-system)
|
||||||
|
(%current-system)))
|
||||||
|
`(("i686-fix-tests.patch"
|
||||||
|
,(search-patch "openblas-fix-tests-i686.patch")))
|
||||||
|
'())
|
||||||
("fortran" ,gfortran)
|
("fortran" ,gfortran)
|
||||||
("perl" ,perl)))
|
("perl" ,perl)))
|
||||||
(home-page "http://www.openblas.net/")
|
(home-page "http://www.openblas.net/")
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
Fix a test failure on some i686 systems:
|
||||||
|
|
||||||
|
https://github.com/xianyi/OpenBLAS/issues/1575
|
||||||
|
|
||||||
|
This patch is a squashed version of these commits:
|
||||||
|
|
||||||
|
https://github.com/xianyi/OpenBLAS/pull/1583
|
||||||
|
|
||||||
|
diff --git a/kernel/x86/KERNEL.NEHALEM b/kernel/x86/KERNEL.NEHALEM
|
||||||
|
index 835520ef..65b03ae5 100644
|
||||||
|
--- a/kernel/x86/KERNEL.NEHALEM
|
||||||
|
+++ b/kernel/x86/KERNEL.NEHALEM
|
||||||
|
@@ -1,3 +1 @@
|
||||||
|
include $(KERNELDIR)/KERNEL.PENRYN
|
||||||
|
-SSWAPKERNEL = ../arm/swap.c
|
||||||
|
-DSWAPKERNEL = ../arm/swap.c
|
||||||
|
diff --git a/kernel/x86/swap.S b/kernel/x86/swap.S
|
||||||
|
index 54b00b33..e30c2789 100644
|
||||||
|
--- a/kernel/x86/swap.S
|
||||||
|
+++ b/kernel/x86/swap.S
|
||||||
|
@@ -138,6 +138,14 @@
|
||||||
|
/* INCX != 1 or INCY != 1 */
|
||||||
|
|
||||||
|
.L14:
|
||||||
|
+ cmpl $0, %ebx
|
||||||
|
+ jne .L141
|
||||||
|
+ cmpl $0, %ecx
|
||||||
|
+ jne .L141
|
||||||
|
+/* INCX == 0 and INCY == 0 */
|
||||||
|
+ jmp .L27
|
||||||
|
+
|
||||||
|
+.L141:
|
||||||
|
movl %edx, %eax
|
||||||
|
sarl $2, %eax
|
||||||
|
jle .L28
|
Loading…
Reference in New Issue