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>