Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


#207 Compilation on processor without SSE2 tries to build with it


On one of my older machines I'm not able to update ATLAS to new 3.10.x - all was working well with 3.8.4. The machine is two processor Pentium III 1GHz. I'm attaching the error log. Is this error, or by any chance ATLAS requires SSE2 now? I will be happy to provide any additional details.


1 2 > >> (Page 1 of 2)
    • assigned_to: nobody --> rwhaley
  • Andrzej,

    No, ATLAS does *not* require SSE, or any vectorization. At one point before the release, I installed on both a PIII and a PentiumPRO successfully, but the machines are so slow, I don't think I installed again after the final changes were made :(

    Unfortunately, your log files are completely empty (only the header is printed). Was there anything else printed to the screen?


  • Hi, only error I've seen is what at the end of Stage1.log:

    gcc -fPIC -m32 -x assembler-with-cpp -DL2SIZE=4194304 -I/tmp/yaourt-tmp-aginiewicz/aur-atlas-lapack/src/ATLAS/build/include -I/tmp/yaourt-tmp-aginiewicz/aur-atlas-lapack/src/ATLAS/build/..//include -I/tmp/yaourt-tmp-aginiewicz/aur-atlas-lapack/src/ATLAS/build/..//include/contrib -DAdd_ -DF77_INTEGER=int -DStringSunStyle -DATL_OS_Linux -DATL_ARCH_PIII -DATL_CPUMHZ=999 -DATL_SSE1 -DATL_GAS_x8632 -m32 -DATL_FULL_LAPACK -DATL_NCPU=2 -DDREAL -o ATL_dset_xp1yp0aXbX.o -c ATL_dset_xp1yp0aXbX.c
    ATL_dset_xp1yp0aXbX.c:89:5: error: #error "This routine requires SSE2"

    so it seems this is the culprit.


    • milestone: 148062 -->
    • labels: 360151 -->
    • status: open --> open-accepted
  • OK, this looks like incorrect testing on my part. I confirm this as a bug in ATLAS, and have moved this to the bugtracker.

    So that I can create an errata entry, can you try the following fix:

    Edit your ATLAS/tune/blas/level/SET/set_x86.c, and change lines 86-87 from:
    #ifndef ATL_SSE2
    #error "This routine requires SSE2"
    #ifndef ATL_SSE1
    #error "This routine requires SSE1"

    Let me know, and thanks for this bug report!

    • milestone: --> Stable
    • labels: --> Install problem
  • After this change, it stops in the same way, but in different place:

    gcc -fPIC -m32 -DL2SIZE=4194304 -I/tmp/yaourt-tmp-aginiewicz/aur-atlas-lapack/src/ATLAS/build/include -I/tmp/yaourt-tmp-aginiewicz/aur-atlas-lapack/src/ATLAS/build/..//include -I/tmp/yaourt-tmp-aginiewicz/aur-atlas-lapack/src/ATLAS/build/..//include/contrib -DAdd_ -DF77_INTEGER=int -DStringSunStyle -DATL_OS_Linux -DATL_ARCH_PIII -DATL_CPUMHZ=999 -DATL_SSE1 -DATL_GAS_x8632 -m32 -DATL_FULL_LAPACK -DATL_NCPU=2 -DATL_UCLEANM -DATL_UCLEANN -DATL_UCLEANK -DATL_BETA=0 -c -x assembler-with-cpp ATL_supNBmm0_1_0_b0.c
    ATL_supNBmm0_1_0_b0.c:87:5: error: #error "This routine requires SSE2!"

  • OK, another example of the same incorrect guard. \

    Change lines 36-37 of ATLAS/tune/blas/gemm/CASES/ATL_smm6x1x80_sse.c from:
    #ifndef ATL_SSE2
    #error "This routine requires SSE2!"

    to:#ifndef ATL_SSE1
    #error "This routine requires SSE1!"

    You may have to start a new install, since sometimes dying in the middle of cleanup can create a malformed library.

    Let me know!

  • It worked now, build finished. Thanks for ultra-fast-fixing! I'm running make check and make ptcheck now to verify that all went well, but I hope it will be OK.


1 2 > >> (Page 1 of 2)