Bug 188139 - graphics/grx: Fix build on i386 with clang
Summary: graphics/grx: Fix build on i386 with clang
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Martin Wilke
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-03-31 19:40 UTC by tkato432
Modified: 2014-05-18 06:00 UTC (History)
0 users

See Also:


Attachments
file.diff (8.84 KB, patch)
2014-03-31 19:40 UTC, tkato432
no flags Details | Diff
graphics_grx.diff (8.84 KB, patch)
2014-04-17 18:51 UTC, tkato432
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description tkato432 2014-03-31 19:40:01 UTC
- Fix build on i386 with clang

New file:
files/patch-src__fdrivers__driver16.h
files/patch-src__include__arith.h
files/patch-src__include__memcopy.h
files/patch-src__include__memfill.h
files/patch-src__include__memmode.h
files/patch-src__include__mempeek.h
files/patch-src__utils__shiftscl.c
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2014-03-31 19:40:06 UTC
Responsible Changed
From-To: freebsd-ports-bugs->miwi

miwi@ wants this submitter's PRs (via the GNATS Auto Assign Tool)
Comment 2 tkato432 2014-04-17 18:51:03 UTC
Remake of the patch against current tree.
Comment 3 Martin Wilke freebsd_committer freebsd_triage 2014-05-18 05:59:13 UTC
State Changed
From-To: open->closed

Committed. Thanks!
Comment 4 dfilter service freebsd_committer freebsd_triage 2014-05-18 05:59:21 UTC
Author: miwi
Date: Sun May 18 04:59:13 2014
New Revision: 354392
URL: http://svnweb.freebsd.org/changeset/ports/354392
QAT: https://qat.redports.org/buildarchive/r354392/

Log:
  - Fix build on i386
  - Stage support
  
  PR:		188139
  Submitted by:	Ports Fury

Added:
  head/graphics/grx/files/patch-src__fdrivers__driver16.h   (contents, props changed)
  head/graphics/grx/files/patch-src__include__arith.h   (contents, props changed)
  head/graphics/grx/files/patch-src__include__memcopy.h   (contents, props changed)
  head/graphics/grx/files/patch-src__include__memfill.h   (contents, props changed)
  head/graphics/grx/files/patch-src__include__memmode.h   (contents, props changed)
  head/graphics/grx/files/patch-src__include__mempeek.h   (contents, props changed)
  head/graphics/grx/files/patch-src__utils__shiftscl.c   (contents, props changed)
Modified:
  head/graphics/grx/Makefile

Modified: head/graphics/grx/Makefile
==============================================================================
--- head/graphics/grx/Makefile	Sun May 18 04:57:08 2014	(r354391)
+++ head/graphics/grx/Makefile	Sun May 18 04:59:13 2014	(r354392)
@@ -9,20 +9,13 @@ MASTER_SITES=	http://grx.gnu.de/download
 DISTNAME=	${PORTNAME}${PORTVERSION:S/.//g}
 
 MAINTAINER=	ports@FreeBSD.org
-COMMENT=	A 2D graphics library
+COMMENT=	2D graphics library
 
 LICENSE=	LGPL20 MIT
 LICENSE_COMB=	multi
 
-LIB_DEPENDS=	pthread-stubs:${PORTSDIR}/devel/libpthread-stubs
-
-OPTIONS_DEFINE=	BGI BMP JPEG PNG PRINT TIFF ZLIB
-OPTIONS_DEFAULT=	ZLIB BGI BMP PNG PRINT
-BGI_DESC=	Enable BGI support
-BMP_DESC=	Enable BMP support
-
-USE_XORG=	x11 xau xcb xdmcp
 USES=		gmake
+USE_XORG=	x11 xau xcb xdmcp
 HAS_CONFIGURE=	yes
 CONFIGURE_ARGS=	--prefix=${PREFIX} --with-fontpath=${DATADIR}/fonts \
 		--with-x11-base=${LOCALBASE}
@@ -37,59 +30,29 @@ PLIST_SUB=	VERSION="${PORTVERSION}"
 
 INFO=		grx
 
-.include <bsd.port.options.mk>
-
-.if ${PORT_OPTIONS:MBGI}
-CONFIGURE_ARGS+=--enable-bgi
-PLIST_SUB+=	BGI=""
-.else
-CONFIGURE_ARGS+=--disable-bgi
-PLIST_SUB+=	BGI="@comment "
-.endif
-
-.if ${PORT_OPTIONS:MBMP}
-CONFIGURE_ARGS+=--enable-bmp
-.else
-CONFIGURE_ARGS+=--disable-bmp
-.endif
-
-.if ${PORT_OPTIONS:MJPEG}
-LIB_DEPENDS+=	jpeg:${PORTSDIR}/graphics/jpeg
-CONFIGURE_ARGS+=--enable-jpeg
-.else
-CONFIGURE_ARGS+=--disable-jpeg
-.endif
+OPTIONS_DEFINE=		BGI BMP JPEG PNG PRINT TIFF ZLIB
+OPTIONS_DEFAULT=	BGI BMP PNG PRINT ZLIB
+OPTIONS_SUB=		yes
+
+BGI_DESC=		BGI image format support
+BGI_CONFIGURE_ENABLE=	bgi
+BMP_DESC=		BMP image format support
+BMP_CONFIGURE_ENABLE=	bmp
+JPEG_LIB_DEPENDS+=	libjpeg.so:${PORTSDIR}/graphics/jpeg
+JPEG_CONFIGURE_ENABLE=	jpeg
+PNG_LIB_DEPENDS=	libpng15.so:${PORTSDIR}/graphics/png
+PNG_CONFIGURE_ENABLE=	png
+PRINT_CONFIGURE_ENABLE=	print
+TIFF_LIB_DEPENDS=	libtiff.so:${PORTSDIR}/graphics/tiff
+TIFF_CONFIGURE_ENABLE=	tiff
+ZLIB_CONFIGURE_ENABLE=	zlib
 
-.if ${PORT_OPTIONS:MPNG}
-LIB_DEPENDS+=	png15:${PORTSDIR}/graphics/png
-CONFIGURE_ARGS+=--enable-png
-.else
-CONFIGURE_ARGS+=--disable-png
-.endif
-
-.if ${PORT_OPTIONS:MPRINT}
-CONFIGURE_ARGS+=--enable-print
-PLIST_SUB+=	PRINT=""
-.else
-CONFIGURE_ARGS+=--disable-print
-PLIST_SUB+=	PRINT="@comment "
-.endif
-
-.if ${PORT_OPTIONS:MTIFF}
-LIB_DEPENDS+=	tiff:${PORTSDIR}/graphics/tiff
-CONFIGURE_ARGS+=--enable-tiff
-.else
-CONFIGURE_ARGS+=--disable-tiff
-.endif
+.include <bsd.port.options.mk>
 
-.if ${PORT_OPTIONS:MZLIB} || !empty(PORT_OPTIONS:MPNG)
-CONFIGURE_ARGS+=--enable-zlib
-.else
-CONFIGURE_ARGS+=--disable-zlib
+.if ${PORT_OPTIONS:MPNG} && empty(PORT_OPTIONS:MZLIB)
+IGNORE=		PNG support requires ZLIB support
 .endif
 
-.include <bsd.port.pre.mk>
-
 .if ${ARCH} == "amd64"
 CONFIGURE_ARGS+=--enable-x86_64
 .endif
@@ -101,17 +64,18 @@ BROKEN=		Does not compile on ia64, power
 post-patch:
 	@${GREP} -ERl '<(malloc|alloca)\.h>' ${WRKSRC} | ${XARGS} \
 		${REINPLACE_CMD} -Ee 's|<(malloc\|alloca)\.h>|<stdlib.h>|'
-	@${REINPLACE_CMD} -Ee \
-		's|-m32|| ; \
+	@${REINPLACE_CMD} -e \
+		's|^\(CC[[:blank:]]*=\).*|\1 ${CC}| ; \
+		 s|^\(STRIP[[:blank:]]*=\).*|\1 ${TRUE}| ; \
+		 s|^\(CCOPT[[:blank:]]*=\).*|\1 ${CPPFLAGS} ${CFLAGS}| ; \
+		 s|^\(LDOPT[[:blank:]]*=\).*|\1 ${LDFLAGS}| ; \
 		 s|-m64|| ; \
-		 s|^(CC[[:blank:]]*=).*|\1 ${CC}| ; \
-		 s|^(CCOPT =)|\1 ${CPPFLAGS} ${CFLAGS}| ; \
-		 s|^(LDOPT =)|\1 ${LDFLAGS}| ; \
-		 s|lib64|lib|' \
+		 s|-m32||' \
 		${WRKSRC}/makedefs.grx
-	@${REINPLACE_CMD} -e \
-		's|gcc|${CC}| ; \
-		 s|lib64|lib|' \
-		${WRKSRC}/src/makefile.[lx]*
 
-.include <bsd.port.post.mk>
+post-install:
+.for i in bin2c fnt2c xmodetest
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${i}
+.endfor
+
+.include <bsd.port.mk>

Added: head/graphics/grx/files/patch-src__fdrivers__driver16.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/grx/files/patch-src__fdrivers__driver16.h	Sun May 18 04:59:13 2014	(r354392)
@@ -0,0 +1,36 @@
+--- src/fdrivers/driver16.h.orig
++++ src/fdrivers/driver16.h
+@@ -46,7 +46,7 @@
+ # define repfill16_and   repfill_w_f_and
+ # define repfill16       repfill_w_f
+ # define SETFARSEL(sel)  setup_far_selector(sel)
+-# if defined(__GNUC__) && defined(__i386__)
++# if defined(__GNUC__) && defined(__i386__) && !defined(__clang__)
+ #   define ASM_386_SEL   I386_GCC_FAR_SELECTOR
+ # endif /* GCC i386 */
+ #else /* defined FAR_ACCESS */
+@@ -180,7 +180,7 @@
+     GRX_LEAVE();
+ }
+ 
+-#if defined(__GNUC__) && defined(__i386__)
++#if defined(__GNUC__) && defined(__i386__) && !defined(__clang__)
+ static void drawline(int x,int y,int dx,int dy,GrColor color)
+ {
+     struct {
+@@ -196,6 +196,7 @@
+ 
+ #   ifdef __GNUC__
+ #   ifdef __i386__
++#   ifndef __clang__
+ #   define ASM_LINE1(OPC) asm volatile(""              \
+ 	"   .align 2,0x90                      \n"     \
+ 	"0: "#OPC"w %6,"ASM_386_SEL"(%0)       \n"     \
+@@ -236,6 +237,7 @@
+ 	)
+ #   endif
+ #   endif
++#   endif
+ 
+     if(dy < 0) {
+ 	y -= (dy = (-dy));

Added: head/graphics/grx/files/patch-src__include__arith.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/grx/files/patch-src__include__arith.h	Sun May 18 04:59:13 2014	(r354392)
@@ -0,0 +1,11 @@
+--- src/include/arith.h.orig
++++ src/include/arith.h
+@@ -22,7 +22,7 @@
+ #ifndef __ARITH_H_INCLUDED__
+ #define __ARITH_H_INCLUDED__
+ 
+-#ifdef __GNUC__
++#if defined(__GNUC__) && !defined(__clang__)
+ #include "gcc/arith.h"
+ #elif defined(__TURBOC__)
+ #include "bcc/arith.h"

Added: head/graphics/grx/files/patch-src__include__memcopy.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/grx/files/patch-src__include__memcopy.h	Sun May 18 04:59:13 2014	(r354392)
@@ -0,0 +1,11 @@
+--- src/include/memcopy.h.orig
++++ src/include/memcopy.h
+@@ -44,7 +44,7 @@
+ #define CPSIZE_h     sizeof(GR_int64)
+ #endif
+ 
+-#ifdef __GNUC__
++#if defined(__GNUC__) && !defined(__clang__)
+ #  include "gcc/memcopy.h"
+ #elif defined(__TURBOC__)
+ #  include "bcc/memcopy.h"

Added: head/graphics/grx/files/patch-src__include__memfill.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/grx/files/patch-src__include__memfill.h	Sun May 18 04:59:13 2014	(r354392)
@@ -0,0 +1,11 @@
+--- src/include/memfill.h.orig
++++ src/include/memfill.h
+@@ -32,7 +32,7 @@
+ #include "arith.h"
+ #endif
+ 
+-#ifdef __GNUC__
++#if defined(__GNUC__) && !defined(__clang__)
+ #  include "gcc/memfill.h"
+ #elif defined(__TURBOC__)
+ #  include "bcc/memfill.h"

Added: head/graphics/grx/files/patch-src__include__memmode.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/grx/files/patch-src__include__memmode.h	Sun May 18 04:59:13 2014	(r354392)
@@ -0,0 +1,11 @@
+--- src/include/memmode.h.orig
++++ src/include/memmode.h
+@@ -19,7 +19,7 @@
+ #ifndef  __MEMMODE_H_INCLUDED__
+ #define  __MEMMODE_H_INCLUDED__
+ 
+-#ifdef __GNUC__
++#if defined(__GNUC__) && !defined(__clang__)
+ #include "gcc/memmode.h"
+ #elif defined(__TURBOC__)
+ #include "bcc/memmode.h"

Added: head/graphics/grx/files/patch-src__include__mempeek.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/grx/files/patch-src__include__mempeek.h	Sun May 18 04:59:13 2014	(r354392)
@@ -0,0 +1,11 @@
+--- src/include/mempeek.h.orig
++++ src/include/mempeek.h
+@@ -29,7 +29,7 @@
+ #include "memmode.h"
+ #endif
+ 
+-#ifdef __GNUC__
++#if defined(__GNUC__) && !defined(__clang__)
+ #include "gcc/mempeek.h"
+ #elif defined(__TURBOC__)
+ #include "bcc/mempeek.h"

Added: head/graphics/grx/files/patch-src__utils__shiftscl.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/graphics/grx/files/patch-src__utils__shiftscl.c	Sun May 18 04:59:13 2014	(r354392)
@@ -0,0 +1,20 @@
+--- src/utils/shiftscl.c.orig
++++ src/utils/shiftscl.c
+@@ -34,7 +34,7 @@
+     for (plane = 0; plane < planes; ++plane) {
+       GR_int8u far *s = *(src++) + ws;
+       GR_int8u far *d = *(dst++) + ws;
+-#     if defined(__GNUC__) && defined(__i386__)
++#     if defined(__GNUC__) && defined(__i386__) && !defined(__clang__)
+ 	int _dummy_, w = ws;
+ 	/* sad but true: the x86 bytesex forces this inefficient code :( */
+ 	asm volatile ("\n"
+@@ -91,7 +91,7 @@
+     for (plane = 0; plane < planes; ++plane) {
+       GR_int8u far *s = *(src++);
+       GR_int8u far *d = *(dst++);
+-#     if defined(__GNUC__) && defined(__i386__)
++#     if defined(__GNUC__) && defined(__i386__) && !defined(__clang__)
+ 	int _dummy_, w = ws;
+ 	asm volatile ("\n"
+ 	  "   movb    (%0),%%ch    \n"
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"