pkgsrc-WIP-changes archive

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

PicoLisp64: Import PicoLisp64 based on wip/PicoLisp



Module Name:	pkgsrc-wip
Committed By:	Mateusz Poszwa <old4%o2.pl@localhost>
Pushed By:	f8l
Date:		Wed Mar 8 22:30:20 2017 +0100
Changeset:	73847c7d8226d09a54baa0c254e96466499e494e

Modified Files:
	Makefile
	PicoLisp/Makefile
Added Files:
	PicoLisp/Makefile.common
	PicoLisp64/DESCR
	PicoLisp64/Makefile
	PicoLisp64/PLIST
	PicoLisp64/TODO
	PicoLisp64/distinfo
	PicoLisp64/patches/patch-src64_Makefile
	PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.code.l
	PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.defs.l
	PicoLisp64/patches/patch-src_Makefile

Log Message:
PicoLisp64: Import PicoLisp64 based on wip/PicoLisp

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=73847c7d8226d09a54baa0c254e96466499e494e

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                           |   1 +
 PicoLisp/Makefile                                  |  56 +------
 PicoLisp/Makefile.common                           |  58 ++++++++
 PicoLisp64/DESCR                                   |  17 +++
 PicoLisp64/Makefile                                |   9 ++
 PicoLisp64/PLIST                                   | 100 +++++++++++++
 PicoLisp64/TODO                                    |   1 +
 PicoLisp64/distinfo                                |  10 ++
 PicoLisp64/patches/patch-src64_Makefile            |  53 +++++++
 .../patches/patch-src64_sys_x86-64.netBsd.code.l   |  58 ++++++++
 .../patches/patch-src64_sys_x86-64.netBsd.defs.l   | 161 +++++++++++++++++++++
 PicoLisp64/patches/patch-src_Makefile              |  13 ++
 12 files changed, 483 insertions(+), 54 deletions(-)

diffs:
diff --git a/Makefile b/Makefile
index 455c1353e9..0e18f255c4 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ SUBDIR+=	PHPUnit
 SUBDIR+=	PPower4
 SUBDIR+=	PatternPaint
 SUBDIR+=	PicoLisp
+SUBDIR+=	PicoLisp64
 SUBDIR+=	PyBabelFish
 SUBDIR+=	Pythonol
 SUBDIR+=	R-BiocGenerics
diff --git a/PicoLisp/Makefile b/PicoLisp/Makefile
index 5ab3c9a68a..83bca669bc 100644
--- a/PicoLisp/Makefile
+++ b/PicoLisp/Makefile
@@ -1,58 +1,6 @@
 # $NetBSD$
 
-DISTNAME=	picoLisp
-PKGNAME=	PicoLisp-17.3.4
-CATEGORIES=	lang
-MASTER_SITES=	http://software-lab.de/
-EXTRACT_SUFX=	.tgz
-
-MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE=	http://picolisp.com/
-COMMENT=	Simple programming language and application server framework
-LICENSE=	mit
-
-WRKSRC=	${WRKDIR}/picoLisp
-
-BUILD_DIRS+=	src
-USE_TOOLS+=	gmake
-
-AUTO_MKDIRS=	yes
-
-BIN_DIR=	${PREFIX}/bin
-LIB_DIR=	${PREFIX}/lib
-
-SUBST_CLASSES+=			fix-paths
-SUBST_STAGE.fix-paths=		pre-configure
-SUBST_MESSAGE.fix-paths=	Fixing absolute paths.
-SUBST_FILES.fix-paths+=		bin/pil
-SUBST_SED.fix-paths+=		-e 's,/usr/bin,${BIN_DIR},g'
-SUBST_SED.fix-paths+=		-e 's,/usr/lib,${LIB_DIR},g'
-
-SUBST_CLASSES+=			move-tests
-SUBST_STAGE.move-tests=		pre-install
-SUBST_MESSAGE.move-tests=	Fixing paths of moved tests.
-SUBST_FILES.move-tests+=	lib/test.l
-SUBST_FILES.move-tests+=	test/src/*.l
-SUBST_SED.move-tests=		-e 's,"@test,"${PREFIX}/tests/picolisp/test,g'
-
-do-test:
-	${WRKSRC}/bin/picolisp ${WRKSRC}/lib.l @lib/misc.l @lib/pilog.l @lib/test.l -bye +
-
-do-install:
-	${INSTALL_ENV} ${INSTALL_PROGRAM} ${WRKSRC}/bin/picolisp ${DESTDIR}${BIN_DIR}
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/bin/pil ${DESTDIR}${BIN_DIR}
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/lib.l ${DESTDIR}${LIB_DIR}/picolisp/
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/lib/*.l ${DESTDIR}${LIB_DIR}/picolisp/lib/
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/loc/*.l ${DESTDIR}${LIB_DIR}/picolisp/loc/
-	${INSTALL_ENV} ${INSTALL_DATA} ${WRKSRC}/loc/?? ${DESTDIR}${LIB_DIR}/picolisp/loc/
-	${INSTALL_ENV} ${INSTALL_LIB} ${WRKSRC}/lib/ext ${DESTDIR}${LIB_DIR}/picolisp/lib/
-	${INSTALL_ENV} ${INSTALL_LIB} ${WRKSRC}/lib/ht ${DESTDIR}${LIB_DIR}/picolisp/lib/
-	${INSTALL_ENV} ${INSTALL_DATA} ${WRKSRC}/lib/map ${DESTDIR}${LIB_DIR}/picolisp/lib/
-	${INSTALL_ENV} ${INSTALL_MAN} ${WRKSRC}/man/man1/picolisp.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/
-	${INSTALL_ENV} ${INSTALL_MAN} ${WRKSRC}/man/man1/pil.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/lib/test.l ${DESTDIR}${PREFIX}/tests/picolisp/lib/
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/test/lib.l ${DESTDIR}${PREFIX}/tests/picolisp/test/
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/test/lib/*.l ${DESTDIR}${PREFIX}/tests/picolisp/test/lib/
-	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/test/src/*.l ${DESTDIR}${PREFIX}/tests/picolisp/test/src/
+PKGNAME=	PicoLisp-${PIL_VERSION}
 
+.include "Makefile.common"
 .include "../../mk/bsd.pkg.mk"
diff --git a/PicoLisp/Makefile.common b/PicoLisp/Makefile.common
new file mode 100644
index 0000000000..c3b98baf01
--- /dev/null
+++ b/PicoLisp/Makefile.common
@@ -0,0 +1,58 @@
+# $NetBSD$
+# used by wip/PicoLisp/Makefile
+# used by wip/PicoLisp64/Makefile
+
+DISTNAME=	picoLisp
+PIL_VERSION=	17.3.4
+CATEGORIES=	lang
+MASTER_SITES=	http://software-lab.de/
+EXTRACT_SUFX=	.tgz
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	http://picolisp.com/
+COMMENT=	Simple programming language and application server framework
+LICENSE=	mit
+
+WRKSRC=	${WRKDIR}/picoLisp
+
+BUILD_DIRS+=	src
+USE_TOOLS+=	gmake
+
+AUTO_MKDIRS=	yes
+
+BIN_DIR=	${PREFIX}/bin
+LIB_DIR=	${PREFIX}/lib
+
+SUBST_CLASSES+=			fix-paths
+SUBST_STAGE.fix-paths=		pre-configure
+SUBST_MESSAGE.fix-paths=	Fixing absolute paths.
+SUBST_FILES.fix-paths+=		bin/pil
+SUBST_SED.fix-paths+=		-e 's,/usr/bin,${BIN_DIR},g'
+SUBST_SED.fix-paths+=		-e 's,/usr/lib,${LIB_DIR},g'
+
+SUBST_CLASSES+=			move-tests
+SUBST_STAGE.move-tests=		pre-install
+SUBST_MESSAGE.move-tests=	Fixing paths of moved tests.
+SUBST_FILES.move-tests+=	lib/test.l
+SUBST_FILES.move-tests+=	test/src/*.l
+SUBST_SED.move-tests=		-e 's,"@test,"${PREFIX}/tests/picolisp/test,g'
+
+do-test:
+	${WRKSRC}/bin/picolisp ${WRKSRC}/lib.l @lib/misc.l @lib/pilog.l @lib/test.l -bye +
+
+do-install:
+	${INSTALL_ENV} ${INSTALL_PROGRAM} ${WRKSRC}/bin/picolisp ${DESTDIR}${BIN_DIR}
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/bin/pil ${DESTDIR}${BIN_DIR}
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/lib.l ${DESTDIR}${LIB_DIR}/picolisp/
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/lib/*.l ${DESTDIR}${LIB_DIR}/picolisp/lib/
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/loc/*.l ${DESTDIR}${LIB_DIR}/picolisp/loc/
+	${INSTALL_ENV} ${INSTALL_DATA} ${WRKSRC}/loc/?? ${DESTDIR}${LIB_DIR}/picolisp/loc/
+	${INSTALL_ENV} ${INSTALL_LIB} ${WRKSRC}/lib/ext ${DESTDIR}${LIB_DIR}/picolisp/lib/
+	${INSTALL_ENV} ${INSTALL_LIB} ${WRKSRC}/lib/ht ${DESTDIR}${LIB_DIR}/picolisp/lib/
+	${INSTALL_ENV} ${INSTALL_DATA} ${WRKSRC}/lib/map ${DESTDIR}${LIB_DIR}/picolisp/lib/
+	${INSTALL_ENV} ${INSTALL_MAN} ${WRKSRC}/man/man1/picolisp.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/
+	${INSTALL_ENV} ${INSTALL_MAN} ${WRKSRC}/man/man1/pil.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/lib/test.l ${DESTDIR}${PREFIX}/tests/picolisp/lib/
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/test/lib.l ${DESTDIR}${PREFIX}/tests/picolisp/test/
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/test/lib/*.l ${DESTDIR}${PREFIX}/tests/picolisp/test/lib/
+	${INSTALL_ENV} ${INSTALL_SCRIPT} ${WRKSRC}/test/src/*.l ${DESTDIR}${PREFIX}/tests/picolisp/test/src/
diff --git a/PicoLisp64/DESCR b/PicoLisp64/DESCR
new file mode 100644
index 0000000000..964fbf6512
--- /dev/null
+++ b/PicoLisp64/DESCR
@@ -0,0 +1,17 @@
+PicoLisp provides a 1-to-1 mapping of a clean and powerful
+Lisp derivate, to a simple and efficient virtual machine.
+It supports persistent objects as a first class data type,
+resulting in a database system of Entity/Relation classes and a
+Prolog-like query language tightly integrated into the system.
+
+As an application server framework, PicoLisp provides for
+   NoSQL Database Management:
+      Index trees, Object local indexes, Entity/Relation
+      classes, Pilog (PicoLisp Prolog) queries, Multi-user
+      synchronization, DB Garbage collection, Journaling, Replication
+   User Interface
+      Browser GUI, (X)HTML/CSS, XMLHttpRequest/JavaScript
+   Application Server
+      Process management, Process family communication, XML I/O,
+      Import/export, User administration, Internationalization,
+      Security, Object linkage, Postscript/Printing
diff --git a/PicoLisp64/Makefile b/PicoLisp64/Makefile
new file mode 100644
index 0000000000..bd76122abb
--- /dev/null
+++ b/PicoLisp64/Makefile
@@ -0,0 +1,9 @@
+# $NetBSD$
+
+PKGNAME=	PicoLisp64-${PIL_VERSION}
+
+.include "../../wip/PicoLisp/Makefile.common"
+
+BUILD_DIRS+= src64
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/PicoLisp64/PLIST b/PicoLisp64/PLIST
new file mode 100644
index 0000000000..e1cfe88e76
--- /dev/null
+++ b/PicoLisp64/PLIST
@@ -0,0 +1,100 @@
+@comment $NetBSD$
+bin/picolisp
+bin/pil
+lib/picolisp/lib.l
+lib/picolisp/lib/adm.l
+lib/picolisp/lib/app.l
+lib/picolisp/lib/boss.l
+lib/picolisp/lib/btree.l
+lib/picolisp/lib/cal.l
+lib/picolisp/lib/canvas.l
+lib/picolisp/lib/complete.l
+lib/picolisp/lib/conDbgc.l
+lib/picolisp/lib/db.l
+lib/picolisp/lib/db32-64.l
+lib/picolisp/lib/debug.l
+lib/picolisp/lib/ed.l
+lib/picolisp/lib/edit.l
+lib/picolisp/lib/eedit.l
+lib/picolisp/lib/eled.l
+lib/picolisp/lib/ext
+lib/picolisp/lib/form.l
+lib/picolisp/lib/frac.l
+lib/picolisp/lib/gcc.l
+lib/picolisp/lib/heartbeat.l
+lib/picolisp/lib/ht
+lib/picolisp/lib/http.l
+lib/picolisp/lib/import.l
+lib/picolisp/lib/json.l
+lib/picolisp/lib/led.l
+lib/picolisp/lib/led.min.l
+lib/picolisp/lib/lint.l
+lib/picolisp/lib/map
+lib/picolisp/lib/math.l
+lib/picolisp/lib/math32.l
+lib/picolisp/lib/math64.l
+lib/picolisp/lib/misc.l
+lib/picolisp/lib/native.l
+lib/picolisp/lib/openGl.l
+lib/picolisp/lib/pilog.l
+lib/picolisp/lib/prof.l
+lib/picolisp/lib/ps.l
+lib/picolisp/lib/readline.l
+lib/picolisp/lib/role.l
+lib/picolisp/lib/rsa.l
+lib/picolisp/lib/scrape.l
+lib/picolisp/lib/simul.l
+lib/picolisp/lib/sq.l
+lib/picolisp/lib/svg.l
+lib/picolisp/lib/term.l
+lib/picolisp/lib/test.l
+lib/picolisp/lib/tex.l
+lib/picolisp/lib/tinymce.l
+lib/picolisp/lib/too.l
+lib/picolisp/lib/tsm.l
+lib/picolisp/lib/user.l
+lib/picolisp/lib/xhtml.l
+lib/picolisp/lib/xm.l
+lib/picolisp/lib/xml.l
+lib/picolisp/lib/xmlrpc.l
+lib/picolisp/lib/z3d.l
+lib/picolisp/lib/zahlwort.l
+lib/picolisp/loc/AR.l
+lib/picolisp/loc/CH.l
+lib/picolisp/loc/DE.l
+lib/picolisp/loc/ES.l
+lib/picolisp/loc/FR.l
+lib/picolisp/loc/JP.l
+lib/picolisp/loc/NIL.l
+lib/picolisp/loc/NO.l
+lib/picolisp/loc/RU.l
+lib/picolisp/loc/SE.l
+lib/picolisp/loc/UK.l
+lib/picolisp/loc/US.l
+lib/picolisp/loc/ar
+lib/picolisp/loc/ch
+lib/picolisp/loc/de
+lib/picolisp/loc/es
+lib/picolisp/loc/fr
+lib/picolisp/loc/jp
+lib/picolisp/loc/no
+lib/picolisp/loc/ru
+lib/picolisp/loc/sv
+man/man1/picolisp.1
+man/man1/pil.1
+tests/picolisp/lib/test.l
+tests/picolisp/test/lib.l
+tests/picolisp/test/lib/lint.l
+tests/picolisp/test/lib/math.l
+tests/picolisp/test/lib/misc.l
+tests/picolisp/test/src/apply.l
+tests/picolisp/test/src/big.l
+tests/picolisp/test/src/db.l
+tests/picolisp/test/src/ext.l
+tests/picolisp/test/src/flow.l
+tests/picolisp/test/src/ht.l
+tests/picolisp/test/src/io.l
+tests/picolisp/test/src/main.l
+tests/picolisp/test/src/net.l
+tests/picolisp/test/src/subr.l
+tests/picolisp/test/src/sym.l
diff --git a/PicoLisp64/TODO b/PicoLisp64/TODO
new file mode 100644
index 0000000000..4398c1343a
--- /dev/null
+++ b/PicoLisp64/TODO
@@ -0,0 +1 @@
+Fix src64/sys/x86-64.netBsd.code.l
\ No newline at end of file
diff --git a/PicoLisp64/distinfo b/PicoLisp64/distinfo
new file mode 100644
index 0000000000..f41e3617f4
--- /dev/null
+++ b/PicoLisp64/distinfo
@@ -0,0 +1,10 @@
+$NetBSD$
+
+SHA1 (picoLisp.tgz) = 9464d84f56a9236b34c520b29d00e80497d61709
+RMD160 (picoLisp.tgz) = bd1dd41317aaf76ff0178e9cfd335ab4d04e2e59
+SHA512 (picoLisp.tgz) = a0d2bba345816a174d659ab222cd099d8fd8538d298b9baaa37ba929855d49b6b18a751c9120afb1a35d71ec858e1687e12efe0595261393c16a13e53c257ba9
+Size (picoLisp.tgz) = 984138 bytes
+SHA1 (patch-src64_Makefile) = db6c7d7eec81bee237e4b8ef03686d02d02a0332
+SHA1 (patch-src64_sys_x86-64.netBsd.code.l) = 65f2192a64354847def32d204b903aa08688f532
+SHA1 (patch-src64_sys_x86-64.netBsd.defs.l) = f4295dec32dfa835df723f3cca2dbc04a0af0bda
+SHA1 (patch-src_Makefile) = fe320943e1660063e3c916d958eb2161c22d86f1
diff --git a/PicoLisp64/patches/patch-src64_Makefile b/PicoLisp64/patches/patch-src64_Makefile
new file mode 100644
index 0000000000..0988faef64
--- /dev/null
+++ b/PicoLisp64/patches/patch-src64_Makefile
@@ -0,0 +1,53 @@
+$NetBSD$
+
+Add support for NetBSD
+
+--- src64/Makefile.orig	2016-12-05 12:09:18.000000000 +0000
++++ src64/Makefile
+@@ -28,11 +28,16 @@ else
+ 						UNAME = SunOS
+ 						MACHINE = x86_64
+ 					else
+-						UNAME = $(shell uname)
+-						ifeq ($(MAKECMDGOALS), emu)
+-							MACHINE = emu
++						ifeq ($(MAKECMDGOALS), x86-64.netBsd)
++							UNAME = NetBSD
++							MACHINE = x86_64
+ 						else
+-							MACHINE = $(shell uname -m)
++							UNAME = $(shell uname)
++							ifeq ($(MAKECMDGOALS), emu)
++								MACHINE = emu
++							else
++								MACHINE = $(shell uname -m)
++							endif
+ 						endif
+ 					endif
+ 				endif
+@@ -103,6 +108,17 @@ else
+ 				LD-MAIN = -m64 -lc -lm -ldl -lsocket -lnsl
+ 				LD-SHARED = -m64 -shared
+ 				STRIP = strip
++			else
++				ifeq ($(UNAME), NetBSD)
++					OS = NetBSD
++					SYS = .netBsd
++					FMT = .s
++					ARCH = x86-64
++					AS = as
++					LD-MAIN = -m64 -lc -lm
++					LD-SHARED = -m64 -shared -rdynamic
++					STRIP = strip
++				endif
+ 			endif
+ 		endif
+ 	endif
+@@ -124,6 +140,7 @@ ppc64.linux: $(sFiles)
+ x86-64.freeBsd: $(sFiles)
+ x86-64.openBsd: $(sFiles)
+ x86-64.sunOs: $(sFiles)
++x86-64.netBsd: $(sFiles)
+ emu: picolisp
+ 
+ picolisp: $(bin)/picolisp $(lib)/ext $(lib)/ht
diff --git a/PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.code.l b/PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.code.l
new file mode 100644
index 0000000000..9eeea03621
--- /dev/null
+++ b/PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.code.l
@@ -0,0 +1,58 @@
+$NetBSD$
+
+Add support for NetBSD
+
+--- src64/sys/x86-64.netBsd.code.l.orig	2017-03-06 21:09:34.700658304 +0000
++++ src64/sys/x86-64.netBsd.code.l
+@@ -0,0 +1,51 @@
++# 07jan13abu
++# Mansur Mamkin <mmamkin%mail.ru@localhost>
++
++# System macros
++(code 'errno_A 0)
++   call __errno  # Get address of 'errno'
++   ld A (A)  # Load value
++   ret
++
++(code 'errnoC 0)
++   call __errno  # Get address of 'errno'
++   ld (A) C  # Store new value
++   ret
++
++#define>_WSTATUS(x)<--->(_W_INT(x) & 0177)
++#define>_WSTOPPED<----->0177<--><------>/* _WSTATUS if process is stopped */
++#define _WCONTINUED	0xffffU
++#define>WIFSTOPPED(x)<->(_WSTATUS(x) == _WSTOPPED)
++#define WIFSTOPPED(x)	(_WSTATUS(x) == _WSTOPPED && !WIFCONTINUED(x))
++#define WIFCONTINUED(x)	(_W_INT(x) == _WCONTINUED)
++#define WSTOPSIG(x)	((int)(((unsigned int)_W_INT(x)) >> 8) & 0xff)
++#define WIFSIGNALED(x)	(!WIFSTOPPED(x) && !WIFCONTINUED(x) && !WIFEXITED(x))
++#define>WIFSIGNALED(x)<>(_WSTATUS(x) != _WSTOPPED && _WSTATUS(x) != 0)
++#define>WTERMSIG(x)<--->(_WSTATUS(x))
++#define WIFEXITED(x)	(_WSTATUS(x) == 0)
++#define WEXITSTATUS(x)	((int)(((unsigned int)_W_INT(x)) >> 8) & 0xff)
++
++# ((status & 0177) == 0177 && !(x == 0x0000ffffU))
++
++(code 'wifstoppedS_F 0)  # WIFSTOPPED
++   ld A (S I)  # Get status
++   and B `(oct "0177")
++   cmp B `(oct "0177")  # (((status) & 0177) == 0177)
++   ret
++
++(code 'wifsignaledS_F 0)  # WIFSIGNALED
++   ld A (S I)  # Get status
++   and B `(oct "0177")  # ((((status) & 0177) != 0177) && ((status) & 0177) != 0)
++   cmp B `(oct "0177")
++   if ne
++      nul B
++   end
++   ret
++
++(code 'wtermsigS_A 0)  # WTERMSIG
++   ld A (S I)  # Get status
++   and B `(oct "0177")  # ((status) & 0177)
++   zxt
++   ret
++
++# vi:et:ts=3:sw=3
diff --git a/PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.defs.l b/PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.defs.l
new file mode 100644
index 0000000000..83652e6519
--- /dev/null
+++ b/PicoLisp64/patches/patch-src64_sys_x86-64.netBsd.defs.l
@@ -0,0 +1,161 @@
+$NetBSD$
+
+Add support for NetBSD
+
+--- src64/sys/x86-64.netBsd.defs.l.orig	2017-03-06 21:09:34.714744409 +0000
++++ src64/sys/x86-64.netBsd.defs.l
+@@ -0,0 +1,154 @@
++# Endianess
++L
++# Wordsize
++64
++
++# errno
++(equ ENOENT 2)
++(equ EINTR 4)
++(equ EBADF 9)
++(equ EAGAIN 35)
++(equ EACCES 13)
++(equ EPIPE 32)
++(equ ECONNRESET 54)
++
++# open/fcntl
++(equ O_RDONLY 0)
++(equ O_WRONLY 1)
++(equ O_RDWR 2)
++(equ O_CREAT 512)
++(equ O_EXCL 2048)
++(equ O_TRUNC 1024)
++(equ O_APPEND 8)
++(equ F_GETFD 1)
++(equ F_SETFD 2)
++(equ FD_CLOEXEC 1)
++
++# stdio
++(equ BUFSIZ 1024)
++(equ PIPE_BUF 512)
++(equ GETCWDLEN 0)
++(equ stdin '__sF)
++(equ stdout '(& (__sF 152)))
++(equ stderr '(& (__sF 304)))
++
++# dlfcn
++(equ RTLD_LAZY 1)
++(equ RTLD_GLOBAL 256)
++
++# fcntl
++(equ FLOCK 24)
++(equ L_TYPE 20)
++(equ L_WHENCE 22)
++(equ L_START 0)
++(equ L_LEN 8)
++(equ L_PID 16)
++(equ SEEK_SET 0)
++(equ SEEK_CUR 1)
++(equ F_RDLCK 1)
++(equ F_WRLCK 3)
++(equ F_UNLCK 2)
++(equ F_GETFL 3)
++(equ F_SETFL 4)
++(equ F_GETLK 7)
++(equ F_SETLK 8)
++(equ F_SETLKW 9)
++(equ F_SETOWN 6)
++(equ O_NONBLOCK 4)
++(equ O_ASYNC 64)
++
++# stat
++(equ STAT 152)
++(equ ST_MODE 8)
++(equ ST_SIZE 112)
++(equ ST_MTIME 64)
++(equ S_IFMT 61440)
++(equ S_IFREG 32768)
++(equ S_IFDIR 16384)
++
++# times
++(equ TMS 16)
++(equ TMS_UTIME 0)
++(equ TMS_STIME 4)
++
++# termios
++(equ TERMIOS 44)
++(equ C_IFLAG 0)
++(equ C_OFLAG 4)
++(equ C_CFLAG 8)
++(equ C_LFLAG 12)
++(equ C_CC 16)
++(equ OPOST 1)
++(equ ONLCR 2)
++(equ ISIG 128)
++(equ VMIN 16)
++(equ VTIME 17)
++(equ TCSADRAIN 1)
++
++# signal
++(equ SIGACTION 32)
++(equ SIGSET_T 16)
++(equ SA_HANDLER 0)
++(equ SA_MASK 8)
++(equ SA_FLAGS 24)
++(equ SIG_DFL 0)
++(equ SIG_IGN 1)
++(equ SIG_UNBLOCK 2)
++(equ SIGHUP 1)
++(equ SIGINT 2)
++(equ SIGUSR1 30)
++(equ SIGUSR2 31)
++(equ SIGPIPE 13)
++(equ SIGALRM 14)
++(equ SIGTERM 15)
++(equ SIGCHLD 20)
++(equ SIGCONT 19)
++(equ SIGSTOP 17)
++(equ SIGTSTP 18)
++(equ SIGTTIN 21)
++(equ SIGTTOU 22)
++(equ SIGIO 23)
++(equ SIGNALS 32)
++
++# wait
++(equ WNOHANG 1)
++(equ WUNTRACED 2)
++
++# select
++(equ FD_SET 32)
++
++# time
++(equ TM_SEC 0)
++(equ TM_MIN 4)
++(equ TM_HOUR 8)
++(equ TM_MDAY 12)
++(equ TM_MON 16)
++(equ TM_YEAR 20)
++(equ TM_GMTOFF 40)
++
++# dir
++(equ D_NAME 13)
++
++# Sockets
++(equ SOCK_STREAM 1)
++(equ SOCK_DGRAM 2)
++(equ AF_UNSPEC 0)
++(equ AF_UNIX 1)
++(equ AF_INET6 24)
++(equ SOL_SOCKET 65535)
++(equ SO_REUSEADDR 4)
++(equ IPPROTO_IPV6 41)
++(equ IPV6_V6ONLY 27)
++(equ INET6_ADDRSTRLEN 46)
++(equ NI_MAXHOST 1025)
++(equ NI_NAMEREQD 4)
++(equ SOCKADDR_IN6 28)
++(equ SIN6_FAMILY 1)
++(equ SIN6_PORT 2)
++(equ SIN6_ADDR 8)
++(equ ADDRINFO 48)
++(equ AI_FAMILY 4)
++(equ AI_SOCKTYPE 8)
++(equ AI_ADDRLEN 16)
++(equ AI_ADDR 32)
++(equ AI_NEXT 40)
diff --git a/PicoLisp64/patches/patch-src_Makefile b/PicoLisp64/patches/patch-src_Makefile
new file mode 100644
index 0000000000..35374c5312
--- /dev/null
+++ b/PicoLisp64/patches/patch-src_Makefile
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- src/Makefile.orig	2016-02-02 15:52:49.000000000 +0000
++++ src/Makefile
+@@ -48,7 +48,7 @@ ifeq ($(shell uname), FreeBSD)
+ else
+ ifeq ($(shell uname), NetBSD)
+ 	OS = NetBSD
+-	CFLAGS += -m32
++	CFLAGS += -m32 -fpic
+ 	PICOLISP-FLAGS = -m32 -rdynamic
+ 	LIB-FLAGS = -lm
+ 	DYNAMIC-LIB-FLAGS = -m32 -shared -export-dynamic


Home | Main Index | Thread Index | Old Index