#930 Unable to compile ATLAS 3.10.0 on MacOSX 10.9.1

Stable_(v3.10.x)
open
nobody
None
5
2014-08-21
2013-12-27
Marco
No

Hi,

I am trying to compile ATLAS on my new MBP, but no matter what I try it does not work.
I tried to follow several guides(e.g.: https://github.com/jonathansick/dotfiles/wiki/Notes-for-Mac-OS-X).

Any help would be great!

Thank you!
-Marco

Here are some outputs that I am getting:
bin/INSTALL_LOG/ERROR.LOG
Darwin PALM00561345A 13.0.2 Darwin Kernel Version 13.0.2: Sun Sep 29 19:38:57 PDT 2013; root:xnu-2422.75.4~1/RELEASE_X86_64 x86_64
gcc-4.7 (GCC) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ERROR 621 DURING CACHESIZE SEARCH!!. CHECK INSTALL_LOG/Stage1.log FOR DETAILS.
Error report error_<ARCH>.tgz has been created in your top-level ATLAS
directory. Be sure to include this file in any help request.

bin/INSTALL_LOG/Stage1.log




  • BEGAN ATLAS3.10.0 INSTALL OF SECTION 1-0-0 ON 12/26/2013 AT 16:02 *



cd /Users/i822913/Downloads/ATLAS3.10.0/_mac_build/src/auxil ; /Applications/Xcode.app/Contents/Developer/usr/bin/make -s ATL_buildinfo.o
/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//tune/sysinfo/emit_buildinfo.c: In function 'CmndResults':
/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//tune/sysinfo/emit_buildinfo.c:51:7: warning: 'tmpnam' is deprecated (declared at /usr/include/stdio.h:274): This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tmpnam(3), it is highly recommended that you use mkstemp(3) instead. [-Wdeprecated-declarations]
system: make print_F77 | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_F77FLAGS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_ICC | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_ICCFLAGS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_SMC | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_SMCFLAGS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_DMC | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_DMCFLAGS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_SKC | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_SKCFLAGS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_DKC | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_DKCFLAGS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_ARCHDEFS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_F2CDEFS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_INSTFLAGS | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: make print_ARCH | fgrep -v make > /var/tmp/tmp.0.3zWbgt
system: /usr/local/bin/gcc-4.7 --version > /var/tmp/tmp.0.3zWbgt
system: /usr/local/bin/gcc-4.7 --version > /var/tmp/tmp.0.3zWbgt
system: /usr/local/bin/gcc-4.7 --version > /var/tmp/tmp.0.3zWbgt
system: /usr/local/bin/gcc-4.7 --version > /var/tmp/tmp.0.3zWbgt
system: /usr/local/bin/gcc-4.7 --version > /var/tmp/tmp.0.3zWbgt
system: /usr/local/bin/gfortran-4.7 --version > /var/tmp/tmp.0.3zWbgt
system: uname -a > /var/tmp/tmp.0.3zWbgt
system: whoami > /var/tmp/tmp.0.3zWbgt
system: date > /var/tmp/tmp.0.3zWbgt
cd /Users/i822913/Downloads/ATLAS3.10.0/_mac_build/src/auxil ; /Applications/Xcode.app/Contents/Developer/usr/bin/make lib
cd /Users/i822913/Downloads/ATLAS3.10.0/_mac_build/bin ; /Applications/Xcode.app/Contents/Developer/usr/bin/make xatlas_waitfile
/usr/local/bin/gcc-4.7 -DL2SIZE=4194304 -I/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/include -I/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//include -I/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//include/contrib -DUNKNOWN -DUNKNOWN -DStringUNKNOWN -DATL_OS_OSX -DATL_ARCH_UNKNOWNx86 -DATL_CPUMHZ=2300 -DATL_AVXMAC -DATL_AVX -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664 -m64 -DATL_DYLIBS -DATL_NCPU=8 -O -fomit-frame-pointer -m64 -c /Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//bin/atlas_waitfile.c
cd /Users/i822913/Downloads/ATLAS3.10.0/_mac_build/tune/sysinfo ; /Applications/Xcode.app/Contents/Developer/usr/bin/make ATL_Xwalltime.o
cp /Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//tune/sysinfo/ATL_walltime.c .
/usr/local/bin/gcc-4.7 -c -DL2SIZE=4194304 -I/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/include -I/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//include -I/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/..//include/contrib -DUNKNOWN -DUNKNOWN -DStringUNKNOWN -DATL_OS_OSX -DATL_ARCH_UNKNOWNx86 -DATL_CPUMHZ=2300 -DATL_AVXMAC -DATL_AVX -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664 -m64 -DATL_DYLIBS -DATL_NCPU=8 -O -fomit-frame-pointer -mavx -m64 -fPIC ATL_walltime.c
/var/folders/zm/32k9r4k53w7g_97pkkfrmvdsyhc_97/T//ccjOEMDt.s:16:no such instruction: vxorpd %xmm0, %xmm0,%xmm0' /var/folders/zm/32k9r4k53w7g_97pkkfrmvdsyhc_97/T//ccjOEMDt.s:24:no such instruction:vcvtsi2sdq %rax, %xmm1,%xmm1'
/var/folders/zm/32k9r4k53w7g_97pkkfrmvdsyhc_97/T//ccjOEMDt.s:27:no such instruction: vcvtsi2sdq %rax, %xmm0,%xmm0' /var/folders/zm/32k9r4k53w7g_97pkkfrmvdsyhc_97/T//ccjOEMDt.s:28:no such instruction:vdivsd LC1(%rip), %xmm0,%xmm0'
/var/folders/zm/32k9r4k53w7g_97pkkfrmvdsyhc_97/T//ccjOEMDt.s:29:no such instruction: `vaddsd %xmm0, %xmm1,%xmm0'
make[5]: [ATL_walltime.o] Error 1
make[4]:
[/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/tune/sysinfo/ATL_Xwalltime.o] Error 2
make[3]: [/Users/i822913/Downloads/ATLAS3.10.0/_mac_build/bin/xatlas_waitfile] Error 2
make[2]:
[IStage1] Error 2

Discussion

  • Michael Lehn
    Michael Lehn
    2014-05-05

    I had the same problem. In my case it was because the home-brew installation of gcc is broken. That is why I also got errors like "no such instruction: vxorpd %xmm0, %xmm0,%xmm0'" (although my architecture supports the instruction).

    I now switched back to macports. With gcc from macport it works fine.

     
  • Michael Lehn
    Michael Lehn
    2014-05-07

    Ok, I have some new insights. No matter whether you install gcc via MacPorts or Homebrew there is trouble with using AVX instructions. By default the gcc installation will use the GNU Assembler (also installed via MacPorts or Homebrew) instead of the Assembler that comes with Xcode. The installed GNU Assembler does not support AVX (or thinks there is no AVX). When you are using the gcc from MacPorts or Homebrew you have to use the Option '-Xassembler -q'. This causes that the correct Assembler (from XCode/clang) gets called.

    So I configured ATLAS with

      ../configure -t 0 -C acg /usr/local/bin/gcc-4.8 -Fa ac  '-Xassembler -q' -C if /usr/local/bin/gfortran
    

    Unfortunately this does not solve the problem. Although I tried to force ATLAS using the gcc-4.8 at some point ATLAS still uses the gcc. For example, ATLAS tries to compile 'ATL_dnrm2_xp1yp0aXbX.c' with gcc (which on Mac OS X is actually clang). Then you get an error that '387' is not supported ...

    I finally gave up and created a soft link

      sudo ln -s /usr/local/bin/gcc-4.8 /usr/local/bin/gcc
    

    this is certainly not the right thing to do. But it solved the problem ...

     
  • I am also trying to compile ATLAS on my Mac OSX 10.9.3 with a HomeBrew install of gcc / gfortran. I was able to get past the first error using the configure options listed above (thanks!), but still run into the error 387 even though the error occurs with gcc-4.8.

    Any further insight would be greatly appreciated.

    =========
    Here's a snippet from my Stage1.log error file, that I will attach here.

    cp -f GEN/* /Users/wissels/build/ATLAS3.10.0/bld/src/blas/level1/.
    /Applications/Xcode.app/Contents/Developer/usr/bin/make -f Make_dnrm2 lib
    /usr/local/bin/gcc-4.8 -DL2SIZE=33554432 -I/Users/wissels/build/ATLAS3.10.0/bld/include -I/Users/wissels/build/ATLAS3.10.0/bld/..//include -I/Users/wissels/build/ATLAS3.10.0/bld/..//include/contrib -DUNKNOWN -DUNKNOWN -DStringUNKNOWN -DATL_OS_OSX -DATL_ARCH_Corei2 -DATL_CPUMHZ=2500 -DATL_AVX -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664 -m64  -fomit-frame-pointer -mfpmath=sse -O2  -mavx -Xassembler -q -m64 -DDREAL -o ATL_dnrm2.o -c ATL_dnrm2.c
    gcc -fomit-frame-pointer -mfpmath=sse -O2  -mavx -m64 -fomit-frame-pointer -mfpmath=387 -O2 -DL2SIZE=33554432 -I/Users/wissels/build/ATLAS3.10.0/bld/include -I/Users/wissels/build/ATLAS3.10.0/bld/..//include -I/Users/wissels/build/ATLAS3.10.0/bld/..//include/contrib -DUNKNOWN -DUNKNOWN -DStringUNKNOWN -DATL_OS_OSX -DATL_ARCH_Corei2 -DATL_CPUMHZ=2500 -DATL_AVX -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664 -m64  -DDREAL -o ATL_dnrm2_xp1yp0aXbX.o -c ATL_dnrm2_xp1yp0aXbX.c
    error: the '387' unit is not supported with this instruction set
    make[6]: *** [ATL_dnrm2_xp1yp0aXbX.o] Error 1
    make[5]: *** [dgen] Error 2
    make[4]: *** [dlib] Error 2
    make[3]: *** [lib.grd] Error 2
    make[2]: *** [IStage1] Error 2
    
     
    Last edit: Stephanie Wissel 2014-06-06
    Attachments
  • Hmm. Looks like an error in gcc? x87 unit is definitely supported on that instruction set. If you notice your compiler flags first say -mfpmath=sse, and then they override it with -mfpmath=387.

    You may need to triage the compiler flags and see which one is causing gcc (or is it clang?) to gripe about the x87 unit code. Is it the -mavx, or the original -mfpmath=sse, or what?

    I don't have much access to apple hardware/software, and I could not solve the apple breaks binutils problem before releasing 3.10.

    If you are still interested in this problem, I do know someone who has gotten it to work. I can ask him to look at this problem and make suggestions if you are still interested.

    So, let me know if anyone is still interested. If no response, will cose this in a few days.

    Thanks,
    Clint

     
  • Sarah Sweet
    Sarah Sweet
    2014-07-30

    I am also interested in this; also compiling ATLAS on 10.9.3 with HomeBrew gcc-4.7, and getting the 387 error. Do you have any suggestions?