Subject: pkg/35179: patches to pkgsrc/editors/nvi for gcc 4.1.x
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <ggm@apnic.net>
List: pkgsrc-bugs
Date: 12/04/2006 10:00:01
>Number: 35179
>Category: pkg
>Synopsis: patches to pkgsrc/editors/nvi for gcc 4.1.x
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Dec 04 10:00:01 +0000 2006
>Originator: George Michaelson
>Release: NetBSD 4.99.4
>Organization:
George Michaelson email: ggm@apnic.net
Senior Technical Officer, APNIC sip: ggm@voip.apnic.net
http://www.apnic.net phone: +61 7 3858 3100
>Environment:
System: NetBSD garlique.algebras.org 4.99.4 NetBSD 4.99.4 (GGM_ACPI) #0: Mon Nov 27 14:09:26 EST 2006 ggm@garlique.algebras.org:/data/Build/obj/usr/src/sys/arch/i386/compile/GGM_ACPI i386
Architecture: i386
Machine: i386
>Description:
nvi broke lvalue restrictions in gcc 4.1.x -these patches
have been ported from Gentoo, and permit it to compile.
>How-To-Repeat:
try to make pkgsrc/editors/nvi on a gcc 4.1.x system.
>Fix:
--- patches/patch-af.orig 2006-12-04 15:55:22.000000000 +1000
+++ patches/patch-af 2006-12-04 15:55:59.000000000 +1000
@@ -0,0 +1,74 @@
+--- ../common/mem.h.orig 2000-08-20 19:12:59.000000000 +1000
++++ ../common/mem.h 2006-12-03 15:21:22.000000000 +1000
+@@ -26,8 +26,9 @@
+ } \
+ }
+ #define BINC_GOTOW(sp, lp, llen, nlen) { \
+- CHAR_T *L__bp = lp; \
+- BINC_GOTO(sp, (char *)lp, llen, (nlen) * sizeof(CHAR_T)) \
++ char *L__lp = (char *)lp; \
++ BINC_GOTO(sp, L__lp, llen, (nlen) * sizeof(CHAR_T)) \
++ lp = (CHAR_T *) L__lp; \
+ }
+ #define BINC_RET(sp, lp, llen, nlen) { \
+ char *L__p = lp; \
+@@ -43,8 +44,9 @@
+ } \
+ }
+ #define BINC_RETW(sp, lp, llen, nlen) { \
+- CHAR_T *L__bp = lp; \
+- BINC_RET(sp, (char *)lp, llen, (nlen) * sizeof(CHAR_T)) \
++ char *L__lp = (char *)lp; \
++ BINC_RET(sp, L__lp, llen, (nlen) * sizeof(CHAR_T)) \
++ lp = (CHAR_T *) L__lp; \
+ }
+
+ /*
+@@ -66,8 +68,9 @@
+ } \
+ }
+ #define GET_SPACE_GOTOW(sp, bp, blen, nlen) { \
+- CHAR_T *L__bp = bp; \
+- GET_SPACE_GOTO(sp, (char *)bp, blen, (nlen) * sizeof(CHAR_T)) \
++ char *L__bp = (char *)bp; \
++ GET_SPACE_GOTO(sp, L__bp, blen, (nlen) * sizeof(CHAR_T)) \
++ bp = (CHAR_T *) L__bp; \
+ }
+ #define GET_SPACE_RET(sp, bp, blen, nlen) { \
+ WIN *L__wp = (sp) == NULL ? NULL : (sp)->wp; \
+@@ -83,8 +86,9 @@
+ } \
+ }
+ #define GET_SPACE_RETW(sp, bp, blen, nlen) { \
+- CHAR_T *L__bp = bp; \
+- GET_SPACE_RET(sp, (char *)bp, blen, (nlen) * sizeof(CHAR_T)) \
++ char *L__bp = (char *)bp; \
++ GET_SPACE_RET(sp, L__bp, blen, (nlen) * sizeof(CHAR_T)) \
++ bp = (CHAR_T *) L__bp; \
+ }
+
+ /*
+@@ -103,8 +107,9 @@
+ BINC_GOTO(sp, bp, blen, nlen); \
+ }
+ #define ADD_SPACE_GOTOW(sp, bp, blen, nlen) { \
+- CHAR_T *L__bp = bp; \
+- ADD_SPACE_GOTO(sp, (char *)bp, blen, (nlen) * sizeof(CHAR_T)) \
++ char *L__bp = (char *)bp; \
++ ADD_SPACE_GOTO(sp, L__bp, blen, (nlen) * sizeof(CHAR_T)) \
++ bp = (CHAR_T *) L__bp; \
+ }
+ #define ADD_SPACE_RET(sp, bp, blen, nlen) { \
+ WIN *L__wp = (sp) == NULL ? NULL : (sp)->wp; \
+@@ -118,8 +123,9 @@
+ BINC_RET(sp, bp, blen, nlen); \
+ }
+ #define ADD_SPACE_RETW(sp, bp, blen, nlen) { \
+- CHAR_T *L__bp = bp; \
+- ADD_SPACE_RET(sp, (char *)bp, blen, (nlen) * sizeof(CHAR_T)) \
++ char *L__bp = (char *)bp; \
++ ADD_SPACE_RET(sp, L__bp, blen, (nlen) * sizeof(CHAR_T)) \
++ bp = (CHAR_T *) L__bp; \
+ }
+
+ /* Free a GET_SPACE returned buffer. */
--- patches/patch-ag.orig 2006-12-04 15:55:26.000000000 +1000
+++ patches/patch-ag 2006-12-04 15:56:03.000000000 +1000
@@ -0,0 +1,32 @@
+--- ../cl/cl_funcs.c.orig 2001-06-26 01:19:05.000000000 +1000
++++ ../cl/cl_funcs.c 2006-12-03 15:21:22.000000000 +1000
+@@ -381,7 +381,7 @@
+
+ if (CLSP(discardp)) {
+ delwin(CLSP(discardp));
+- CLSP(discardp) = NULL;
++ discardp->cl_private = NULL;
+ }
+ }
+
+@@ -395,7 +395,7 @@
+
+ if (CLSP(tsp))
+ delwin(CLSP(tsp));
+- CLSP(tsp) = subwin(stdscr, tsp->rows, tsp->cols,
++ tsp->cl_private = subwin(stdscr, tsp->rows, tsp->cols,
+ tsp->roff, tsp->coff);
+ }
+
+@@ -716,9 +716,9 @@
+ if (CLSP(origp))
+ delwin(CLSP(origp));
+
+- CLSP(origp) = subwin(stdscr, origp->rows, origp->cols,
++ origp->cl_private = subwin(stdscr, origp->rows, origp->cols,
+ origp->roff, origp->coff);
+- CLSP(newp) = subwin(stdscr, newp->rows, newp->cols,
++ newp->cl_private = subwin(stdscr, newp->rows, newp->cols,
+ newp->roff, newp->coff);
+
+ /* origp is the original screen, giving up space to newp. */
--- patches/patch-ah.orig 2006-12-04 15:55:30.000000000 +1000
+++ patches/patch-ah 2006-12-04 15:56:06.000000000 +1000
@@ -0,0 +1,11 @@
+--- ../cl/cl_screen.c.orig 2001-06-26 01:19:06.000000000 +1000
++++ ../cl/cl_screen.c 2006-12-03 15:21:22.000000000 +1000
+@@ -56,7 +56,7 @@
+ if (F_ISSET(gp, G_SRESTART)) {
+ if (CLSP(sp)) {
+ delwin(CLSP(sp));
+- CLSP(sp) = NULL;
++ sp->cl_private = NULL;
+ }
+ if (cl_quit(gp))
+ return (1);
--- patches/patch-ai.orig 2006-12-04 15:55:32.000000000 +1000
+++ patches/patch-ai 2006-12-04 15:56:09.000000000 +1000
@@ -0,0 +1,21 @@
+--- ../common/db.c.orig 2001-08-19 07:52:00.000000000 +1000
++++ ../common/db.c 2006-12-03 15:21:22.000000000 +1000
+@@ -94,6 +94,7 @@
+ CHAR_T *wp;
+ size_t wlen;
+ size_t nlen;
++ char *c_lp;
+
+ /*
+ * The underlying recno stuff handles zero by returning NULL, but
+@@ -164,7 +165,9 @@
+ nlen = 1024;
+ retry:
+ /* data.size contains length in bytes */
+- BINC_GOTO(sp, (char *)ep->c_lp, ep->c_blen, nlen);
++ c_lp = (char *) ep->c_lp;
++ BINC_GOTO(sp, c_lp, ep->c_blen, nlen);
++ ep->c_lp = (CHAR_T *) c_lp;
+
+ /* Get the line from the underlying database. */
+ memset(&key, 0, sizeof(key));
--- patches/patch-aj.orig 2006-12-04 15:55:36.000000000 +1000
+++ patches/patch-aj 2006-12-04 15:56:13.000000000 +1000
@@ -0,0 +1,18 @@
+--- ../common/key.c.orig 2001-06-26 01:19:10.000000000 +1000
++++ ../common/key.c 2006-12-03 15:21:22.000000000 +1000
+@@ -829,11 +829,14 @@
+ {
+ WIN *wp;
+ size_t new_nelem, olen;
++ char *i_event;
+
+ wp = sp->wp;
+ new_nelem = wp->i_nelem + add;
+ olen = wp->i_nelem * sizeof(wp->i_event[0]);
+- BINC_RET(sp, (char *)wp->i_event, olen, new_nelem * sizeof(wp->i_event[0]));
++ i_event = (char *)wp->i_event;
++ BINC_RET(sp, i_event, olen, new_nelem * sizeof(wp->i_event[0]));
++ wp->i_event = (EVENT *) i_event;
+ wp->i_nelem = olen / sizeof(wp->i_event[0]);
+ return (0);
+ }
--- patches/patch-ak.orig 2006-12-04 15:55:39.000000000 +1000
+++ patches/patch-ak 2006-12-04 15:56:17.000000000 +1000
@@ -0,0 +1,14 @@
+--- ../vi/v_txt.c.orig 2001-07-27 03:15:53.000000000 +1000
++++ ../vi/v_txt.c 2006-12-03 15:21:22.000000000 +1000
+@@ -589,8 +589,10 @@
+
+ /* Check to see if the character fits into the replay buffers. */
+ if (LF_ISSET(TXT_RECORD)) {
+- BINC_GOTO(sp, (char *)vip->rep,
++ char *rep = vip->rep;
++ BINC_GOTO(sp, rep,
+ vip->rep_len, (rcol + 1) * sizeof(EVENT));
++ vip->rep = (EVENT *) rep;
+ vip->rep[rcol++] = *evp;
+ }
+
--- distinfo 16 Sep 2006 15:29:35 -0000 1.6
+++ distinfo 4 Dec 2006 07:18:29 -0000
@@ -8,3 +8,9 @@ SHA1 (patch-ab) = d5cb1cccb2799bb21822dc
SHA1 (patch-ac) = 239764397e64323edfba6fcf4ae99846cebbdbe1
SHA1 (patch-ad) = 3cdd8ea5ad6c9c4e6a2d1f77d0b28f80fae44fd0
SHA1 (patch-ae) = 28441e05bd1bbaa89a1df516decc583898eb1a23
+SHA1 (patch-af) = 989cbe967f79812dd48fe608db03be6a536a417e
+SHA1 (patch-ag) = 4216a8fdce5e0409df1a3075bc5fe6e91bc91009
+SHA1 (patch-ah) = 4cc18fed5f7f3cc9ce812e5a842ac812b1fdbe6a
+SHA1 (patch-ai) = 796a11d4dc25bf1726fc4411fcdc6918e7449327
+SHA1 (patch-aj) = 9f4f94e6176dce84a8650c501c38d761b07f3291
+SHA1 (patch-ak) = 05d1131d737604b77bef709c34959176b1880dcd
>Unformatted: