From jbeich@tormail.net  Thu Dec 22 00:10:20 2011
Return-Path: <jbeich@tormail.net>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 249931065670
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 22 Dec 2011 00:10:20 +0000 (UTC)
	(envelope-from jbeich@tormail.net)
Received: from server2.hudsonvalleyhost.com (server2.hudsonvalleyhost.com [66.7.195.77])
	by mx1.freebsd.org (Postfix) with ESMTP id 5ED9E8FC17
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 22 Dec 2011 00:10:18 +0000 (UTC)
Received: from [188.72.214.44] (port=49489 helo=internal.tormail.net)
	by server2.hudsonvalleyhost.com with esmtpsa (TLSv1:RC4-SHA:128)
	(Exim 4.69)
	(envelope-from <jbeich@tormail.net>)
	id 1RdWEf-001ace-BK
	for FreeBSD-gnats-submit@freebsd.org; Wed, 21 Dec 2011 19:10:18 -0500
Received: from jbeich by internal.tormail.net with local (Exim 4.63)
	(envelope-from <jbeich@tormail.net>)
	id 1RdWEL-000Cgb-Gl
	for FreeBSD-gnats-submit@freebsd.org; Thu, 22 Dec 2011 00:09:57 +0000
Message-Id: <1RdWEL-000Cgb-Gl@internal.tormail.net>
Date: Thu, 22 Dec 2011 00:58:39 +0300
From: Jan Beich <jbeich@tormail.net>
To: FreeBSD-gnats-submit@freebsd.org
Subject: [patch] x11/babl: unbreak SSE build with clang 

>Number:         163518
>Category:       ports
>Synopsis:       [patch] x11/babl: unbreak SSE build with clang
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    gnome
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 22 00:20:05 UTC 2011
>Closed-Date:    Fri Mar 16 03:12:58 UTC 2012
>Last-Modified:  Fri Mar 16 03:20:01 UTC 2012
>Originator:     Jan Beich
>Release:        FreeBSD 10.0-CURRENT amd64
>Organization:
>Environment:
WITH_SIMD=
>Description:
- unbreak sse detection on amd64
- don't use __builtin* functions directly
>How-To-Repeat:
$ make CC=clang
  gmake[2]: Entering directory `/usr/ports/x11/babl/work/babl-0.1.6/extensions'
  CC     sse_fixups_la-sse-fixups.lo
sse-fixups.c:96:16: error: use of unknown builtin '__builtin_ia32_movhlps'
           v = g4float_movhl (v, v);
               ^
sse-fixups.c:46:29: note: expanded from:
#define g4float_movhl(a,b)  __builtin_ia32_movhlps(a, b)
                            ^
sse-fixups.c:96:14: error: assigning to 'g4float' from incompatible type 'int';
           v = g4float_movhl (v, v);
             ^ ~~~~~~~~~~~~~~~~~~~~
sse-fixups.c:154:14: error: assigning to 'g4float' from incompatible type 'int';
           v = g4float_movhl (v, v);
             ^ ~~~~~~~~~~~~~~~~~~~~
3 errors generated.
gmake[2]: *** [sse_fixups_la-sse-fixups.lo] Error 1
>Fix:
--- clang.diff begins here ---
Index: x11/babl/Makefile
===================================================================
RCS file: /a/.csup/ports/x11/babl/Makefile,v
retrieving revision 1.11
diff -u -p -r1.11 Makefile
--- x11/babl/Makefile	22 Nov 2011 08:03:18 -0000	1.11
+++ x11/babl/Makefile	21 Dec 2011 21:54:57 -0000
@@ -38,4 +38,7 @@ CONFIGURE_ARGS+=--disable-mmx \
 		--disable-altivec
 .endif
 
+post-patch:	.SILENT
+	${REINPLACE_CMD} -i.64 -e 's|x86_64|amd64|g' ${WRKSRC}/configure
+
 .include <bsd.port.post.mk>
Index: x11/babl/files/patch-sse-fixups.c
===================================================================
RCS file: x11/babl/files/patch-sse-fixups.c
diff -N x11/babl/files/patch-sse-fixups.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/babl/files/patch-sse-fixups.c	21 Dec 2011 21:51:49 -0000
@@ -0,0 +1,28 @@
+--- extensions/sse-fixups.c~
++++ extensions/sse-fixups.c
+@@ -23,6 +23,8 @@
+ 
+ #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(USE_SSE) && defined(USE_MMX)
+ 
++#include <xmmintrin.h>
++
+ #include <stdint.h>
+ #include <stdlib.h>
+ 
+@@ -40,11 +42,11 @@ typedef int   g2int   __attribute__ ((ve
+ #define g4float_zero      g4float_all(0.0)
+ #define g4float_ff        g4float_all(255.0)
+ 
+-#define g4float_max(a,b)    __builtin_ia32_maxps(a, b)
+-#define g4float_min(a,b)    __builtin_ia32_minps(a, b)
+-#define g4float_cvt2pi(a)   __builtin_ia32_cvtps2pi(a)
+-#define g4float_movhl(a,b)  __builtin_ia32_movhlps(a, b)
+-#define g4float_emms        __builtin_ia32_emms
++#define g4float_max(a,b)    _mm_max_ps(a, b)
++#define g4float_min(a,b)    _mm_min_ps(a, b)
++#define g4float_cvt2pi(a)   _mm_cvtps_pi32(a)
++#define g4float_movhl(a,b)  _mm_movehl_ps(a, b)
++#define g4float_emms        _mm_empty
+ 
+ 
+ static INLINE long
--- clang.diff ends here ---
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->gnome 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Thu Dec 22 00:20:47 UTC 2011 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=163518 
State-Changed-From-To: open->closed 
State-Changed-By: mezz 
State-Changed-When: Fri Mar 16 03:12:45 UTC 2012 
State-Changed-Why:  
Committed, thanks! 

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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/163518: commit references a PR
Date: Fri, 16 Mar 2012 03:12:44 +0000 (UTC)

 mezz        2012-03-16 03:12:33 UTC
 
   FreeBSD ports repository
 
   Modified files:
     x11/babl             Makefile 
   Added files:
     x11/babl/files       patch-sse-fixups.c 
   Log:
   Fix the build with clang.
   
   PR:             ports/163518
   Submitted by:   Jan Beich <jbeich@tormail.net>
   Feature safe:   yes
   
   Revision  Changes    Path
   1.12      +4 -0      ports/x11/babl/Makefile
   1.1       +28 -0     ports/x11/babl/files/patch-sse-fixups.c (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
>Unformatted:
