Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Feb 2014 21:52:57 -0800 (PST)
From:      Don Lewis <truckman@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/186997: [patch] math/atlas compile error with clang 3.4 on i386
Message-ID:  <201402240552.s1O5qvkN064407@mousie.catspoiler.org>
Resent-Message-ID: <201402240600.s1O600sg008535@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402240552.s1O5qvkN064407>