ports/186997: [patch] math/atlas compile error with clang 3.4 on i386

Don Lewis truckman at FreeBSD.org
Mon Feb 24 06:00:00 UTC 2014


>Number:         186997
>Category:       ports
>Synopsis:       [patch] math/atlas compile error with clang 3.4 on i386
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 24 06:00:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Don Lewis
>Release:        FreeBSD 11.0-CURRENT i386
>Organization:
FreeBSD Project
>Environment:
System: FreeBSD scratch.catspoiler.org 11.0-CURRENT FreeBSD 11.0-CURRENT #70 r262340M: Sat Feb 22 15:58:39 PST 2014     dl at scratch.catspoiler.org:/usr/obj/usr/src/sys/GENERICSMB  i386

Ports revision 345674

>Description:

The port build fails at this point:

cd /usr/ports/math/atlas/work/ATLAS/shared/tune/blas/gemm ; make res/atlas_cacheedge.h pre=d
make dRunFindCE
cd /usr/ports/math/atlas/work/ATLAS/shared/src/blas/gemm ; make dlib
make auxillib dcleanuplib dusergemm
cd /usr/ports/math/atlas/work/ATLAS/shared/src/auxil ; make lib
cd KERNEL ; make -f dMakefile dlib
cc  -fpic -DPIC -DL2SIZE=4194304 -I/usr/ports/math/atlas/work/ATLAS/shared/include -I/usr/ports/math/atlas/work/ATLAS/shared/..//include -I/usr/ports/math/atlas/work/ATLAS/shared/..//include/contrib -DAdd_ -DF77_INTEGER=int -DStringSunStyle -DATL_OS_FreeBSD -DATL_ARCH_HAMMER -DATL_CPUMHZ=2500 -DATL_SSE3 -DATL_SSE2 -DATL_SSE1 -DATL_3DNow -DATL_GAS_x8632  -DATL_NCPU=2 -D_THREAD_SAFE -D_REENTRANT -DATL_UCLEANM -DATL_UCLEANN -DATL_UCLEANK -DATL_BETA=0 -c -x assembler-with-cpp ATL_dupMBmm0_4_0_b0.c
ATL_dupMBmm0_4_0_b0.c:1633:9: error: ambiguous instructions require an explicit suffix (could be 'subb', 'subw', 'subl', or 'subq')
        sub $1, 36 -4(%esp)
        ^
ATL_dupMBmm0_4_0_b0.c:1648:9: error: ambiguous instructions require an explicit suffix (could be 'subb', 'subw', 'subl', or 'subq')
        sub $1, 36 -4 -4 -4(%esp)
        ^
*** Error code 1

Stop.
make[9]: stopped in /usr/ports/math/atlas/work/ATLAS/shared/src/blas/gemm/KERNEL
*** Error code 1

Stop.
make[8]: stopped in /usr/ports/math/atlas/work/ATLAS/shared/src/blas/gemm
*** Error code 1

Stop.
make[7]: stopped in /usr/ports/math/atlas/work/ATLAS/shared/src/blas/gemm
*** Error code 1

Stop.
make[6]: stopped in /usr/ports/math/atlas/work/ATLAS/shared/tune/blas/gemm
*** Error code 1

Stop.
make[5]: stopped in /usr/ports/math/atlas/work/ATLAS/shared/tune/blas/gemm
*** Error code 1

make[5]: stopped in /usr/ports/math/atlas/work/ATLAS/shared/tune/blas/gemm
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/math/atlas/work/ATLAS/shared/bin
ERROR 639 DURING CACHE EDGE DETECTION!!.


>How-To-Repeat:

Attempt to build math/atlas port with clang 3.4 on 11.0-CURRENT i386.

>Fix:

The following patch fixes the problem for me.  The MM and NN operands are
32-bit wide memory locations on stack on i386 but the patch should work
because, subq is #defined to be subl earlier in ths file for i386.

This patch is untested on amd64, but I think it should also do the right
thing because MM and NN are CPU registers.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list