all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] Attempt to fix OpenBLAS on MIPS.
Date: Tue, 21 Jul 2015 12:48:30 -0400	[thread overview]
Message-ID: <87vbdd1mox.fsf@netris.org> (raw)
In-Reply-To: <87zj2p1r0h.fsf@netris.org> (Mark H. Weaver's message of "Tue, 21 Jul 2015 11:15:10 -0400")

Mark H Weaver <mhw@netris.org> writes:

> Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> writes:
>
>> Attached is a patch that *might* fix the build of OpenBLAS on MIPS.
>>
>> The LOONGSON3A and LOONGSON3B targets both enable the use of special
>> extended instructions which may not be available on other MIPS CPUs.
>> This patch forces the SICORTEX target to be used, which should limit the
>> code to only standard MIPS instructions.
>>
>> I don’t know if this would actually work and I note that SICORTEX is
>> listed as a “mips” target, rather than “mips64”, so maybe this is doomed
>> to fail.  I would appreciate it if someone with a MIPS machine could
>> test this patch.
>
> With this patch, openblas builds successfully on mips64el, although I
> cannot say whether it works, since there are no tests.

I've since learned that normally tests are run during the 'build' phase,
but that doesn't seem to be happening anymore on MIPS with this new
patch applied.  Here's the transcript of the end of the build phase:

--8<---------------cut here---------------start------------->8---
ar  -ru ../libopenblas_mipsp-r0.2.14.a samax_k.o samin_k.o smax_k.o smin_k.o isamax_k.o isamin_k.o ismax_k.o ismin_k.o sasum_k.o saxpy_k.o scopy_k.o sdot_k.o sdsdot_k.o dsdot_k.o snrm2_k.o srot_k.o sscal_k.o sswap_k.o saxpby_k.o sgemv_n.o sgemv_t.o ssymv_U.o ssymv_L.o sger_k.o sgemm_kernel.o sgemm_incopy.o sgemm_itcopy.o sgemm_oncopy.o sgemm_otcopy.o sgemm_beta.o strmm_kernel_LN.o strmm_kernel_LT.o strmm_kernel_RN.o strmm_kernel_RT.o strsm_kernel_LN.o strsm_kernel_LT.o strsm_kernel_RN.o strsm_kernel_RT.o strmm_iunucopy.o strmm_iunncopy.o strmm_ilnucopy.o strmm_ilnncopy.o strmm_iutucopy.o strmm_iutncopy.o strmm_iltucopy.o strmm_iltncopy.o strmm_ounucopy.o strmm_ounncopy.o strmm_olnucopy.o strmm_olnncopy.o strmm_outucopy.o strmm_outncopy.o strmm_oltucopy.o strmm_oltncopy.o strsm_iunucopy.o strsm_iunncopy.o strsm_ilnucopy.o strsm_ilnncopy.o strsm_iutucopy.o strsm_iutncopy.o strsm_iltucopy.o strsm_iltncopy.o strsm_ounucopy.o strsm_ounncopy.o strsm_olnucopy.o strsm_olnncopy.o strsm_outucopy.o strsm_outncopy.o strsm_oltucopy.o strsm_oltncopy.o ssymm_iutcopy.o ssymm_iltcopy.o ssymm_outcopy.o ssymm_oltcopy.o somatcopy_k_cn.o somatcopy_k_rn.o somatcopy_k_ct.o somatcopy_k_rt.o sgeadd_k.o damax_k.o damin_k.o dmax_k.o dmin_k.o idamax_k.o idamin_k.o idmax_k.o idmin_k.o dasum_k.o daxpy_k.o dcopy_k.o ddot_k.o dnrm2_k.o drot_k.o dscal_k.o dswap_k.o daxpby_k.o dgemv_n.o dgemv_t.o dsymv_U.o dsymv_L.o dger_k.o dgemm_kernel.o dgemm_incopy.o dgemm_itcopy.o dgemm_oncopy.o dgemm_otcopy.o dgemm_beta.o dtrmm_kernel_LN.o dtrmm_kernel_LT.o dtrmm_kernel_RN.o dtrmm_kernel_RT.o dtrsm_kernel_LN.o dtrsm_kernel_LT.o dtrsm_kernel_RN.o dtrsm_kernel_RT.o dtrmm_iunucopy.o dtrmm_iunncopy.o dtrmm_ilnucopy.o dtrmm_ilnncopy.o dtrmm_iutucopy.o dtrmm_iutncopy.o dtrmm_iltucopy.o dtrmm_iltncopy.o dtrmm_ounucopy.o dtrmm_ounncopy.o dtrmm_olnucopy.o dtrmm_olnncopy.o dtrmm_outucopy.o dtrmm_outncopy.o dtrmm_oltucopy.o dtrmm_oltncopy.o dtrsm_iunucopy.o dtrsm_iunncopy.o dtrsm_ilnucopy.o dtrsm_ilnncopy.o dtrsm_iutucopy.o dtrsm_iutncopy.o dtrsm_iltucopy.o dtrsm_iltncopy.o dtrsm_ounucopy.o dtrsm_ounncopy.o dtrsm_olnucopy.o dtrsm_olnncopy.o dtrsm_outucopy.o dtrsm_outncopy.o dtrsm_oltucopy.o dtrsm_oltncopy.o dsymm_iutcopy.o dsymm_iltcopy.o dsymm_outcopy.o dsymm_oltcopy.o domatcopy_k_cn.o domatcopy_k_rn.o domatcopy_k_ct.o domatcopy_k_rt.o dgeadd_k.o camax_k.o camin_k.o icamax_k.o icamin_k.o casum_k.o caxpy_k.o caxpyc_k.o ccopy_k.o cdotc_k.o cdotu_k.o cnrm2_k.o csrot_k.o cscal_k.o cswap_k.o caxpby_k.o cgemv_n.o cgemv_t.o cgemv_r.o cgemv_c.o cgemv_o.o cgemv_u.o cgemv_s.o cgemv_d.o csymv_U.o csymv_L.o chemv_U.o chemv_L.o chemv_V.o chemv_M.o cgeru_k.o cgerc_k.o cgerv_k.o cgerd_k.o cgemm_kernel_n.o cgemm_kernel_r.o cgemm_kernel_l.o cgemm_kernel_b.o cgemm_incopy.o cgemm_itcopy.o cgemm_oncopy.o cgemm_otcopy.o cgemm_beta.o ctrmm_kernel_LN.o ctrmm_kernel_LT.o ctrmm_kernel_LR.o ctrmm_kernel_LC.o ctrmm_kernel_RN.o ctrmm_kernel_RT.o ctrmm_kernel_RR.o ctrmm_kernel_RC.o ctrsm_kernel_LN.o ctrsm_kernel_LT.o ctrsm_kernel_LR.o ctrsm_kernel_LC.o ctrsm_kernel_RN.o ctrsm_kernel_RT.o ctrsm_kernel_RR.o ctrsm_kernel_RC.o ctrmm_iunucopy.o ctrmm_iunncopy.o ctrmm_ilnucopy.o ctrmm_ilnncopy.o ctrmm_iutucopy.o ctrmm_iutncopy.o ctrmm_iltucopy.o ctrmm_iltncopy.o ctrmm_ounucopy.o ctrmm_ounncopy.o ctrmm_olnucopy.o ctrmm_olnncopy.o ctrmm_outucopy.o ctrmm_outncopy.o ctrmm_oltucopy.o ctrmm_oltncopy.o ctrsm_iunucopy.o ctrsm_iunncopy.o ctrsm_ilnucopy.o ctrsm_ilnncopy.o ctrsm_iutucopy.o ctrsm_iutncopy.o ctrsm_iltucopy.o ctrsm_iltncopy.o ctrsm_ounucopy.o ctrsm_ounncopy.o ctrsm_olnucopy.o ctrsm_olnncopy.o ctrsm_outucopy.o ctrsm_outncopy.o ctrsm_oltucopy.o ctrsm_oltncopy.o csymm_iutcopy.o csymm_iltcopy.o csymm_outcopy.o csymm_oltcopy.o chemm_iutcopy.o chemm_iltcopy.o chemm_outcopy.o chemm_oltcopy.o comatcopy_k_cn.o comatcopy_k_rn.o comatcopy_k_ct.o comatcopy_k_rt.o comatcopy_k_cnc.o comatcopy_k_rnc.o comatcopy_k_ctc.o comatcopy_k_rtc.o cgeadd_k.o zamax_k.o zamin_k.o izamax_k.o izamin_k.o zasum_k.o zaxpy_k.o zaxpyc_k.o zcopy_k.o zdotc_k.o zdotu_k.o znrm2_k.o zdrot_k.o zscal_k.o zswap_k.o zaxpby_k.o zgemv_n.o zgemv_t.o zgemv_r.o zgemv_c.o zgemv_o.o zgemv_u.o zgemv_s.o zgemv_d.o zsymv_U.o zsymv_L.o zhemv_U.o zhemv_L.o zhemv_V.o zhemv_M.o zgeru_k.o zgerc_k.o zgerv_k.o zgerd_k.o zgemm_kernel_n.o zgemm_kernel_r.o zgemm_kernel_l.o zgemm_kernel_b.o zgemm_incopy.o zgemm_itcopy.o zgemm_oncopy.o zgemm_otcopy.o zgemm_beta.o ztrmm_kernel_LN.o ztrmm_kernel_LT.o ztrmm_kernel_LR.o ztrmm_kernel_LC.o ztrmm_kernel_RN.o ztrmm_kernel_RT.o ztrmm_kernel_RR.o ztrmm_kernel_RC.o ztrsm_kernel_LN.o ztrsm_kernel_LT.o ztrsm_kernel_LR.o ztrsm_kernel_LC.o ztrsm_kernel_RN.o ztrsm_kernel_RT.o ztrsm_kernel_RR.o ztrsm_kernel_RC.o ztrmm_iunucopy.o ztrmm_iunncopy.o ztrmm_ilnucopy.o ztrmm_ilnncopy.o ztrmm_iutucopy.o ztrmm_iutncopy.o ztrmm_iltucopy.o ztrmm_iltncopy.o ztrmm_ounucopy.o ztrmm_ounncopy.o ztrmm_olnucopy.o ztrmm_olnncopy.o ztrmm_outucopy.o ztrmm_outncopy.o ztrmm_oltucopy.o ztrmm_oltncopy.o ztrsm_iunucopy.o ztrsm_iunncopy.o ztrsm_ilnucopy.o ztrsm_ilnncopy.o ztrsm_iutucopy.o ztrsm_iutncopy.o ztrsm_iltucopy.o ztrsm_iltncopy.o ztrsm_ounucopy.o ztrsm_ounncopy.o ztrsm_olnucopy.o ztrsm_olnncopy.o ztrsm_outucopy.o ztrsm_outncopy.o ztrsm_oltucopy.o ztrsm_oltncopy.o zsymm_iutcopy.o zsymm_iltcopy.o zsymm_outcopy.o zsymm_oltcopy.o zhemm_iutcopy.o zhemm_iltcopy.o zhemm_outcopy.o zhemm_oltcopy.o zomatcopy_k_cn.o zomatcopy_k_rn.o zomatcopy_k_ct.o zomatcopy_k_rt.o zomatcopy_k_cnc.o zomatcopy_k_rnc.o zomatcopy_k_ctc.o zomatcopy_k_rtc.o zgeadd_k.o lsame.o scabs1.o dcabs1.o
ar: `u' modifier ignored since `D' is the default (see `U')
make[1]: Leaving directory '/tmp/nix-build-openblas-0.2.14.drv-0/xianyi-OpenBLAS-2b0d8a8/kernel'
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Entering directory '/tmp/nix-build-openblas-0.2.14.drv-0/xianyi-OpenBLAS-2b0d8a8/exports'
perl ./gensymbol linktest  mips64 _ 0 0 1 1 0 0 "" "" > linktest.c
gcc -O2 -Wall -mabi=n32 -DF_INTERFACE_GFORT -fPIC -DNO_LAPACK -DNO_LAPACKE -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=4 -DUSE_SIMPLE_THREADED_LEVEL3 -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I..  -shared -o ../libopenblas_mipsp-r0.2.14.so \
-Wl,--whole-archive ../libopenblas_mipsp-r0.2.14.a -Wl,--no-whole-archive \
-Wl,-soname,libopenblas.so.0 -lm -lpthread -lm -lpthread
gcc -O2 -Wall -mabi=n32 -DF_INTERFACE_GFORT -fPIC -DNO_LAPACK -DNO_LAPACKE -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=4 -DUSE_SIMPLE_THREADED_LEVEL3 -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I..  -w -o linktest linktest.c ../libopenblas_mipsp-r0.2.14.so  && echo OK.
OK.
rm -f linktest
make[1]: Leaving directory '/tmp/nix-build-openblas-0.2.14.drv-0/xianyi-OpenBLAS-2b0d8a8/exports'

 OpenBLAS build complete. (BLAS CBLAS)

  OS               ... Linux             
  Architecture     ... mips64               
  BINARY           ... 32bit                 
  C compiler       ... GCC  (command line : gcc)
  Fortran compiler ... GFORTRAN  (command line : gfortran)
  Library Name     ... libopenblas_mipsp-r0.2.14.a (Multi threaded; Max num-threads is 4)

To install the library, you can run "make PREFIX=/path/to/your/installation install".

phase `build' succeeded after 1098 seconds
--8<---------------cut here---------------end--------------->8---

     Mark

  reply	other threads:[~2015-07-21 16:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-20 13:11 [PATCH] Attempt to fix OpenBLAS on MIPS Ricardo Wurmus
2015-07-21 15:15 ` Mark H Weaver
2015-07-21 16:48   ` Mark H Weaver [this message]
2015-07-22 15:59     ` Ricardo Wurmus
2015-07-22 17:19       ` Andreas Enge
2015-07-22 20:02         ` Mark H Weaver
2015-07-22 20:07           ` Mark H Weaver
2015-08-24 12:28             ` Ricardo Wurmus
2015-09-24  8:27               ` Ricardo Wurmus
2015-07-23  1:28           ` Mark H Weaver

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87vbdd1mox.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=guix-devel@gnu.org \
    --cc=ricardo.wurmus@mdc-berlin.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.