From truckman@FreeBSD.org  Mon Feb 24 05:53:03 2014
Return-Path: <truckman@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	(using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by hub.freebsd.org (Postfix) with ESMTPS id D86B4671
	for <FreeBSD-gnats-submit@FreeBSD.org>; Mon, 24 Feb 2014 05:53:03 +0000 (UTC)
Received: from gw.catspoiler.org (gw.catspoiler.org [75.1.14.242])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx1.freebsd.org (Postfix) with ESMTPS id A52D61564
	for <FreeBSD-gnats-submit@FreeBSD.org>; Mon, 24 Feb 2014 05:53:03 +0000 (UTC)
Received: from mousie.catspoiler.org (mousie.catspoiler.org [192.168.101.2])
	by gw.catspoiler.org (8.13.3/8.13.3) with ESMTP id s1O5qvaX073400
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 23 Feb 2014 21:52:57 -0800 (PST)
	(envelope-from truckman@FreeBSD.org)
Received: from mousie.catspoiler.org (localhost.catspoiler.org [127.0.0.1])
	by mousie.catspoiler.org (8.14.7/8.14.7) with ESMTP id s1O5qvkG064408
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 23 Feb 2014 21:52:57 -0800 (PST)
	(envelope-from truckman@FreeBSD.org)
Received: (from dl@localhost)
	by mousie.catspoiler.org (8.14.7/8.14.7/Submit) id s1O5qvkN064407;
	Sun, 23 Feb 2014 21:52:57 -0800 (PST)
	(envelope-from truckman@FreeBSD.org)
Message-Id: <201402240552.s1O5qvkN064407@mousie.catspoiler.org>
Date: Sun, 23 Feb 2014 21:52:57 -0800 (PST)
From: Don Lewis <truckman@FreeBSD.org>
Reply-To: Don Lewis <truckman@FreeBSD.org>
To: FreeBSD-gnats-submit@FreeBSD.org
Cc:
Subject: [patch] math/atlas compile error with clang 3.4 on i386
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         186997
>Category:       ports
>Synopsis:       [patch] math/atlas compile error with clang 3.4 on i386
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bf
>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:  Wed Feb 26 05:40:00 UTC 2014
>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:
Responsible-Changed-From-To: freebsd-ports-bugs->bf 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Mon Feb 24 06:00:07 UTC 2014 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=186997 

From: Don Lewis <truckman@FreeBSD.org>
To: FreeBSD-gnats-submit@FreeBSD.org
Cc: freebsd-ports-bugs@FreeBSD.org
Subject: Re: ports/186997: [patch] math/atlas compile error with clang 3.4
 on i386
Date: Tue, 25 Feb 2014 21:39:33 -0800 (PST)

 Not sure what happened to the patch.  Here it is again:
 
 --- tune/blas/gemm/CASES/ATL_dmm4x1x90_x87.c.orig       2011-05-14 10:34:10.000000000 -0700
 +++ tune/blas/gemm/CASES/ATL_dmm4x1x90_x87.c    2014-02-23 12:58:36.000000000 -0800
 @@ -1581,7 +1581,7 @@
          lea     0(pAE,lda,4), pAE
     #endif
  #endif
 -        sub     $1, MM
 +        subq    $1, MM
          jnz     MLOOP
  
          sub     incAn, pA0
 @@ -1596,7 +1596,7 @@
          add     ldb, pB0
          prefetcht0      256(pB0,ldb,2)
          prefetcht0      320(pB0,ldb,2)
 -        sub     $1, NN
 +        subq    $1, NN
          jnz     NLOOP
  
  DONE:
 
>Unformatted:
