pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkgsrc: Modernize this so that it builds again (after SSP), and



details:   https://anonhg.NetBSD.org/pkgsrc/rev/52ab172d66c7
branches:  trunk
changeset: 306542:52ab172d66c7
user:      he <he%pkgsrc.org@localhost>
date:      Wed Apr 18 08:42:16 2018 +0000
description:
Modernize this so that it builds again (after SSP), and
do the context-shifting in a non-MI manner so it may work
on other ports than i386.
Bump PKGREVISION.

diffstat:

 lang/sr/Makefile                   |    4 +-
 lang/sr/distinfo                   |    6 +-
 lang/sr/patches/patch-au           |  117 -------------------------------------
 lang/sr/patches/patch-bl           |   16 -----
 lang/sr/patches/patch-csw_netbsd.c |  106 +++++++++++++++++++++++++++++++++
 lang/sr/patches/patch-gen.h        |   35 +++++++++++
 6 files changed, 146 insertions(+), 138 deletions(-)

diffs (truncated from 333 to 300 lines):

diff -r 4fe98a7b3957 -r 52ab172d66c7 lang/sr/Makefile
--- a/lang/sr/Makefile  Wed Apr 18 08:26:42 2018 +0000
+++ b/lang/sr/Makefile  Wed Apr 18 08:42:16 2018 +0000
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.24 2012/10/21 20:56:54 cheusov Exp $
+# $NetBSD: Makefile,v 1.25 2018/04/18 08:42:16 he Exp $
 #
 
 DISTNAME=              sr233
 PKGNAME=               sr-2.3.3
-PKGREVISION=           9
+PKGREVISION=           10
 CATEGORIES=            lang parallel
 MASTER_SITES=          ftp://ftp.cs.arizona.edu/sr/
 EXTRACT_SUFX=          .tar.Z
diff -r 4fe98a7b3957 -r 52ab172d66c7 lang/sr/distinfo
--- a/lang/sr/distinfo  Wed Apr 18 08:26:42 2018 +0000
+++ b/lang/sr/distinfo  Wed Apr 18 08:42:16 2018 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.22 2015/11/03 22:50:45 agc Exp $
+$NetBSD: distinfo,v 1.23 2018/04/18 08:42:16 he Exp $
 
 SHA1 (sr233.tar.Z) = 0354987527ed1e84c32d3b1fc6bacb65d647f337
 RMD160 (sr233.tar.Z) = 58c90c06abede7a15ca8a68f53b6fdfa575c79df
@@ -10,7 +10,6 @@
 SHA1 (patch-ar) = 9a331cdb90959d0cc7475d2fc203d2c302d4bf5c
 SHA1 (patch-as) = db45b9cbc7adf8fccc207e91041a544e427c7a2a
 SHA1 (patch-at) = 989ea8ecf79a9f5d0567c53a2c9580b4ecc634c9
-SHA1 (patch-au) = 701c53883b3661c578dc5b192a9779e7fdc503f5
 SHA1 (patch-av) = 1beabb719e6f4a1d1872bd66c73d0d1169686770
 SHA1 (patch-aw) = 1bf4f69379229c7493b057a0445959b16cc36ca7
 SHA1 (patch-ax) = a834a65f2574be388bb420fdf883a9ac74f00ec9
@@ -27,8 +26,9 @@
 SHA1 (patch-bi) = ad6706295ff164fe6df257d325a06f9b157175d1
 SHA1 (patch-bj) = cd46d268fc173fe02efa8338ebf3f664ff2e5b94
 SHA1 (patch-bk) = 7ec4207ea173377fd6de9dc6272ab20e48ef0780
-SHA1 (patch-bl) = 7386a25df3223892fb841af3fa13eee3a17505b3
 SHA1 (patch-bm) = 52ebd86cda2d354bf5d580c0f2cf25f80350cd2c
 SHA1 (patch-bn) = fb8ebeb57956c094aee652c183a2fe1abbc45bb1
 SHA1 (patch-bo) = 55dcc14458fcb817c605eb7b8c4240e87e1cd25a
 SHA1 (patch-bp) = e0b553628fc2711ba2abe2b01999a0f84a5fbb7b
+SHA1 (patch-csw_netbsd.c) = e6a1dfe43a2c64317287cc4676d264b195fc29b5
+SHA1 (patch-gen.h) = cf024274a1c7866e103bcaf3355f5565a1612e2d
diff -r 4fe98a7b3957 -r 52ab172d66c7 lang/sr/patches/patch-au
--- a/lang/sr/patches/patch-au  Wed Apr 18 08:26:42 2018 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-$NetBSD: patch-au,v 1.3 2005/03/02 13:21:34 is Exp $
-
---- csw/netbsd.c.orig  2005-03-02 13:00:06.000000000 +0000
-+++ csw/netbsd.c
-@@ -0,0 +1,112 @@
-+/*
-+ *  netbsd.c -- context switch code for NetBSD 2.
-+ *
-+ *  Some Makefile changes are needed to use this code.
-+ */
-+
-+#include <ucontext.h>
-+
-+void sr_stk_underflow(void);
-+void sr_stk_corrupted(void);
-+
-+static void startup(void (*)(void), unsigned long, unsigned long, unsigned long, unsigned long);
-+
-+#ifdef __i386__
-+void pthread__i386_init(void);
-+
-+#define _setcontext_u(uc)     (*_md_setcontext_u)(uc)
-+#define _swapcontext_u(oc,nc) (*_md_swapcontext_u)(oc,nc)
-+
-+static void sr_setcontext_u(ucontext_t *);
-+static void sr_swapcontext_u(ucontext_t *, ucontext_t *);
-+
-+void (*_md_getcontext_u) (ucontext_t *);
-+void (*_md_setcontext_u) (ucontext_t *)                       = sr_setcontext_u;
-+void (*_md_swapcontext_u)(ucontext_t *, ucontext_t *) = sr_swapcontext_u;
-+
-+static void
-+sr_setcontext_u(ucontext_t *uc) {
-+      pthread__i386_init();
-+      _setcontext_u(uc);
-+}
-+
-+static void
-+sr_swapcontext_u(ucontext_t *oldc, ucontext_t *newc) {
-+      pthread__i386_init();
-+      _swapcontext_u(oldc, newc);
-+}
-+#endif
-+
-+
-+/*
-+ *  sr_build_context (func, buf, bufsize, arg1, arg2, arg3, arg4)
-+ *
-+ *  Build a context that will call func(arg1,arg2,arg3,arg4) when activated
-+ *  and will catch an underflow error if func returns.  We use an intermediary
-+ *  in order to catch that return.
-+ */
-+void
-+sr_build_context (func, buf, bufsize, arg1, arg2, arg3, arg4)
-+void (*func)();
-+char *buf;
-+int bufsize;
-+unsigned long arg1, arg2, arg3, arg4;
-+{
-+    ucontext_t *uc = (ucontext_t *) buf;      /* put header at front of buf */
-+
-+    if (0 != getcontext(uc)) {                        /* initialize context */
-+      sr_stk_corrupted();
-+    }
-+
-+    uc->uc_stack.ss_sp = buf + sizeof (ucontext_t);
-+    uc->uc_stack.ss_size = bufsize - sizeof (ucontext_t);
-+
-+    makecontext (uc, startup, 5, func, arg1, arg2, arg3, arg4);
-+    uc->uc_stack.ss_flags = 0;
-+}
-+
-+/*
-+ *  startup (func, a,b,c,d) -- intermediary for startup and underflow detection.
-+ */
-+static void
-+startup (func, arg1, arg2, arg3, arg4)
-+void (*func)();
-+unsigned long arg1, arg2, arg3, arg4;
-+{
-+    (*func) (arg1, arg2, arg3, arg4);
-+    sr_stk_underflow();
-+}
-+
-+
-+
-+/*
-+ *  sr_chg_context (newctx, oldctx) -- change contexts.
-+ */
-+void
-+sr_chg_context (new, old)
-+char *new, *old;
-+{
-+    ucontext_t *oldu, *newu;
-+    newu = (ucontext_t *)new;
-+
-+    if (old) {
-+      oldu = (ucontext_t *)old;
-+      _swapcontext_u(oldu, newu);
-+    } else {
-+      _setcontext_u(newu);
-+    }
-+}
-+
-+
-+
-+/*
-+ *  sr_check_stk (stk) -- check for stack overflow.
-+ *
-+ *  We have no idea of how to do that, so we do nothing.
-+ */
-+void
-+sr_check_stk(stk)
-+char *stk;
-+{
-+    /* nothing */
-+}
diff -r 4fe98a7b3957 -r 52ab172d66c7 lang/sr/patches/patch-bl
--- a/lang/sr/patches/patch-bl  Wed Apr 18 08:26:42 2018 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-$NetBSD: patch-bl,v 1.1 2010/03/03 15:24:19 is Exp $
-
---- gen.h.orig 1999-07-28 22:42:21.000000000 +0200
-+++ gen.h
-@@ -43,8 +43,9 @@ void exit();
- double fmod();        /* not in Sequent <math.h> */
- 
- #if defined(__STDC__) || defined(__sgi) || defined(_AIX) || defined(__alpha)
--void *malloc(), *realloc();
--void *memset(), *memcpy();
-+#include <unistd.h>
-+#include <string.h>
-+#include <stdlib.h>
- #else
- char *malloc(), *realloc();
- char *memset(), *memcpy();
diff -r 4fe98a7b3957 -r 52ab172d66c7 lang/sr/patches/patch-csw_netbsd.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/sr/patches/patch-csw_netbsd.c        Wed Apr 18 08:42:16 2018 +0000
@@ -0,0 +1,106 @@
+$NetBSD: patch-csw_netbsd.c,v 1.1 2018/04/18 08:42:16 he Exp $
+
+Implement context switching for NetBSD.
+
+--- csw/netbsd.c.orig  2018-04-18 07:36:39.000000000 +0000
++++ csw/netbsd.c
+@@ -0,0 +1,99 @@
++/*
++ *  netbsd.c -- context switch code for NetBSD 2.
++ *
++ *  Some Makefile changes are needed to use this code.
++ */
++
++#include <ucontext.h>
++
++void sr_stk_underflow(void);
++void sr_stk_corrupted(void);
++
++static void startup(void (*)(void), unsigned long, unsigned long, unsigned long, unsigned long);
++
++static void sr_setcontext_u(ucontext_t *);
++static void sr_swapcontext_u(ucontext_t *, ucontext_t *);
++
++static void
++sr_setcontext_u(ucontext_t *uc) {
++      setcontext(uc);
++}
++
++static void
++sr_swapcontext_u(ucontext_t *oldc, ucontext_t *newc) {
++      swapcontext(oldc, newc);
++}
++
++
++/*
++ *  sr_build_context (func, buf, bufsize, arg1, arg2, arg3, arg4)
++ *
++ *  Build a context that will call func(arg1,arg2,arg3,arg4) when activated
++ *  and will catch an underflow error if func returns.  We use an intermediary
++ *  in order to catch that return.
++ */
++void
++sr_build_context (func, buf, bufsize, arg1, arg2, arg3, arg4)
++void (*func)();
++char *buf;
++int bufsize;
++unsigned long arg1, arg2, arg3, arg4;
++{
++    ucontext_t *uc = (ucontext_t *) buf;      /* put header at front of buf */
++
++    if (0 != getcontext(uc)) {                        /* initialize context */
++      sr_stk_corrupted();
++    }
++
++    uc->uc_stack.ss_sp = buf + sizeof (ucontext_t);
++    uc->uc_stack.ss_size = bufsize - sizeof (ucontext_t);
++
++    makecontext (uc, startup, 5, func, arg1, arg2, arg3, arg4);
++    uc->uc_stack.ss_flags = 0;
++}
++
++/*
++ *  startup (func, a,b,c,d) -- intermediary for startup and underflow detection.
++ */
++static void
++startup (func, arg1, arg2, arg3, arg4)
++void (*func)();
++unsigned long arg1, arg2, arg3, arg4;
++{
++    (*func) (arg1, arg2, arg3, arg4);
++    sr_stk_underflow();
++}
++
++
++
++/*
++ *  sr_chg_context (newctx, oldctx) -- change contexts.
++ */
++void
++sr_chg_context (new, old)
++char *new, *old;
++{
++    ucontext_t *oldu, *newu;
++    newu = (ucontext_t *)new;
++
++    if (old) {
++      oldu = (ucontext_t *)old;
++      swapcontext(oldu, newu);
++    } else {
++      setcontext(newu);
++    }
++}
++
++
++
++/*
++ *  sr_check_stk (stk) -- check for stack overflow.
++ *
++ *  We have no idea of how to do that, so we do nothing.
++ */
++void
++sr_check_stk(stk)
++char *stk;
++{
++    /* nothing */
++}
diff -r 4fe98a7b3957 -r 52ab172d66c7 lang/sr/patches/patch-gen.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/sr/patches/patch-gen.h       Wed Apr 18 08:42:16 2018 +0000
@@ -0,0 +1,35 @@
+$NetBSD: patch-gen.h,v 1.1 2018/04/18 08:42:16 he Exp $
+



Home | Main Index | Thread Index | Old Index