pkgsrc-Changes archive

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

CVS commit: pkgsrc/lang/smlnj11072



Module Name:    pkgsrc
Committed By:   dholland
Date:           Sun Jul  3 17:50:31 UTC 2016

Added Files:
        pkgsrc/lang/smlnj11072: DESCR Makefile Makefile.common PLIST
            PLIST.FreeBSD distinfo
        pkgsrc/lang/smlnj11072/files: targets
        pkgsrc/lang/smlnj11072/patches: patch-aa patch-ab patch-ac patch-ad
            patch-ae patch-af patch-ag patch-ah patch-ai patch-aj patch-ak
            patch-am patch-an patch-ao patch-ap patch-aq patch-ar patch-as
            patch-at

Log Message:
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...)


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/smlnj11072/DESCR \
    pkgsrc/lang/smlnj11072/Makefile pkgsrc/lang/smlnj11072/Makefile.common \
    pkgsrc/lang/smlnj11072/PLIST pkgsrc/lang/smlnj11072/PLIST.FreeBSD \
    pkgsrc/lang/smlnj11072/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/smlnj11072/files/targets
cvs rdiff -u -r0 -r1.1 pkgsrc/lang/smlnj11072/patches/patch-aa \
    pkgsrc/lang/smlnj11072/patches/patch-ab \
    pkgsrc/lang/smlnj11072/patches/patch-ac \
    pkgsrc/lang/smlnj11072/patches/patch-ad \
    pkgsrc/lang/smlnj11072/patches/patch-ae \
    pkgsrc/lang/smlnj11072/patches/patch-af \
    pkgsrc/lang/smlnj11072/patches/patch-ag \
    pkgsrc/lang/smlnj11072/patches/patch-ah \
    pkgsrc/lang/smlnj11072/patches/patch-ai \
    pkgsrc/lang/smlnj11072/patches/patch-aj \
    pkgsrc/lang/smlnj11072/patches/patch-ak \
    pkgsrc/lang/smlnj11072/patches/patch-am \
    pkgsrc/lang/smlnj11072/patches/patch-an \
    pkgsrc/lang/smlnj11072/patches/patch-ao \
    pkgsrc/lang/smlnj11072/patches/patch-ap \
    pkgsrc/lang/smlnj11072/patches/patch-aq \
    pkgsrc/lang/smlnj11072/patches/patch-ar \
    pkgsrc/lang/smlnj11072/patches/patch-as \
    pkgsrc/lang/smlnj11072/patches/patch-at

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

Added files:

Index: pkgsrc/lang/smlnj11072/DESCR
diff -u /dev/null pkgsrc/lang/smlnj11072/DESCR:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/DESCR        Sun Jul  3 17:50:31 2016
@@ -0,0 +1,6 @@
+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.
Index: pkgsrc/lang/smlnj11072/Makefile
diff -u /dev/null pkgsrc/lang/smlnj11072/Makefile:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/Makefile     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,106 @@
+# $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@localhost
+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"
Index: pkgsrc/lang/smlnj11072/Makefile.common
diff -u /dev/null pkgsrc/lang/smlnj11072/Makefile.common:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/Makefile.common      Sun Jul  3 17:50:31 2016
@@ -0,0 +1,37 @@
+# $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}
Index: pkgsrc/lang/smlnj11072/PLIST
diff -u /dev/null pkgsrc/lang/smlnj11072/PLIST:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/PLIST        Sun Jul  3 17:50:31 2016
@@ -0,0 +1,176 @@
+@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
Index: pkgsrc/lang/smlnj11072/PLIST.FreeBSD
diff -u /dev/null pkgsrc/lang/smlnj11072/PLIST.FreeBSD:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/PLIST.FreeBSD        Sun Jul  3 17:50:31 2016
@@ -0,0 +1,2 @@
+lib/smlnj/bin/.run/run.${BOX}-freebsd.a
+lib/smlnj/bin/.run/run.${BOX}-freebsd.so
Index: pkgsrc/lang/smlnj11072/distinfo
diff -u /dev/null pkgsrc/lang/smlnj11072/distinfo:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/distinfo     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,81 @@
+$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

Index: pkgsrc/lang/smlnj11072/files/targets
diff -u /dev/null pkgsrc/lang/smlnj11072/files/targets:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/files/targets        Sun Jul  3 17:50:31 2016
@@ -0,0 +1,15 @@
+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

Index: pkgsrc/lang/smlnj11072/patches/patch-aa
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-aa:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-aa     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,79 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-ab
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ab:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ab     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,29 @@
+$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))
Index: pkgsrc/lang/smlnj11072/patches/patch-ac
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ac:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ac     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,24 @@
+$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
+     ;;
Index: pkgsrc/lang/smlnj11072/patches/patch-ad
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ad:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ad     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,25 @@
+$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"
Index: pkgsrc/lang/smlnj11072/patches/patch-ae
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ae:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ae     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,187 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-af
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-af:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-af     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,33 @@
+$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)
Index: pkgsrc/lang/smlnj11072/patches/patch-ag
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ag:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ag     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,29 @@
+$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))
Index: pkgsrc/lang/smlnj11072/patches/patch-ah
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ah:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ah     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,12 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-ai
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ai:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ai     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,12 @@
+$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@"
Index: pkgsrc/lang/smlnj11072/patches/patch-aj
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-aj:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-aj     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,12 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-ak
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ak:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ak     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,12 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-am
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-am:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-am     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,13 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-an
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-an:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-an     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,13 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-ao
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ao:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ao     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,13 @@
+$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;
+ 
Index: pkgsrc/lang/smlnj11072/patches/patch-ap
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ap:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ap     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,13 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-aq
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-aq:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-aq     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,13 @@
+$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)
Index: pkgsrc/lang/smlnj11072/patches/patch-ar
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-ar:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-ar     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,15 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-as
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-as:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-as     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,15 @@
+$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
Index: pkgsrc/lang/smlnj11072/patches/patch-at
diff -u /dev/null pkgsrc/lang/smlnj11072/patches/patch-at:1.1
--- /dev/null   Sun Jul  3 17:50:31 2016
+++ pkgsrc/lang/smlnj11072/patches/patch-at     Sun Jul  3 17:50:31 2016
@@ -0,0 +1,17 @@
+$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



Home | Main Index | Thread Index | Old Index