Sun Jul 3 17:50:31 2016 UTC ()
Add a copy of smlnj from before the last update (so, 110.72) because
this version builds and runs on NetBSD/i386. (Yes, the update was
years back. This is what happens with packages that don't build on
amd64...)


(dholland)
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/DESCR
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/Makefile
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/Makefile.common
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/PLIST
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/PLIST.FreeBSD
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/distinfo
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/files/targets
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-aa
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ab
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ac
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ad
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ae
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-af
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ag
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ah
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ai
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-aj
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ak
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-am
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-an
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ao
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ap
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-aq
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-ar
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-as
diff -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-at

File Added: pkgsrc/lang/smlnj11072/DESCR
A Standard ML implementation from Bell-Labs.  Implements the SML '97
definition including the new Basis library with a few minor omissions
and discrepancies.

If you are interested in a lighter weight implementation of ML, the
Moscow-ML port is recommended.

File Added: pkgsrc/lang/smlnj11072/Makefile
# $NetBSD: Makefile,v 1.1 2016/07/03 17:50:31 dholland Exp $
#

DISTNAME=	boot.${BOX}-unix
PKGNAME=	smlnj-${SML_VERSION}
CATEGORIES=	lang
MASTER_SITES=	http://smlnj.cs.uchicago.edu/dist/working/${SML_VERSION}/
DISTFILES=	MLRISC.tgz			\
		boot.${BOX}-unix.tgz		\
		ckit.tgz			\
		cm.tgz				\
		cml.tgz				\
		compiler.tgz			\
		config.tgz			\
		eXene.tgz			\
		ml-burg.tgz			\
		ml-lex.tgz			\
		nlffi.tgz			\
		ml-yacc.tgz			\
		runtime.tgz			\
		smlnj-lib.tgz			\
		system.tgz			\
		ml-lpt.tgz			\
		pgraph.tgz			\
		trace-debug-profile.tgz		\
		heap2asm.tgz			\
		smlnj-c.tgz

MAINTAINER=	richards+netbsd@CS.Princeton.EDU
HOMEPAGE=	http://www.smlnj.org/index.html
COMMENT=	Popular functional language from Bell Labs

SML_VERSION=	110.72

PKG_DESTDIR_SUPPORT=	user-destdir

WRKSRC=		${WRKDIR}
DIST_SUBDIR=	smlnj-${SML_VERSION}
USE_TOOLS+=	gmake pax

# previous versions of the package had an additional '-'
CONFLICTS=	sml-nj-[0-9]*

SML_BASE=	${PREFIX}/lib/smlnj
SML_LIBDIR=	${SML_BASE}/lib
SML_BINDIR=	${SML_BASE}/bin
SML_SCRIPTS=	_link-sml _run-sml _ml-build _ml-makedepend

.include "../../lang/smlnj/Makefile.common"

# create parent directory for the runtime system
pre-extract:
	${MKDIR} ${WRKDIR}/src || ${TRUE}

# make it easier to patch the runtime system
do-extract:
	${RUN} extract_file="${_DISTDIR}/config.tgz"; export extract_file;	\
		cd ${WRKDIR}; ${EXTRACT_CMD}
	${RUN} extract_file="${_DISTDIR}/runtime.tgz"; export extract_file;	\
		cd ${WRKDIR}/src; ${EXTRACT_CMD}
	${RUN} extract_file="${_DISTDIR}/runtime.tgz"; export extract_file;	\
		mkdir ${WRKDIR}/base; cd ${WRKDIR}/base; ${EXTRACT_CMD}

# make symlinks to the dist files
post-extract:
	cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/*  .

# resolve definition of SML_BASE, CFLAGS in patched files
do-configure:
	if [ ${MACHINE_ARCH} = "powerpc" ]; then		\
		${AWK} '(! /^request nlffi$$/) { print }' \
		< ${WRKDIR}/config/targets			\
		> ${WRKDIR}/temp;				\
		${MV} ${WRKDIR}/temp ${WRKDIR}/config/targets;	\
	fi
	cd ${WRKDIR}/config;				\
	for f in ${SML_SCRIPTS}; do			\
		${CP} "$${f}" "$${f}.tmp";		\
		${SED} -e 's|@SML_BASE@|${SML_BASE}|g'	\
			< "$${f}.tmp" > "$${f}";	\
	done;						\
	cd ${WRKDIR}/src/runtime/objs;			\
	for f in *; do					\
		${CP} "$${f}" "$${f}.tmp";		\
		${SED} -e 's|@CFLAGS@|${CFLAGS}|g'	\
			< "$${f}.tmp" > "$${f}";	\
	done

# The build target needs to run $WRKDIR/config/install.sh
do-build:
	cd ${WRKDIR} && unset PWD && \
	FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
		SMLNJ_HOME="${WRKDIR}" ./config/install.sh

# install target
# (see ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.38/INSTALL)
# 1. create installation directories
# 2. copy the ./bin and ./lib directories across
# 3. install links to executables in $PREFIX/bin
INSTALLATION_DIRS=	bin
do-install:
	${INSTALL_DATA_DIR} ${DESTDIR}${SML_BASE}
	cd ${WRKDIR} && pax -rw -pam bin lib ${DESTDIR}${SML_BASE}
	cd ${DESTDIR}${PREFIX}/bin && ${LN} -sf ../lib/smlnj/bin/* .

.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/lang/smlnj11072/Makefile.common
# $NetBSD: Makefile.common,v 1.1 2016/07/03 17:50:31 dholland Exp $

# smlnj also supports hppa, sparc, ppc, mlrisc & alpha
# pkg support for those platforms, and say, solaris-x86
# is left as an (easy) exercise for the reader.
ONLY_FOR_PLATFORM=	NetBSD-*-i386 NetBSD-*-sparc NetBSD-*-powerpc \
			FreeBSD-*-i386 Linux-*-i386 SunOS-*-sparc

.include "../../mk/bsd.prefs.mk"

# Possible values of BOX and OS must be kept in sync with the
# currently ported platforms.

.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD"
OS=		bsd
.elif ${OPSYS} == "SunOS" || ${OPSYS} == "Linux"
OS=		${LOWER_OPSYS}
.endif

PLIST_VARS+=	nlffi		# not available on all platforms

.if ${MACHINE_ARCH} == "i386"
BOX=		x86
PLIST.nlffi=	yes
.elif ${MACHINE_ARCH} == "powerpc"
BOX=		ppc
.elif ${MACHINE_ARCH} == "sparc"
BOX=		${MACHINE_ARCH}
PLIST.nlffi=	yes
.else
# for "make fetch", default to i386 instead of trying to download
# a non-existing file
BOX=		x86
PLIST.nlffi=	yes
.endif

PLIST_SUBST+=	BOX=${BOX:Q} OS=${OS:Q} NLFFI=${NLFFI}

File Added: pkgsrc/lang/smlnj11072/PLIST
@comment $NetBSD: PLIST,v 1.1 2016/07/03 17:50:31 dholland Exp $
bin/heap2asm
bin/heap2exec
bin/ml-antlr
bin/ml-build
bin/ml-burg
bin/ml-lex
bin/ml-makedepend
${PLIST.nlffi}bin/ml-nlffigen
bin/ml-ulex
bin/ml-yacc
bin/nowhere
bin/sml
lib/smlnj/bin/.arch-n-opsys
lib/smlnj/bin/.heap/heap2asm.${BOX}-${OS}
lib/smlnj/bin/.heap/ml-antlr.${BOX}-${OS}
lib/smlnj/bin/.heap/ml-burg.${BOX}-${OS}
lib/smlnj/bin/.heap/ml-lex.${BOX}-${OS}
${PLIST.nlffi}lib/smlnj/bin/.heap/ml-nlffigen.${BOX}-${OS}
lib/smlnj/bin/.heap/ml-ulex.${BOX}-${OS}
lib/smlnj/bin/.heap/ml-yacc.${BOX}-${OS}
lib/smlnj/bin/.heap/nowhere.${BOX}-${OS}
lib/smlnj/bin/.heap/sml.${BOX}-${OS}
lib/smlnj/bin/.link-sml
lib/smlnj/bin/.run-sml
lib/smlnj/bin/.run/run.${BOX}-${LOWER_OPSYS}
lib/smlnj/bin/heap2asm
lib/smlnj/bin/heap2exec
lib/smlnj/bin/ml-antlr
lib/smlnj/bin/ml-build
lib/smlnj/bin/ml-burg
lib/smlnj/bin/ml-lex
lib/smlnj/bin/ml-makedepend
${PLIST.nlffi}lib/smlnj/bin/ml-nlffigen
lib/smlnj/bin/ml-ulex
lib/smlnj/bin/ml-yacc
lib/smlnj/bin/nowhere
lib/smlnj/bin/sml
lib/smlnj/lib/SMLNJ-BASIS/.cm/${BOX}-unix/basis.cm
lib/smlnj/lib/SMLNJ-LIB/Controls/.cm/${BOX}-unix/controls-lib.cm
lib/smlnj/lib/SMLNJ-LIB/HTML/.cm/${BOX}-unix/html-lib.cm
lib/smlnj/lib/SMLNJ-LIB/PP/.cm/${BOX}-unix/pp-lib.cm
lib/smlnj/lib/SMLNJ-LIB/Util/.cm/${BOX}-unix/smlnj-lib.cm
lib/smlnj/lib/SMLNJ-ML-YACC-LIB/.cm/${BOX}-unix/ml-yacc-lib.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/ALPHA.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/AMD64-Peephole.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/AMD64.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-Vararg.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-sparc.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-x86-64.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall-x86.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/CCall.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Control.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Graphs.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/HPPA.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/IA32-Peephole.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/IA32.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Lib.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/MLRISC.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/MLTREE.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/PPC.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Peephole.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/RA.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/SPARC.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/StagedAlloc.cm
lib/smlnj/lib/SMLNJ-MLRISC/.cm/${BOX}-unix/Visual.cm
lib/smlnj/lib/burg-ext.cm/.cm/${BOX}-unix/burg-ext.cm
${PLIST.nlffi}lib/smlnj/lib/c/.cm/${BOX}-unix/c.cm
${PLIST.nlffi}lib/smlnj/lib/c/internals/.cm/${BOX}-unix/c-int.cm
${PLIST.nlffi}lib/smlnj/lib/c/memory/.cm/${BOX}-unix/memory.cm
lib/smlnj/lib/ckit-lib.cm/.cm/${BOX}-unix/ckit-lib.cm
lib/smlnj/lib/cml-lib/.cm/${BOX}-unix/smlnj-lib.cm
lib/smlnj/lib/cml-lib/.cm/${BOX}-unix/trace-cml.cm
lib/smlnj/lib/cml/.cm/${BOX}-unix/basis.cm
lib/smlnj/lib/cml/.cm/${BOX}-unix/cml-internal.cm
lib/smlnj/lib/cml/.cm/${BOX}-unix/cml.cm
lib/smlnj/lib/cml/.cm/${BOX}-unix/core-cml.cm
lib/smlnj/lib/dir-tool.cm/.cm/${BOX}-unix/dir-tool.cm
lib/smlnj/lib/eXene.cm/.cm/${BOX}-unix/eXene.cm
lib/smlnj/lib/grm-ext.cm/.cm/${BOX}-unix/grm-ext.cm
lib/smlnj/lib/hash-cons-lib.cm/.cm/${BOX}-unix/hash-cons-lib.cm
lib/smlnj/lib/inet-lib.cm/.cm/${BOX}-unix/inet-lib.cm
lib/smlnj/lib/json-lib.cm/.cm/${BOX}-unix/json-lib.cm
lib/smlnj/lib/lex-ext.cm/.cm/${BOX}-unix/lex-ext.cm
lib/smlnj/lib/make-tool.cm/.cm/${BOX}-unix/make-tool.cm
lib/smlnj/lib/ml-antlr-tool.cm/.cm/${BOX}-unix/ml-antlr-tool.cm
lib/smlnj/lib/ml-lpt-lib.cm/.cm/${BOX}-unix/ml-lpt-lib.cm
lib/smlnj/lib/ml-ulex-tool.cm/.cm/${BOX}-unix/ml-ulex-tool.cm
lib/smlnj/lib/mlburg-tool.cm/.cm/${BOX}-unix/mlburg-tool.cm
lib/smlnj/lib/mllex-tool.cm/.cm/${BOX}-unix/mllex-tool.cm
lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/match-compiler.cm
lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/parser.cm
lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/pp.cm
lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/prec-parser.cm
lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/sml-ast.cm
lib/smlnj/lib/mlrisc-tools/.cm/${BOX}-unix/source-map.cm
lib/smlnj/lib/mlyacc-tool.cm/.cm/${BOX}-unix/mlyacc-tool.cm
lib/smlnj/lib/noweb-tool.cm/.cm/${BOX}-unix/noweb-tool.cm
lib/smlnj/lib/nw-ext.cm/.cm/${BOX}-unix/nw-ext.cm
lib/smlnj/lib/pathconfig
lib/smlnj/lib/pgraph-util.cm/.cm/${BOX}-unix/pgraph-util.cm
lib/smlnj/lib/pgraph.cm/.cm/${BOX}-unix/pgraph.cm
lib/smlnj/lib/pickle-lib.cm/.cm/${BOX}-unix/pickle-lib.cm
lib/smlnj/lib/reactive-lib.cm/.cm/${BOX}-unix/reactive-lib.cm
lib/smlnj/lib/regexp-lib.cm/.cm/${BOX}-unix/regexp-lib.cm
lib/smlnj/lib/shell-tool.cm/.cm/${BOX}-unix/shell-tool.cm
lib/smlnj/lib/smlnj-tdp/.cm/${BOX}-unix/back-trace.cm
lib/smlnj/lib/smlnj-tdp/.cm/${BOX}-unix/coverage.cm
lib/smlnj/lib/smlnj-tdp/.cm/${BOX}-unix/plugins.cm
lib/smlnj/lib/smlnj/.cm/${BOX}-unix/cm.cm
lib/smlnj/lib/smlnj/.cm/${BOX}-unix/cmb.cm
lib/smlnj/lib/smlnj/.cm/${BOX}-unix/compiler.cm
lib/smlnj/lib/smlnj/.cm/${BOX}-unix/installer.cm
lib/smlnj/lib/smlnj/.cm/${BOX}-unix/library-install.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/ALPHA.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/AMD64.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Control.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Graphs.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/HPPA.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/IA32.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Lib.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/MLRISC.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/MLTREE.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/PPC.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/SPARC.cm
lib/smlnj/lib/smlnj/MLRISC/.cm/${BOX}-unix/Visual.cm
lib/smlnj/lib/smlnj/basis/.cm/${BOX}-unix/basis.cm
lib/smlnj/lib/smlnj/cm/.cm/${BOX}-unix/cm.cm
lib/smlnj/lib/smlnj/cm/.cm/${BOX}-unix/tools.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/alpha32-unix.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/amd64-unix.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/current.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/hppa-unix.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/ppc-macos.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/ppc-unix.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/sparc-unix.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/x86-unix.cm
lib/smlnj/lib/smlnj/cmb/.cm/${BOX}-unix/x86-win32.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/all.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/alpha32.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/amd64.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/compiler.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/current.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/hppa.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/minimal-only.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/minimal.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/ppc.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/sparc.cm
lib/smlnj/lib/smlnj/compiler/.cm/${BOX}-unix/x86.cm
lib/smlnj/lib/smlnj/init/.cm/${BOX}-unix/init.cmi
lib/smlnj/lib/smlnj/installer/.cm/${BOX}-unix/util.cm
lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/cm-lib.cm
lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/cm-sig-lib.cm
lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/cm0.cm
lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/intsys.cm
lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/smlnj-version.cm
lib/smlnj/lib/smlnj/internal/.cm/${BOX}-unix/srcpath-lib.cm
lib/smlnj/lib/smlnj/ml-yacc/.cm/${BOX}-unix/ml-yacc-lib.cm
lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/controls-lib.cm
lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/html-lib.cm
lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/pp-lib.cm
lib/smlnj/lib/smlnj/smlnj-lib/.cm/${BOX}-unix/smlnj-lib.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/alpha32.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/amd64.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/basics.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/core.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/debugprof.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/elabdata.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/elaborate.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/execute.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/hppa.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/parser.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/ppc.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/sparc.cm
lib/smlnj/lib/smlnj/viscomp/.cm/${BOX}-unix/x86.cm
lib/smlnj/lib/unix-lib.cm/.cm/${BOX}-unix/unix-lib.cm

File Added: pkgsrc/lang/smlnj11072/PLIST.FreeBSD
lib/smlnj/bin/.run/run.${BOX}-freebsd.a
lib/smlnj/bin/.run/run.${BOX}-freebsd.so

File Added: pkgsrc/lang/smlnj11072/distinfo
$NetBSD: distinfo,v 1.1 2016/07/03 17:50:31 dholland Exp $

SHA1 (smlnj-110.72/MLRISC.tgz) = 9bb9eb169337533304c2e0e4eb9af263d38c398a
RMD160 (smlnj-110.72/MLRISC.tgz) = 484512df036421e216d4afed01beb978d33e16bb
Size (smlnj-110.72/MLRISC.tgz) = 1432663 bytes
SHA1 (smlnj-110.72/boot.x86-unix.tgz) = 799f02f3e880a829b48962994b563f7321385d87
RMD160 (smlnj-110.72/boot.x86-unix.tgz) = bd2962ea25d6f384a3f458759a1c655960dc4208
Size (smlnj-110.72/boot.x86-unix.tgz) = 5847908 bytes
SHA1 (smlnj-110.72/ckit.tgz) = 0ebcdbd0a494eb051b4e6081f5e9312a0a54f03d
RMD160 (smlnj-110.72/ckit.tgz) = 0d94d522b22b21600ad99aaf22fb671c12a6ea59
Size (smlnj-110.72/ckit.tgz) = 199126 bytes
SHA1 (smlnj-110.72/cm.tgz) = 0a85eaecc101c45c769e6beb8ace8a8bf0f4d32f
RMD160 (smlnj-110.72/cm.tgz) = 821eb682bfb4e6ef6a71fe341ba018059301a233
Size (smlnj-110.72/cm.tgz) = 201235 bytes
SHA1 (smlnj-110.72/cml.tgz) = 9fd01c6d2d4a7cac22be75010891c1be5ab81f29
RMD160 (smlnj-110.72/cml.tgz) = 8e3b8fd01258e74364fa1319bb8d01335aaca8d1
Size (smlnj-110.72/cml.tgz) = 104194 bytes
SHA1 (smlnj-110.72/compiler.tgz) = cf80dfb2150de0705fbc2b2a01fc8eefda0e9c85
RMD160 (smlnj-110.72/compiler.tgz) = 6811090d11179312413ef789d1e292e95040606a
Size (smlnj-110.72/compiler.tgz) = 823034 bytes
SHA1 (smlnj-110.72/config.tgz) = a7e205a9e0753908ee3174daa5164c320c7a411f
RMD160 (smlnj-110.72/config.tgz) = f0e8f348ec4c8b4c5860d68a0b6b554f848ca4a7
Size (smlnj-110.72/config.tgz) = 512648 bytes
SHA1 (smlnj-110.72/eXene.tgz) = c8b502580a719b38528f100f21f11ac1f4c2b573
RMD160 (smlnj-110.72/eXene.tgz) = 182838ea5c6d3688f841b5edeea08f9c83b93177
Size (smlnj-110.72/eXene.tgz) = 713820 bytes
SHA1 (smlnj-110.72/heap2asm.tgz) = 46845fc4bed21f1c3b46540fc088936d0502e12b
RMD160 (smlnj-110.72/heap2asm.tgz) = 24b779bdb8b21a74d0f3586f5db779e02c540253
Size (smlnj-110.72/heap2asm.tgz) = 1308 bytes
SHA1 (smlnj-110.72/ml-burg.tgz) = 17afacafa25d1fc33d3cbe464be66f1a7f8714fa
RMD160 (smlnj-110.72/ml-burg.tgz) = 8b78c21f6b338baa55c9227babed4ebca10edd26
Size (smlnj-110.72/ml-burg.tgz) = 36558 bytes
SHA1 (smlnj-110.72/ml-lex.tgz) = 3fb5dca13de3c51ddab1c8fb95b1dfaad58fb27c
RMD160 (smlnj-110.72/ml-lex.tgz) = 69ccfd9ba199bd4a063f1a2c2a40444e0cf9db67
Size (smlnj-110.72/ml-lex.tgz) = 32966 bytes
SHA1 (smlnj-110.72/ml-lpt.tgz) = 948735346b411ec5004f3294454c12bfb4176083
RMD160 (smlnj-110.72/ml-lpt.tgz) = 86642f1b470c5f15861334072ff7543af1066881
Size (smlnj-110.72/ml-lpt.tgz) = 258328 bytes
SHA1 (smlnj-110.72/ml-yacc.tgz) = f7b0f53c7f676e7bb2605211d4981948c538a551
RMD160 (smlnj-110.72/ml-yacc.tgz) = c6ce323c77b8d1ac33f6bce0a865df40e1efe310
Size (smlnj-110.72/ml-yacc.tgz) = 101751 bytes
SHA1 (smlnj-110.72/nlffi.tgz) = 63d043de413748fe124eb6e9f066935b4f1e96e0
RMD160 (smlnj-110.72/nlffi.tgz) = 279741f9318b74dea838432adc21ad8f671bed6a
Size (smlnj-110.72/nlffi.tgz) = 74688 bytes
SHA1 (smlnj-110.72/pgraph.tgz) = 00919f8341fdcbe38ff7c908ef78fbbc4c37a5b6
RMD160 (smlnj-110.72/pgraph.tgz) = 8341475dc03a2460799af637eeb46d3f334f451f
Size (smlnj-110.72/pgraph.tgz) = 5417 bytes
SHA1 (smlnj-110.72/runtime.tgz) = d9e3df41155ad9e969dd13c06f0f0fd3df177578
RMD160 (smlnj-110.72/runtime.tgz) = 894209303d9204bae84209a8130877200251584e
Size (smlnj-110.72/runtime.tgz) = 333396 bytes
SHA1 (smlnj-110.72/smlnj-c.tgz) = f4bf82d695be0fca01e0f3e4075ac4d81fe3c660
RMD160 (smlnj-110.72/smlnj-c.tgz) = 373fc5c1b0b49056bc1eb73bf9650c2f939c4540
Size (smlnj-110.72/smlnj-c.tgz) = 10618 bytes
SHA1 (smlnj-110.72/smlnj-lib.tgz) = 8ce9761a118569b8563f0336e010906c15943324
RMD160 (smlnj-110.72/smlnj-lib.tgz) = fbcdc678f1c6842aaa5a2241db6564e6e81eb525
Size (smlnj-110.72/smlnj-lib.tgz) = 258562 bytes
SHA1 (smlnj-110.72/system.tgz) = 72f73bbbc06d23ee3c4510bb5af2fb8dec431337
RMD160 (smlnj-110.72/system.tgz) = c6816b7c9fd57f9351b63a7ba447442c4a21fe7b
Size (smlnj-110.72/system.tgz) = 238169 bytes
SHA1 (smlnj-110.72/trace-debug-profile.tgz) = e80d8076d961a36e067b559c02279562856bb6ee
RMD160 (smlnj-110.72/trace-debug-profile.tgz) = 6c85734aefd0672a645497550dacf56f503dd726
Size (smlnj-110.72/trace-debug-profile.tgz) = 3905 bytes
SHA1 (patch-aa) = a67e8438c0ae20c1f0fac37148158b565056e5f7
SHA1 (patch-ab) = 3d5946b2d72dee255159afe6fb25240f8fa7e306
SHA1 (patch-ac) = f6c30285f55a9537a785d363837ecc83cfd384b7
SHA1 (patch-ad) = a406bde2f6f7e2d93d652135b94aefd4b7aca494
SHA1 (patch-ae) = 5796401418fd91a795fdfe75060cf654dd315ac1
SHA1 (patch-af) = fae22c6f367b3007bbd9b46b7a7a218710723ca4
SHA1 (patch-ag) = dae9c89ccc7ada96bd3ac4b2bae1da6427902fb4
SHA1 (patch-ah) = 93d7453dc82d91d29662cc02dd8ab9e8b8987393
SHA1 (patch-ai) = 6a15a5415bd73e6618bc45b9a7eb021543e9cecd
SHA1 (patch-aj) = 6318548da4c943c60fe63d41529803ea3fa2c96e
SHA1 (patch-ak) = 6fb3d4444c75123dc8c5fa7bb6cea835c78ef6e3
SHA1 (patch-am) = 06d8cb145217c46ada440e0d3e7420ea99651064
SHA1 (patch-an) = d6e1a75d5fb68423ce3181622de919c2337db2e7
SHA1 (patch-ao) = 1c66024c5949269291cbf6f815baf6162db47d31
SHA1 (patch-ap) = 8e9e28548b4e58de68a11982a355a010ea96aa29
SHA1 (patch-aq) = 7d0734b76d778d7f584d2e70d325fd72e6554b01
SHA1 (patch-ar) = 727afe6de54eb244c48e99c661f6b8ae3f780de0
SHA1 (patch-as) = a2e5d474876baa1dc2484dda81708ea6ac92eb0b
SHA1 (patch-at) = 9fd22dab9def459d3305695a38d14d25c645ff30

File Added: pkgsrc/lang/smlnj11072/files/Attic/targets
request ml-yacc
request ml-lex
request ml-burg
request smlnj-lib
request pgraph-util
request cml
request cml-lib
request eXene
request ckit
#if !defined(__powerpc__)
request ml-nlffi-lib
request ml-nlffigen
#endif
request mlrisc-tools
request nowhere

File Added: pkgsrc/lang/smlnj11072/patches/patch-aa
$NetBSD: patch-aa,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- config/targets.orig	2010-02-03 19:40:28.000000000 +0300
+++ config/targets	2010-02-07 05:56:52.000000000 +0300
@@ -91,7 +91,7 @@
 
 # build ML-Burg
 #
-#request ml-burg
+request ml-burg
 
 # pre-compile and install the remaining components of the SML/NJ library
 # (everything except smlnj-lib.cm, aka Util, itself)
@@ -100,7 +100,7 @@
 
 # pre-compile and install CM "portable graph" utility library
 #
-#request pgraph-util
+request pgraph-util
 
 # pre-compile and install "Trace-Debug-Profile" utility library
 # (provides simple back-trace- and coverage facilities)
@@ -120,7 +120,7 @@
 # pre-compile and install eXene, which is a library for X-Windows programming.
 # EXene requires CML.
 #
-#request eXene
+request eXene
 
 # pre-compile (certain) parts of MLRISC that are not already part of the SML/NJ
 # compiler itself
@@ -130,7 +130,7 @@
 # pre-compile and install the C-Kit, which is a library for parsing and
 # type-checking C programs
 #
-#request ckit
+request ckit
 
 # pre-compile and install the ML-NLFFI Library, which is the core of
 # a new foreign function interface (where "foreign" functions are
@@ -140,7 +140,7 @@
 # This preview release currently works under X86/Linux, Sparc/Solaris,
 # PPC/MacOSX, and X86/Win32.
 #
-#request ml-nlffi-lib
+request ml-nlffi-lib
 
 # build ML-NLFFI-Gen, a program generator tool used in conjunction with
 # the new "NLFFI" foreign function interface.  The tool generates ML
@@ -149,13 +149,13 @@
 # This preview release currently works under X86/Linux, Sparc/Solaris,
 # PPC/MacOSX, and X86/Win32.
 #
-#request ml-nlffigen
+request ml-nlffigen
 
 # pre-compile and install the MLRISC Tools library.
 # This library is for parsing and pretty printing SML code.
 # It's used by various MLRISC code generator generator.
 #
-#request mlrisc-tools
+request mlrisc-tools
 
 # Build and install the 'nowhere' program translator.
 # This tool translates programs with conditional patterns (where clauses) 
@@ -163,11 +163,11 @@
 # (bad) documentation.
 # (Requires the mlrisc-tools library!)
 #
-#request nowhere
+request nowhere
 
 # Build and install 'heap2asm' - an experimental component of
 # a new facility for producing true stand-alone executables.
-#request heap2asm
+request heap2asm
 
 # Note: autoloading is always enabled.
 #   In order to customize what is being pre-registered for autoloading

File Added: pkgsrc/lang/smlnj11072/patches/Attic/patch-ab
$NetBSD: patch-ab,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- /dev/null
+++ src/runtime/objs/mk.ppc-netbsd
@@ -0,0 +1,24 @@
+# mk.ppc-netbsd
+#
+
+SHELL		= /bin/sh
+
+MAKE =		gmake
+GCC =		gcc
+ARFLAGS =	Trcv
+CFLAGS =	@CFLAGS@
+LDFLAGS=
+CPP =		$(GCC) -x c -E -P
+
+#XOBJS =	xmonitor.o
+#LD_LIBS =	-lX11
+#BASE_DEFS =	-DHEAP_MONITOR -DPOLL_DEBUG
+XOBJS =
+XLIBS =
+DEFS =		$(BASE_DEFS) -DHOST_PPC -DTARGET_PPC -DOPSYS_UNIX -DOPSYS_NETBSD
+TARGET =	PPC
+VERSION =	v-ppc-netbsd
+RUNTIME =	run.ppc-netbsd
+
+all:
+	($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))

File Added: pkgsrc/lang/smlnj11072/patches/Attic/patch-ac
$NetBSD: patch-ac,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- config/_arch-n-opsys.orig	2008-08-13 22:37:59.000000000 +0400
+++ config/_arch-n-opsys	2009-01-27 17:24:34.000000000 +0300
@@ -118,13 +118,15 @@
     ;;
   NetBSD)
     case `uname -r` in
-      2*) OPSYS=netbsd2;;
-      3*) OPSYS=netbsd;;
-      *) exit 1;;
+      1.*)  exit 1;;
+      2.*) OPSYS=netbsd2;;
+      *) OPSYS=netbsd;;
     esac
     HEAP_OPSYS=bsd
-    case `uname -m` in
+    case `uname -p` in
       *86) ARCH=x86;;
+      powerpc) ARCH=ppc;;
+      sparc) ARCH=sparc;;
       *) exit 1;;
     esac
     ;;

File Added: pkgsrc/lang/smlnj11072/patches/patch-ad
$NetBSD: patch-ad,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/include/asm-base.h.orig
+++ src/runtime/include/asm-base.h
@@ -36,6 +36,11 @@
 #    define _ASM
 #    include <sys/stack.h>
 #    include <sys/trap.h>
+#  elif defined(OPSYS_NETBSD)
+#    include <machine/trap.h>
+#    define WINDOWSIZE (16*4)
+#    define SA(x) (((x)+7)&~7)
+#    define ST_INT_OVERFLOW 0x87
 #  endif
 #  define CGLOBAL(ID)	.global	CSYM(ID)
 #  define LABEL(ID)	ID:
@@ -104,7 +109,7 @@
 #    define DOUBLE(V)	.double V
 #    define LABEL(ID)   ID:
 
-#  elif (defined(OPSYS_LINUX) && defined(TARGET_PPC))
+#  elif ((defined(OPSYS_LINUX) || defined(OPSYS_NETBSD)) && defined(TARGET_PPC))
 #    define CFUNSYM(ID)	ID
 #    define CGLOBAL(ID)	.globl CSYM(ID)
 #    define TEXT	.section ".text"

File Added: pkgsrc/lang/smlnj11072/patches/patch-ae
$NetBSD: patch-ae,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/mach-dep/SPARC.prim.asm.orig	Fri Jun 15 15:05:19 2001
+++ src/runtime/mach-dep/SPARC.prim.asm
@@ -307,7 +307,7 @@ pending_sigs:	/* there are pending signa
 	mov	ALLOCPTR,LIMITPTR	    /* (delay slot) */
 
 
-#if defined(OPSYS_SUNOS) || defined(OPSYS_NEXTSTEP)
+#if defined(OPSYS_SUNOS) || defined(OPSYS_NEXTSTEP) || defined(OPSYS_NETBSD)
 /* ZeroLimitPtr:
  *
  * Zero the heap limit pointer so that a trap will be generated on the next limit
@@ -622,13 +622,62 @@ _ml_mul:
 	mov	%g1,%l1			  /* save %g1 which may get trashed */
 	mov	%g2,%l2
 	mov	%g3,%l3
+#ifdef OPSYS_NETBSD
+			/* NetBSDs .mul trashes these */
+	mov     %i4,%l4
+	mov     %i5,%l5
+	mov	%i0,%l6
+	mov	%i1,%l7
+#endif
 	mov	%i2,%o0
 	call	.mul
 	mov	%i3,%o1			  /* (delay slot) */
 	mov	%l1,%g1			  /* restore %g1 */
 	mov	%l2,%g2
 	mov	%l3,%g3
+#ifdef OPSYS_NETBSD
+	mov     %l4,%i4
+	mov	%l5,%i5
+	mov	%l6,%i0
+	mov	%l7,%i1
+			/* the code below is a hack:
+			 * NetBSDs .mul does a 32x32->64 bit signed multiply
+			 * The SML code assumes that the multiply
+			 * overflowed (over 32bit) if the Z flag is
+			 * clear on return from .mul 
+			 * NetBSDs .mul doesn't do that, so we have to check
+			 * for overflow. This is done in the following way:
+			 * - If the upper 32 bits are clear:
+	 		 *    + if bit 31 is set => overflow
+		         *    + if bit 31 is clear => OK
+			 * - If the upper 32 bits are != -1 => overflow
+			 * - If the upper 32 bits are == -1:
+			 *    + If bit 31 is clear => overflow
+			 *    + If bit 31 is set   => OK
+			 *
+		   	 * I should be shot for this code ...
+			 */
+	cmp %o1,0
+	bnz 4f
+	nop
+	/* is bit 31 of %o0 set ? */
+	addcc %o0,%o0,%o1
+	bcc 2f
+	nop
+5:      restore %o0,0,%o2                 /* result in %o2 (delay slot) */
+        t       ST_INT_OVERFLOW         /* generate overflow trap */
+
+	
+4:	cmp %o1,-1			/* upper 32 bits == -1 ? */
+	bnz 5
+	nop
+	addcc %o0,%o0,%o1		/* bit 31 clear ? */
+	bcc 2f
+	nop
+#else
 	bnz	1f			  /* if z is clear, then overflow */
+#endif
+2:
 	restore %o0,0,%o2		  /* result in %o2 (delay slot) */
 	retl
 	nop
@@ -642,7 +691,15 @@ _ml_mul:
  * locals of the new window, since .div is a leaf routine.
  */
 _ml_div:
-	save	%sp,-SA(WINDOWSIZE),%sp
+#ifdef OPSYS_NETBSD
+		/* hack time again: NetBSDs .div trashes too many registers
+		 * we have to store them in the stack frame, so make room
+		 * for six registers (o0-o5) 
+		 */
+	save	%sp,-SA(WINDOWSIZE+24),%sp
+#else
+        save    %sp,-SA(WINDOWSIZE+24),%sp
+#endif
 	addcc	%i3,%g0,%o1		/* %o1 is divisor (and check for zero) */
 	bz	1f
 				    /* save %g1, %g2 and %g3 (using new window) */
@@ -650,9 +707,30 @@ _ml_div:
 	mov	%g1,%l1			/* (delay slot) */
 	mov	%g2,%l2
 	mov	%g3,%l3
+#ifdef OPSYS_NETBSD
+	/* save g6,g7,o0-o5, they get trashed. 
+	   Note that %o0-%o5 are now %i0-%i5, since we did a 'save'
+	   Since %g6 is the global AllocPtr for SML, this 
+	   is rather bad :-)
+	 */  
+	mov %g6,%l4
+	mov %g7,%l5
+	std	%i0,[%fp-16]
+	std	%i2,[%fp-24]
+	std	%i4,[%fp-32]
+#endif
+
 	call	.div
 	mov	%i2,%o0			/* (delay slot) */
 				    /* restore %g1, %g2 and %g3 */
+#ifdef OPSYS_NETBSD
+	mov %l4,%g6
+	mov %l5,%g7
+	ldd	[%fp-32],%i4
+	ldd	[%fp-24],%i2
+	ldd	[%fp-16],%i0
+#endif
+
 	mov	%l3,%g3
 	mov	%l2,%g2
 	mov	%l1,%g1
@@ -679,11 +757,24 @@ _ml_umul:
 	mov	%g2,%l2
 	mov	%g3,%l3
 	mov	%i2,%o0
+#ifdef OPSYS_NETBSD
+		/* Save what might be trashed by NetBSDs .umul */
+	mov	%i4,%l4
+	mov	%i5,%l5
+	mov	%i0,%l6
+	mov 	%i1,%l7
+#endif
 	call	.umul
 	mov	%i3,%o1			  /* (delay slot) */
 	mov	%l1,%g1			  /* restore %g1 */
 	mov	%l2,%g2
 	mov	%l3,%g3
+#ifdef OPSYS_NETBSD
+	mov	%l4,%i4
+	mov	%l5,%i5
+	mov	%l6,%i0
+	mov	%l7,%i1
+#endif
 	ret
 	restore %o0,0,%o2		  /* result in %o2 (delay slot) */
 
@@ -694,7 +785,12 @@ _ml_umul:
  * locals of the new window, since .div is a leaf routine.
  */
 _ml_udiv:
-	save	%sp,-SA(WINDOWSIZE),%sp
+#ifdef OPSYS_NETBSD
+		/* see comment for _ml__div_ */
+	save	%sp,-SA(WINDOWSIZE+24),%sp
+#else
+        save    %sp,-SA(WINDOWSIZE+24),%sp 
+#endif
 	addcc	%i3,%g0,%o1		/* %o1 is divisor (and check for zero) */
 	bz	1f
 				    /* save %g1, %g2 and %g3 (using new window) */
@@ -702,9 +798,23 @@ _ml_udiv:
 	mov	%g1,%l1			/* (delay slot) */
 	mov	%g2,%l2
 	mov	%g3,%l3
+#ifdef OPSYS_NETBSD
+	mov	%g6,%l4
+	mov 	%g7,%l5
+        std     %i0,[%fp-16]
+        std     %i2,[%fp-24]
+        std     %i4,[%fp-32]
+#endif
 	call	.udiv
 	mov	%i2,%o0			/* (delay slot) */
 				    /* restore %g1, %g2 and %g3 */
+#ifdef OPSYS_NETBSD
+	mov 	%l4,%g6
+	mov 	%l5,%g7
+        ldd     [%fp-32],%i4
+        ldd     [%fp-24],%i2
+        ldd     [%fp-16],%i0
+#endif
 	mov	%l3,%g3
 	mov	%l2,%g2
 	mov	%l1,%g1

File Added: pkgsrc/lang/smlnj11072/patches/Attic/patch-af
$NetBSD: patch-af,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/mach-dep/signal-sysdep.h.orig	2006-02-27 17:47:32.000000000 +0000
+++ src/runtime/mach-dep/signal-sysdep.h	2006-03-09 19:15:48.000000000 +0000
@@ -171,7 +171,7 @@
   /* disable all FP exceptions */
 #  define SIG_InitFPE()    SetFSR(0)
 
-#  if defined(OPSYS_SUNOS)
+#  if defined(OPSYS_SUNOS) || defined(OPSYS_NETBSD)
     /** SPARC, SUNOS **/
 #    define USE_ZERO_LIMIT_PTR_FN
 #    define SIG_FAULT1		SIGFPE
@@ -340,6 +340,19 @@
 #    define SIG_ResetFPE(scp)           { (scp)->regs->gpr[PT_FPSCR] = 0x0; }
      typedef void SigReturn_t;
 
+#  elif (defined(TARGET_PPC) && defined(OPSYS_NETBSD))
+    /* PPC, NetBSD */
+
+#    define SIG_FAULT1          SIGTRAP
+
+#    define INT_DIVZERO(s, c)           ((s) == SIGTRAP)
+#    define INT_OVFLW(s, c)             ((s) == SIGTRAP)
+#    define SIG_GetPC(scp)              ((scp)->sc_frame.srr0)
+#    define SIG_SetPC(scp, addr)        { (scp)->sc_frame.srr0 = (long)(addr); }
+#    define SIG_ZeroLimitPtr(scp)       { ((scp)->sc_frame.fixreg[15] = 0); } /* limitptr = 15 (see src/runtime/mach-dep/PPC.prim.asm) */
+#    define SIG_GetCode(info,scp)       (info)
+     typedef void SigReturn_t;
+
 #  endif /* HOST_RS6000/HOST_PPC */
 
 #elif defined(HOST_HPPA)

File Added: pkgsrc/lang/smlnj11072/patches/Attic/patch-ag
$NetBSD: patch-ag,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/objs/mk.sparc-netbsd.orig	Thu Sep 19 03:54:01 2002
+++ src/runtime/objs/mk.sparc-netbsd
@@ -0,0 +1,24 @@
+# mk.sparc-netbsd
+#
+
+SHELL		= /bin/sh
+
+MAKE =		gmake
+GCC =		gcc
+ARFLAGS =	Trcv
+CFLAGS =	@CFLAGS@ 
+LDFLAGS=
+CPP =		$(GCC) -x c -E -P
+
+#XOBJS =	xmonitor.o
+#LD_LIBS =	-lX11
+#BASE_DEFS =	-DHEAP_MONITOR -DPOLL_DEBUG
+XOBJS =
+XLIBS =
+DEFS =		$(BASE_DEFS) -DHOST_SPARC -DTARGET_SPARC -DOPSYS_UNIX -DOPSYS_NETBSD -DCALLEESAVE=3 -DUNBOXEDFLOAT=1 
+TARGET =	SPARC
+VERSION =	v-sparc-netbsd
+RUNTIME =	run.sparc-netbsd
+
+all:
+	($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))

File Added: pkgsrc/lang/smlnj11072/patches/patch-ah
$NetBSD: patch-ah,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- config/_link-sml.orig	2005-01-03 21:13:16.000000000 +0000
+++ config/_link-sml	2005-12-24 22:04:13.000000000 +0000
@@ -17,6 +17,7 @@
 #
 # SITE SPECIFIC CONFIGURATION INFO
 #
+SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"
 
 # the path of the directory in which executables (like this file) are kept.
 if [ x"$SMLNJ_HOME" = x ] ; then

File Added: pkgsrc/lang/smlnj11072/patches/patch-ai
$NetBSD: patch-ai,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- config/_ml-build.orig	2007-02-13 00:05:27.000000000 +0300
+++ config/_ml-build	2009-03-18 12:37:58.000000000 +0300
@@ -1,5 +1,7 @@
 #!@SHELL@
 
+SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"
+
 if [ x${SMLNJ_HOME} = x ] ; then
     BIN_DIR="@BINDIR@"
     LIB_DIR="@LIBDIR@"

File Added: pkgsrc/lang/smlnj11072/patches/patch-aj
$NetBSD: patch-aj,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- config/_ml-makedepend.orig	2004-12-14 23:23:38.000000000 +0000
+++ config/_ml-makedepend	2005-12-24 22:48:05.000000000 +0000
@@ -1,5 +1,7 @@
 #!@SHELL@
 
+SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"
+
 if [ x${SMLNJ_HOME} = x ] ; then
     BIN_DIR="@BINDIR@"
 else

File Added: pkgsrc/lang/smlnj11072/patches/patch-ak
$NetBSD: patch-ak,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- config/_run-sml.orig	2004-12-17 21:12:23.000000000 +0000
+++ config/_run-sml	2005-12-24 22:50:18.000000000 +0000
@@ -19,6 +19,7 @@
 #
 # SITE SPECIFIC CONFIGURATION INFO
 #
+SMLNJ_HOME="${SMLNJ_HOME:-@SML_BASE@}"
 
 # On cygwin, make sure SMLNJ_HOME is given a POSIX-style pathname.
 if [ x"$SMLNJ_HOME" != x ] ; then

File Added: pkgsrc/lang/smlnj11072/patches/patch-am
$NetBSD: patch-am,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/objs/mk.sparc-solaris.orig	Fri Jun 15 15:05:19 2001
+++ src/runtime/objs/mk.sparc-solaris
@@ -8,7 +8,7 @@ AS =		/usr/ccs/bin/as
 AR =		/usr/ccs/bin/ar
 GCC =		gcc
 CC =		$(GCC)
-CFLAGS =	-O3
+CFLAGS =	@CFLAGS@
 #CFLAGS =	-g
 CPP =		$(GCC) -x c -E -P
 RANLIB =	$(AR) ts

File Added: pkgsrc/lang/smlnj11072/patches/patch-an
$NetBSD: patch-an,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/objs/mk.sparc-sunos.orig	Thu Jun  1 14:33:52 2000
+++ src/runtime/objs/mk.sparc-sunos
@@ -4,7 +4,7 @@
 SHELL		= /bin/sh
 
 CC =		gcc -ansi
-CFLAGS =	-O2
+CFLAGS =	@CFLAGS@
 CPP =		gcc -x c -E -P -ansi
 #XOBJS =	xmonitor.o
 #LD_LIBS =	-lX11

File Added: pkgsrc/lang/smlnj11072/patches/patch-ao
$NetBSD: patch-ao,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/kernel/boot.c.orig
+++ src/runtime/kernel/boot.c
@@ -124,7 +124,7 @@
     ml_val_t	fileList;
 # define SIZE_BUF_LEN	128	/* this should be plenty for two numbers */
     char        sizeBuf[SIZE_BUF_LEN];
-    char        c;
+    int        c;
 
     numFiles = 0;
 

File Added: pkgsrc/lang/smlnj11072/patches/patch-ap
$NetBSD: patch-ap,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/include/cache-flush.h.orig
+++ src/runtime/include/cache-flush.h
@@ -40,7 +40,7 @@
 extern FlushICache (void *addr, int nbytes);
 
 
-#elif (defined(TARGET_PPC) && (defined(OPSYS_LINUX) || defined(OPSYS_DARWIN) ))
+#elif (defined(TARGET_PPC) && (defined(OPSYS_LINUX) || defined(OPSYS_DARWIN) || defined(OPSYS_NETBSD)))
 extern FlushICache (void *addr, int nbytes);
 
 #else

File Added: pkgsrc/lang/smlnj11072/patches/patch-aq
$NetBSD: patch-aq,v 1.1 2016/07/03 17:50:31 dholland Exp $

--- src/runtime/mach-dep/PPC.prim.asm.orig
+++ src/runtime/mach-dep/PPC.prim.asm
@@ -813,7 +813,7 @@
 	lfd	f31, 136(r3)
 	blr
 
-#if (defined(TARGET_PPC) && (defined(OPSYS_LINUX) || defined(OPSYS_DARWIN) ))
+#if (defined(TARGET_PPC) && (defined(OPSYS_LINUX) || defined(OPSYS_DARWIN) || defined(OPSYS_NETBSD) ))
 
 #define CACHE_LINE_SZB		32
 #define CACHE_LINE_MASK		(CACHE_LINE_SZB-1)

File Added: pkgsrc/lang/smlnj11072/patches/patch-ar
$NetBSD: patch-ar,v 1.1 2016/07/03 17:50:31 dholland Exp $

NetBSD has POSIX signals since 2.0 at least.

--- src/runtime/include/ml-unixdep.h.orig	2008-12-05 20:57:39.000000000 +0300
+++ src/runtime/include/ml-unixdep.h	2009-03-19 00:14:35.000000000 +0300
@@ -323,7 +323,7 @@
 #elif defined(OPSYS_NETBSD) /* version 3.x */
 #  define OS_NAME	"BSD"
 #  define HAS_POSIX_LIBRARIES
-#  define HAS_BSD_SIGS
+#  define HAS_POSIX_SIGS
 #  define HAS_GETRUSAGE
 #  define HAS_SETITIMER
 #  define HAS_MMAP

File Added: pkgsrc/lang/smlnj11072/patches/Attic/patch-as
$NetBSD: patch-as,v 1.1 2016/07/03 17:50:31 dholland Exp $

NetBSD has POSIX signals since 2.0 at least.

--- base/runtime/include/ml-unixdep.h.orig	2008-12-05 20:57:39.000000000 +0300
+++ base/runtime/include/ml-unixdep.h	2009-03-19 00:16:29.000000000 +0300
@@ -323,7 +323,7 @@
 #elif defined(OPSYS_NETBSD) /* version 3.x */
 #  define OS_NAME	"BSD"
 #  define HAS_POSIX_LIBRARIES
-#  define HAS_BSD_SIGS
+#  define HAS_POSIX_SIGS
 #  define HAS_GETRUSAGE
 #  define HAS_SETITIMER
 #  define HAS_MMAP

File Added: pkgsrc/lang/smlnj11072/patches/patch-at
$NetBSD: patch-at,v 1.1 2016/07/03 17:50:31 dholland Exp $

NetBSD has POSIX signals since 2.0 at least.
Don't unpack archive, since it is hard to fix,
unpack before patch phase instead.

--- config/install.sh.orig	2007-06-12 20:43:58.000000000 +0400
+++ config/install.sh	2009-03-19 00:47:06.000000000 +0300
@@ -316,7 +316,7 @@
 if [ -x "$RUNDIR"/run.$ARCH-$OPSYS ]; then
     vsay $this: Run-time system already exists.
 else
-    "$CONFIGDIR"/unpack "$ROOT" runtime
+#    "$CONFIGDIR"/unpack "$ROOT" runtime
     cd "$BASEDIR"/runtime/objs
     echo $this: Compiling the run-time system.
     $MAKE -f mk.$ARCH-$OPSYS $EXTRA_DEFS