ATLAS fails to build on mips

  • Done
  • quality assurance status badge
Details
3 participants
  • Andreas Enge
  • Federico Beffa
  • Ludovic Courtès
Owner
unassigned
Submitted by
Andreas Enge
Severity
normal
A
A
Andreas Enge wrote on 3 Nov 2014 10:33
(address . bug-guix@gnu.org)
20141103093342.GA7695@debian.eduroam.u-bordeaux.fr
ATLAS fails to build on mipsel64:
with
mkdir ARCHS
make -f Make.top startup
make[1]: Entering directory '/tmp/nix-build-atlas-3.10.2.drv-0/build'
Make.top:1: Make.inc: No such file or directory
make[1]: *** No rule to make target 'Make.inc'. Stop.
make[1]: Leaving directory '/tmp/nix-build-atlas-3.10.2.drv-0/build'

Can this be repaired, or is the package not supposed to work on mipsel64?
In the latter case, we would need to disable it for this architecture.

Andreas
F
F
Federico Beffa wrote on 3 Nov 2014 18:53
(address . 18933@debbugs.gnu.org)
CAKrPhPMqV9mJTTzvWG6xujnebjEAMUHddFgGWcq5Grg4X8PYKw@mail.gmail.com
What I see is that ATLAS is not able to detect the type of system on
which it is running.

My first question then is:

* Are we corss-compiling, or are we on proper hardware?

If we are cross-compiling, then the only solution that I see it to try
to fix the configuration with parameters passed to configure and give
up on optimization.

I have no practical experience with MIPS, so my next question is: In
the list of architectures supported by ATLAS I see:

49 = 'MIPSR1xK'
50 = 'MIPSICE9'

Is one of the two appropriate?

Also ATLAS wants to know about ISA extensions. Is any of the following
relevant or should I pick 'none'?

none: 1
VSX: 2
AltiVec: 4
AVXMAC: 8
AVXFMA4: 16
AVX: 32
SSE3: 64
SSE2: 128
SSE1: 256
3DNow: 512
NEON: 1024

Regards,
Fede

P.S.: I'm indeed not subscribed to the bug list. Could you copy me directly?
A
A
Andreas Enge wrote on 3 Nov 2014 22:27
Re: bug#18933: ATLAS fails to build on mips
(name . Federico Beffa)(address . beffa@ieee.org)(address . 18933@debbugs.gnu.org)
20141103212745.GA29422@debian
On Mon, Nov 03, 2014 at 06:53:35PM +0100, Federico Beffa wrote:
Toggle quote (2 lines)
> * Are we corss-compiling, or are we on proper hardware?

No, it is native on a mips machine.

Toggle quote (5 lines)
> I have no practical experience with MIPS, so my next question is: In
> the list of architectures supported by ATLAS I see:
> 49 = 'MIPSR1xK'
> 50 = 'MIPSICE9'

No idea. But there is a debian package for mipsel, described as
"The libraries in this package are built without any processor extension instructions, and should run on all processors of this general architecture, albeit less than optimally."

Toggle quote (14 lines)
> Also ATLAS wants to know about ISA extensions. Is any of the following
> relevant or should I pick 'none'?
> none: 1
> VSX: 2
> AltiVec: 4
> AVXMAC: 8
> AVXFMA4: 16
> AVX: 32
> SSE3: 64
> SSE2: 128
> SSE1: 256
> 3DNow: 512
> NEON: 1024

2 and 4 are for powerpc, 8 to 512 for x86 and 1024 for arm. So "none"
should be best.

Andreas
F
F
Federico Beffa wrote on 8 Nov 2014 22:45
(name . Andreas Enge)(address . andreas@enge.fr)(address . 18933@debbugs.gnu.org)
CAKrPhPNrYuoOTgCZadJiP7_DL5vxcczPdBXMoipiDFJLuEOyYw@mail.gmail.com
I'm trying to pass an architecture parameter to configure. However, if
I do something like

...
#:configure-flags
`(...
;; On non "x86_64" / "i686" platforms, do not guess processor
;; architecture (because it fails) and do not use ISA extensions.
;; We set MACHINETYPE = 52 'generic' and ISA = 1 'none'.
,,(if (not (and (string-prefix? "x86_64" (%current-system))
(string-prefix? "i686" (%current-system))))
"-A 52 -V 1")
...

the configure flags are not recognized. Differently from this, if I
pass each parameter as a separate string as in

"-A" "52" "-V" "1"

they are recognized. Do you have a suggestion for how to achieve this
without 4 equal 'if'?

Regards,
Fede
A
A
Andreas Enge wrote on 9 Nov 2014 10:29
(name . Federico Beffa)(address . beffa@ieee.org)(address . 18933@debbugs.gnu.org)
20141109092914.GB8425@debian
On Sat, Nov 08, 2014 at 10:45:18PM +0100, Federico Beffa wrote:
Toggle quote (9 lines)
> #:configure-flags
> `(...
> ;; On non "x86_64" / "i686" platforms, do not guess processor
> ;; architecture (because it fails) and do not use ISA extensions.
> ;; We set MACHINETYPE = 52 'generic' and ISA = 1 'none'.
> ,,(if (not (and (string-prefix? "x86_64" (%current-system))
> (string-prefix? "i686" (%current-system))))
> "-A 52 -V 1")

You should put the different configure flags as elements of a list.
To concatenate with an existing list, you can do something like this
(taken from xkbcomp):
(inputs
`(,@(package-inputs xkbcomp-intermediate)
("xkeyboard-config" ,xkeyboard-config)))

Andreas
L
?