Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Apr 2006 16:17:05 GMT
From:      Gabor Kovesdan <gkovesdan@t-hosting.hu>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/96013: [maintainer update] textproc/gsed: fix build on 4.X
Message-ID:  <200604181617.k3IGH5Qm060092@www.freebsd.org>
Resent-Message-ID: <200604181620.k3IGKGgk061845@freefall.freebsd.org>

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

>Number:         96013
>Category:       ports
>Synopsis:       [maintainer update] textproc/gsed: fix build on 4.X
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Apr 18 16:20:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Gabor Kovesdan
>Release:        
>Organization:
n/a
>Environment:
>Description:
The build error is caused by a 'bool' datatype introduced in gsed 4.1.5.
GCC 2.95 is pre-C99 and doesn't handle the 'bool' datatype properly.
The attached patch fixes the problem on FreeBSD 4.x

Patch by: Rainer Alves <rainer.alves@gmail.com>
>How-To-Repeat:

>Fix:
diff -ruN textproc/gsed.orig/Makefile textproc/gsed/Makefile
--- textproc/gsed.orig/Makefile	Sat Apr 15 20:41:25 2006
+++ textproc/gsed/Makefile	Sat Apr 15 21:25:47 2006
@@ -32,6 +32,14 @@
 PORTDOCS=	AUTHORS BUGS COPYING COPYING.DOC NEWS README THANKS
 DOCSDIR=	${PREFIX}/share/doc/${PKGBASE}
 
+.include <bsd.port.pre.mk>
+
+# Required for gcc 2.95 since it is pre-C99
+# and doesn't handle the 'bool' datatype properly.
+.if ${OSVERSION} < 500000
+EXTRA_PATCHES=	${FILESDIR}/extrapatch-lib-regexec.c
+.endif
+
 post-patch:
 	@${REINPLACE_CMD} -e 's,^\* sed:,* CNU sed:,' \
 		${WRKSRC}/doc/config.texi
@@ -59,4 +67,4 @@
 test:
 	@cd ${WRKSRC}/testsuite; ${MAKE} check
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff -ruN textproc/gsed.orig/files/extrapatch-lib-regexec.c textproc/gsed/files/extrapatch-lib-regexec.c
--- textproc/gsed.orig/files/extrapatch-lib-regexec.c	Wed Dec 31 21:00:00 1969
+++ textproc/gsed/files/extrapatch-lib-regexec.c	Sat Apr 15 21:19:56 2006
@@ -0,0 +1,43 @@
+#
+# Required for gcc 2.95 since it is pre-C99
+# and doesn't handle the 'bool' datatype properly.
+#
+--- lib/regexec.c.orig	Sat Apr 15 20:53:36 2006
++++ lib/regexec.c	Sat Apr 15 21:17:03 2006
+@@ -3296,8 +3296,7 @@
+   reg_errcode_t err;
+   int i, j, ch, need_word_trtable = 0;
+   bitset_word_t elem, mask;
+-  bool dests_node_malloced = false;
+-  bool dest_states_malloced = false;
++  int dests_node_malloced = 0, dest_states_malloced = 0;
+   int ndests; /* Number of the destination states from `state'.  */
+   re_dfastate_t **trtable;
+   re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl;
+@@ -3322,7 +3321,7 @@
+       dests_alloc = re_malloc (struct dests_alloc, 1);
+       if (BE (dests_alloc == NULL, 0))
+ 	return 0;
+-      dests_node_malloced = true;
++      dests_node_malloced = 1;
+     }
+   dests_node = dests_alloc->dests_node;
+   dests_ch = dests_alloc->dests_ch;
+@@ -3371,7 +3370,7 @@
+ 	    free (dests_alloc);
+ 	  return 0;
+ 	}
+-      dest_states_malloced = true;
++      dest_states_malloced = 1;
+     }
+   dest_states_word = dest_states + ndests;
+   dest_states_nl = dest_states_word + ndests;
+@@ -3576,7 +3575,7 @@
+ 	{
+ 	  if (constraint & NEXT_NEWLINE_CONSTRAINT)
+ 	    {
+-	      bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR);
++	      int accepts_newline = bitset_contain (accepts, NEWLINE_CHAR);
+ 	      bitset_empty (accepts);
+ 	      if (accepts_newline)
+ 		bitset_set (accepts, NEWLINE_CHAR);
>Release-Note:
>Audit-Trail:
>Unformatted:



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