summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin19001 -> 18841 bytes
-rw-r--r--dev-lang/fsharp/Manifest3
-rw-r--r--dev-lang/fsharp/fsharp-4.0.1.20.1.ebuild37
-rw-r--r--dev-lang/fsharp/metadata.xml14
-rw-r--r--dev-lang/mlton/Manifest9
-rw-r--r--dev-lang/mlton/files/mlton-20180207-bootstrap.patch27
-rw-r--r--dev-lang/mlton/files/mlton-20180207-paxmark.patch18
-rw-r--r--dev-lang/mlton/metadata.xml9
-rw-r--r--dev-lang/mlton/mlton-20130715.ebuild6
-rw-r--r--dev-lang/mlton/mlton-20180207.ebuild264
-rw-r--r--dev-lang/nim/Manifest2
-rw-r--r--dev-lang/nim/nim-0.18.0.ebuild2
-rw-r--r--dev-lang/perl/Manifest2
-rw-r--r--dev-lang/perl/perl-5.26.1-r2.ebuild5
-rw-r--r--dev-lang/smlnj/Manifest30
-rw-r--r--dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch116
-rw-r--r--dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch132
-rw-r--r--dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch137
-rw-r--r--dev-lang/smlnj/metadata.xml4
-rw-r--r--dev-lang/smlnj/smlnj-110.82.ebuild166
20 files changed, 920 insertions, 63 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index 07a23b2f3b4a..e53cb216792f 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/fsharp/Manifest b/dev-lang/fsharp/Manifest
deleted file mode 100644
index 859b1c592f03..000000000000
--- a/dev-lang/fsharp/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST fsharp-4.0.1.20.1.tar.gz 37325028 BLAKE2B 63d3bf968e18e0ad116bc89d4d0fbdb91b05284ea47c041de01eb9d1ff58b5593c0ae9415b7527aa81b8b3cbd2d880fb812d5ed344da9fa1aa25cc82cddb20bf SHA512 a11f715b955381b720b7d9b59e3ade68566ba7756bc77312785b131154708478622f1c6ad6743030f78e15ebd0d11513bae050a638bc11c585412ef0c83ee857
-EBUILD fsharp-4.0.1.20.1.ebuild 825 BLAKE2B ba4a3a549dacd785004325a742724b75429292eecb69ac8a29c9b47c43b6c4a9a4454ab10e290c3c43ac924a3ed1b5dd4b957c3a5668125703b0bfcde62e8bd5 SHA512 1aa062c19da9d79562a63af6847b7179db63569abc7b41ccd75ef1e1c6197619cbbad065899dea2b29ee67e155030ad5ea21bf6701acdcda0a78f5c5c13dc15b
-MISC metadata.xml 579 BLAKE2B 277144bbe7d9350cff2d4e916e8904ec152f61dacbcb3e960eb20078591e840f6ddf76c84c13c4a361216a8ceedd64d722139337a921e2e2dc31a4d687d9e714 SHA512 86902f0336f0d57f3d2cce92a2780d12f62a85c5030d1164061af1b3c44746289acbeb7d5a3d8d87efe75be0e766e196fb541dab6e89a5e190f4009342cf8789
diff --git a/dev-lang/fsharp/fsharp-4.0.1.20.1.ebuild b/dev-lang/fsharp/fsharp-4.0.1.20.1.ebuild
deleted file mode 100644
index 74d64abc9af7..000000000000
--- a/dev-lang/fsharp/fsharp-4.0.1.20.1.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-AUTOTOOLS_AUTORECONF=1
-
-inherit autotools-utils mono-env
-
-DESCRIPTION="The F# Compiler"
-HOMEPAGE="https://github.com/fsharp/fsharp"
-SRC_URI="https://github.com/fsharp/fsharp/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~x86 ~amd64"
-IUSE=""
-
-MAKEOPTS+=" -j1" #nowarn
-DEPEND=">=dev-lang/mono-3"
-RDEPEND="${DEPEND}"
-
-AUTOTOOLS_IN_SOURCE_BUILD=1
-
-# try to sync certificates
-# deprecated way: mozroots --import --sync --machine
-pkg_setup() {
- #this is horrible, I know
- addwrite "/usr/share/.mono/keypairs"
- addwrite "/etc/ssl/certs/ca-certificates.crt"
- addwrite "/etc/mono/registry"
- cert-sync /etc/ssl/certs/ca-certificates.crt
-}
-
-src_install() {
- autotools-utils_src_install
-}
diff --git a/dev-lang/fsharp/metadata.xml b/dev-lang/fsharp/metadata.xml
deleted file mode 100644
index eaa63a6d2041..000000000000
--- a/dev-lang/fsharp/metadata.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>dotnet@gentoo.org</email>
- <name>Gentoo Dotnet Project</name>
- </maintainer>
- <longdescription>
- Mono/.NET open-source, strongly typed, multi-paradigm programming language encompassing functional, imperative and object-oriented programming techniques. Most often used as a cross-platform CLI language.
- </longdescription>
- <upstream>
- <remote-id type="github">fsharp/fsharp</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-lang/mlton/Manifest b/dev-lang/mlton/Manifest
index 6c359832b47f..44c2ae357c1f 100644
--- a/dev-lang/mlton/Manifest
+++ b/dev-lang/mlton/Manifest
@@ -1,8 +1,13 @@
AUX mlton-20070826-no-execmem.patch 1236 BLAKE2B 1d708bba547f8ea3076bdd494a5e45f8352430b9a852c45296258b6371fd2bee07a7d2d9cb224bc426e8c364b07d8d37b92d98d6fc186b0217b0650ac961e128 SHA512 d6f323bc181656fbdfdf25e0472e7e13e93b565f3ba64ea9cc81fbcb6c935580c1811f783035a5b1c45be082a38f157610666276aad9fb36d3fdb009fe7ce1c9
AUX mlton-20130715-no-PIE.patch 2399 BLAKE2B a0af01c4eea65a38d788744f593303d8732a754de19230ce13ce14ce6368058840e9076934311385bed7951d94f1daed878847a57e70ac9330f4af575f35c1bf SHA512 ef0d675acfcbe05c1f810da2b9d684b4412a0f283e6025930c13d80912036ffc650972664f5a4fdd955e4c78c3564c751c1ba9bf279f738eca96801eeb57f0b2
AUX mlton-20130715-split-make-for-pax-mark.patch 556 BLAKE2B a98f9a6b01edfc19723ef20eaeb0e9046162e179f3c63c69f59d07a39e0b723c4b429c3f10adb6099f912340431e8ea7b06a63d397cb8feff46d3d7d256a0e22 SHA512 9d334c930abe38f222bdd16c7dbdb0b1e0a70955aa8832fd441c9443c53f9d66c3ec49c06f59de501c014a66c6265a6df64269e0534c0ffdae0115718febb694
+AUX mlton-20180207-bootstrap.patch 980 BLAKE2B 4128d0d3aae1e30c6b234e9cc3e0d91ee6de7338e2f8d4e8da7bb5b63ea62138db3148f8ec9ab16966983587dac7c9040a52aea80d21409d5d8fdbb020d13f7f SHA512 7657185d7f4c4e9bff4fd44f3991cd3d115ea0e1e4f6c3b702ecba74a3b2fcb7c1c0c47a814dc26bd3af7a523a92aac50df4d4ddb873eba938c2689ac6b5cf0b
+AUX mlton-20180207-paxmark.patch 728 BLAKE2B 05bb27260dc8007a815ce74276a537a48127b4c336472afca571c39b0e29368be5be79ae03c21940dde6bd37f79613817adc8f22d986d570fab4cb184051b141 SHA512 78526ab383f481663cc892938f74ad1783aa7a2b1fcfd7032a67c4489daa5d141877806fb16232b8f0843e7b4e001d3f76a9a171a8da6413cd921688f493f7f9
DIST mlton-20130715-1.amd64-linux.tgz 19512324 BLAKE2B 972688dcf6fc6ec17146e2597e6f5dab3b5df4e894697a98c68de61cf4728bf7e2e3ef1cee96befae90f9b555bed0b09cef846912225f8b770d20782fa833212 SHA512 ac41cf8b2afbba80ed25908b1842348eac1507b2aada103648171db1482358c4176b01d9266dfee053b20fc224653ec58ee9d3265672c02fa3774b7562a319bf
DIST mlton-20130715-1.x86-linux.tgz 18065793 BLAKE2B d05ca4f46fb35b0b819e2678f282943fc9cd8f701bdf2a20da68b285db4618401b4138a227352e8aacef9f604528c7fafc0973631115954cfd91e01e9dd01a9d SHA512 13a996952df27420f05f8290920055231156c8982c1cf3c31259d73e0c534258e2aad91596e51809719ffb0b74652aa052d296000f2ab99462714d4ef9a41859
DIST mlton-20130715.src.tgz 25606142 BLAKE2B 3fa3e8cf4991faef98e23ae4cbe9e0db5cae2e46ce27be57b784a81b576eeed17a179018e8b70d1264cb9595a3467900f034a2b4a7c114d1bac74025450741e1 SHA512 db273de47dc0059e830332b559918567f5153a0518e067ba71927e3705157f1984d6f6202201cef25aaef29d1a71a637e9a1cb30951e94dbfae4ab1a5e5d40d1
-EBUILD mlton-20130715.ebuild 3994 BLAKE2B 8864036d67b5746f67213f070325a1dd36afdd6f47a99eff4371ba21d07c64abe2720284b653a6bd17588c4bc7ee41abe98f9cecd998a975421afc5f16f61e48 SHA512 69d008b0d4522f331f071513b6ff67bf26e9fca0b4522d229a9d81ad52740670c64455f3cc1bcbefcd99f1c477cb8b39465ad1bb72e729c96c57d2adbc6d126d
-MISC metadata.xml 453 BLAKE2B e804be0b6dd925b830c5232690aa54ba1d602e7469e088a924f4aa2d80ec4abdfa83c21495c44a67dcce1878cf397515a0b52bbb3b7c951228c943696965c694 SHA512 019258148a954fbe475be30cf130a48fdcae1789dfadf478fc7f9724fcd2e6a1962485f2ccfa30b023af6b04ee69947007a805b66ebdab7b4180fc235197fdd1
+DIST mlton-20180207-1.amd64-linux.tgz 18772644 BLAKE2B 7fe2d9db7edfb2d3e301be88e90b7dffe1441ff315ddac1464ef42fb436be1a9dc4e2c03fdb93880779360aed04cb7662a1a5a733f2d4158082d228f718d8b93 SHA512 74ab847ff567cde365a113f8819bae69cc18df20c441a6c6666b600980d2687faf143311f42be21a261b2493dc5c45fbecb4737c599cf767c3680afec06c2e0c
+DIST mlton-20180207.src.tgz 25003695 BLAKE2B 8cddfe83c76e05fda446917ddc85035b3d74534fe4bc597a839cd13cb59a15538f40a3f68bb8f7136f9cf8cb27a582e88ca0d14b8f7a4582a202b3bd075f3c9a SHA512 3599159950e857d257abce92abf5c548dd9c0b0cdc4ba0d7cdf9badb5d997f73386cd1ff79f563221b394dd831cb344e287927f90683b0715678edb3ca0ae15a
+EBUILD mlton-20130715.ebuild 3998 BLAKE2B 8fce5cb495bf3c314e2aa280f756efc08d6ca316837875c66be2085fdab016987345758a44efcaa3e1a8975e813c93e25f20ff93a185e4bea3f4fdf10acb3a83 SHA512 1c25e4e15b227356f2ecc29ab83e4256cdffbc82229d45a268f4e3c1105a8e6bdf80282ce556069701678a162672fcec8fbba2c07e226858ffae59c8a114f9cd
+EBUILD mlton-20180207.ebuild 7024 BLAKE2B 2d0c9379e5c62c4037cf1e5af55ca9da9d4948418567fbf24d15f52804143e310a31d6f80c8a75e4a06f839b9dbef40df16cb602f2cc1ad2d84d709b8261e88e SHA512 cfa3415c31a527b9274376c6cd0bcb6317a93007b0766a98ccc574696badbe2dbf2a9da31113310a532777dafba69fca232a52a9c9bd297c03befb09ebb90491
+MISC metadata.xml 752 BLAKE2B 5a01dd9703df49651fee5d19e003b99315981907eaedc9f2a4c2247f4a6b6dfdbe52f7bd2d3f557ab768b2635d74202bfa4466907643a08fc605cb2d671ea8be SHA512 7fe1b98c03aba81adea9f9a6a9b8a77130ca95d4086204a3387c84eb33da4825d0ab97e7e9ca946e650436966bcb5a861010f067dc0ec39319ba539bee48ee08
diff --git a/dev-lang/mlton/files/mlton-20180207-bootstrap.patch b/dev-lang/mlton/files/mlton-20180207-bootstrap.patch
new file mode 100644
index 000000000000..5287a809f5aa
--- /dev/null
+++ b/dev-lang/mlton/files/mlton-20180207-bootstrap.patch
@@ -0,0 +1,27 @@
+--- mlton-20180207-orig/Makefile 2018-02-07 21:22:55.000000000 +1100
++++ mlton-20180207/Makefile 2018-02-28 11:28:00.639642560 +1100
+@@ -137,18 +137,22 @@
+ .PHONY: bootstrap-smlnj
+ bootstrap-smlnj:
+ $(MAKE) smlnj-mlton
+- $(RM) "$(BIN)/mlton"
++ $(MV) "$(BIN)/mlton" "$(BIN)/mlton.mlton"
++ $(CP) "$(BIN)/mlton.smlnj" "$(BIN)/mlton"
+ $(MAKE) BOOTSTRAP_MLTON=mlton.smlnj all
+ smlnj_heap_suffix=`echo 'TextIO.output (TextIO.stdErr, SMLofNJ.SysInfo.getHeapSuffix ());' | sml 2>&1 1> /dev/null` && $(RM) "$(LIB)/mlton/mlton-smlnj.$$smlnj_heap_suffix"
+ $(RM) "$(BIN)/mlton.smlnj"
++ $(MV) "$(BIN)/mlton.mlton" "$(BIN)/mlton"
+
+ .PHONY: bootstrap-polyml
+ bootstrap-polyml:
+ $(MAKE) polyml-mlton
+- $(RM) "$(BIN)/mlton"
++ $(MV) "$(BIN)/mlton" "$(BIN)/mlton.mlton"
++ $(CP) "$(BIN)/mlton.polyml" "$(BIN)/mlton"
+ $(MAKE) BOOTSTRAP_MLTON=mlton.polyml all
+ $(RM) "$(LIB)/mlton-polyml$(EXE)"
+ $(RM) "$(BIN)/mlton.polyml"
++ $(MV) "$(BIN)/mlton.mlton" "$(BIN)/mlton"
+
+ .PHONY: clean
+ clean:
diff --git a/dev-lang/mlton/files/mlton-20180207-paxmark.patch b/dev-lang/mlton/files/mlton-20180207-paxmark.patch
new file mode 100644
index 000000000000..00f4b84c7dc9
--- /dev/null
+++ b/dev-lang/mlton/files/mlton-20180207-paxmark.patch
@@ -0,0 +1,18 @@
+--- mlton-20180207-orig/Makefile 2018-02-07 21:22:55.000000000 +1100
++++ mlton-20180207/Makefile 2018-02-28 11:27:30.448517470 +1100
+@@ -51,6 +51,7 @@
+ SED := sed
+ TAR := tar
+ XARGS := xargs
++PAXMARK := true
+
+ ######################################################################
+ ######################################################################
+@@ -97,6 +98,7 @@
+ all:
+ $(MAKE) dirs runtime
+ $(MAKE) compiler CHECK_FIXPOINT=false # tools0 + mlton0 -> mlton1
++ $(PAXMARK) -m lib/mlton/mlton-compile bin/mllex bin/mlyacc
+ $(MAKE) script basis-no-check constants basis-check libraries
+ $(MAKE) tools CHECK_FIXPOINT=false # tools0 + mlton1 -> tools1
+ ifeq (true, $(findstring true,$(BOOTSTRAP) $(CHECK_FIXPOINT)))
diff --git a/dev-lang/mlton/metadata.xml b/dev-lang/mlton/metadata.xml
index 6a46dc0bbde8..e00a5b040ec4 100644
--- a/dev-lang/mlton/metadata.xml
+++ b/dev-lang/mlton/metadata.xml
@@ -6,7 +6,14 @@
<name>Gentoo ML Project</name>
</maintainer>
<use>
- <flag name="binary">install a binary version (need to do this once to bootstrap, until smlnj is supported)</flag>
+ <flag name="binary">install a binary version</flag>
+ <flag name="bootstrap-smlnj">Boostrap mlton with dev-lang/smlnj
+ (takes a long time)</flag>
+ <flag name="stage3">After bootstrap building mlton with
+ dev-lang/smlnj, rebuild mlton with the second stage build of
+ mlton (recommended).</flag>
+ <flag name="pax_kernel">Enable if the user plans to run the
+ package under a pax enabled hardened kernel</flag>
</use>
<upstream>
<remote-id type="sourceforge">mlton</remote-id>
diff --git a/dev-lang/mlton/mlton-20130715.ebuild b/dev-lang/mlton/mlton-20130715.ebuild
index 8fc9db5dee2a..a306bfabb1c3 100644
--- a/dev-lang/mlton/mlton-20130715.ebuild
+++ b/dev-lang/mlton/mlton-20130715.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -21,9 +21,9 @@ SLOT="0/${PV}"
KEYWORDS="-* ~amd64 ~x86"
IUSE="binary doc"
-DEPEND="dev-libs/gmp
+DEPEND="dev-libs/gmp:*
doc? ( virtual/latex-base )"
-RDEPEND="dev-libs/gmp"
+RDEPEND="dev-libs/gmp:*"
QA_PRESTRIPPED="binary? (
usr/bin/mlnlffigen
diff --git a/dev-lang/mlton/mlton-20180207.ebuild b/dev-lang/mlton/mlton-20180207.ebuild
new file mode 100644
index 000000000000..b8df540a09ff
--- /dev/null
+++ b/dev-lang/mlton/mlton-20180207.ebuild
@@ -0,0 +1,264 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit check-reqs eutils multibuild pax-utils
+
+DESCRIPTION="Standard ML optimizing compiler and libraries"
+BASE_URI="mirror://sourceforge/${PN}"
+SRC_URI="!binary? ( ${BASE_URI}/${P}.src.tgz )
+ !bootstrap-smlnj? ( amd64? ( ${BASE_URI}/${P}-1.amd64-linux.tgz ) )"
+HOMEPAGE="http://www.mlton.org"
+
+LICENSE="HPND MIT"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="binary bootstrap-smlnj stage3 doc pax_kernel"
+
+DEPEND="dev-libs/gmp:*
+ bootstrap-smlnj? ( dev-lang/smlnj )
+ !bootstrap-smlnj? (
+ !amd64? ( dev-lang/smlnj )
+ )
+ pax_kernel? ( sys-apps/elfix )
+ doc? ( virtual/latex-base )"
+RDEPEND="dev-libs/gmp:*"
+
+QA_PRESTRIPPED="binary? (
+ usr/lib64/${PN}/bin/mlnlffigen
+ usr/lib64/${PN}/bin/mllex
+ usr/lib64/${PN}/bin/mlprof
+ usr/lib64/${PN}/bin/mlyacc
+ usr/lib64/${PN}/lib/mlton-compile
+ usr/lib/${PN}/bin/mlnlffigen
+ usr/lib/${PN}/bin/mllex
+ usr/lib/${PN}/bin/mlprof
+ usr/lib/${PN}/bin/mlyacc
+ usr/lib/${PN}/lib/mlton-compile
+)"
+
+B="${P}-1.${ARCH}-${KERNEL}"
+R="${WORKDIR}/${B}"
+
+mlton_subdir() {
+ echo $(get_libdir)/${PN}
+}
+
+mlton_dir() {
+ echo "${EPREFIX%/}"/usr/$(mlton_subdir)
+}
+
+mlton_memory_requirement() {
+ # The resident set size of compiling mlton with mlton is almost 14GB on amd64.
+ # http://mlton.org/SelfCompiling
+ # Compiling MLton requires at least 1GB of RAM for 32-bit platforms (2GB is
+ # preferable) and at least 2GB RAM for 64-bit platforms (4GB is preferable).
+ # If your machine has less RAM, self-compilation will likely fail, or at least
+ # take a very long time due to paging. Even if you have enough memory, there
+ # simply may not be enough available, due to memory consumed by other
+ # processes. In this case, you may see an Out of memory message, or
+ # self-compilation may become extremely slow. The only fix is to make sure
+ # that enough memory is available.
+ [[ ${ARCH} == "x86" ]] && echo "2G" || echo "4G"
+}
+
+pkg_pretend() {
+ if use !binary; then
+ local CHECKREQS_MEMORY=$(mlton_memory_requirement)
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_setup() {
+ if use !binary; then
+ local CHECKREQS_MEMORY=$(mlton_memory_requirement)
+ check-reqs_pkg_setup
+ fi
+}
+
+mlton_bootstrap_variant() {
+ local b=""
+ if use bootstrap-smlnj || ! use amd64; then
+ b="bootstrap-smlnj"
+ else
+ b="bootstrap"
+ fi
+ echo "${b}"
+}
+
+mlton_bootstrap_build_dir() {
+ echo $(basename ${S})"-"$(mlton_bootstrap_variant)
+}
+
+mlton_bootstrap_bin_dir() {
+ local b=$(mlton_bootstrap_build_dir)
+ if use bootstrap-smlnj || ! use amd64; then
+ b+="/build/bin"
+ else
+ b+="/bin"
+ fi
+ echo "${b}"
+}
+
+# Return the array of multilib build variants
+mlton_multibuild_variants() {
+ local MULTIBUILD_VARIANTS=()
+ if ! use binary; then
+ if use bootstrap-smlnj || ! use amd64; then
+ MULTIBUILD_VARIANTS+=( $(mlton_bootstrap_variant) )
+ use stage3 && MULTIBUILD_VARIANTS+=( build-with-mlton )
+ else
+ MULTIBUILD_VARIANTS+=( build-with-mlton )
+ fi
+ fi
+ echo ${MULTIBUILD_VARIANTS[*]}
+}
+
+# Return the last multibuild variant
+mlton_last_multibuild_variant() {
+ local vs=( $(mlton_multibuild_variants) )
+ echo ${vs[${#vs[@]}-1]}
+}
+
+src_unpack() {
+ default
+ if use binary; then
+ mkdir -p "${S}" || die
+ fi
+}
+
+BIN_STUBS=( mllex mlnlffigen mlprof mlton mlyacc )
+
+mlton_create_bin_stubs() {
+ local SUBDIR=$(mlton_subdir)
+ mkdir "${S}"/bin_stubs || die
+ pushd "${S}"/bin_stubs || die
+ for i in ${BIN_STUBS[*]}; do
+ cat <<- EOF >> ${i}
+ #!/bin/bash
+ exec ${EPREFIX%/}/usr/${SUBDIR}/bin/${i} \$*
+ EOF
+ chmod a+x ${i} || die
+ done
+ popd || die
+}
+
+src_prepare() {
+ if ! use binary; then
+ # For Gentoo hardened: paxmark the mlton-compiler, mllex and mlyacc executables
+ epatch "${FILESDIR}/${PN}-20180207-paxmark.patch"
+ # Fix the bootstrap-smlnj and bootstrap-polyml Makefile targets
+ epatch "${FILESDIR}/${PN}-20180207-bootstrap.patch"
+ fi
+ default
+ $(mlton_create_bin_stubs)
+ if use binary; then
+ pax-mark m "${R}/lib/${PN}/mlton-compile"
+ pax-mark m "${R}/bin/mllex"
+ pax-mark m "${R}/bin/mlyacc"
+ ln -s ${R} ../$(mlton_bootstrap_build_dir) || die
+ gunzip ${R}/share/man/man1/*.gz || die
+ else
+ local MULTIBUILD_VARIANTS=( $(mlton_multibuild_variants) )
+ multibuild_copy_sources
+ if ! use bootstrap-smlnj && [[ ${ARCH} == "amd64" ]]; then
+ ln -s ${B} ../$(mlton_bootstrap_build_dir) || die
+ fi
+ fi
+}
+
+mlton_src_compile() {
+ if [[ ${MULTIBUILD_VARIANT} == $(mlton_bootstrap_variant) ]]; then
+ emake -j1 \
+ "bootstrap-smlnj" \
+ PAXMARK=$(usex pax_kernel "paxmark.sh" "true") \
+ CFLAGS="${CFLAGS}" \
+ WITH_GMP_INC_DIR="${EPREFIX}"/usr/include \
+ WITH_GMP_LIB_DIR="${EPREFIX}"/$(get_libdir)
+ else
+ export PATH="${WORKDIR}/"$(mlton_bootstrap_bin_dir)":${PATH}"
+ einfo "${MULTIBUILD_VARIANT}: Building mlton with mlton in PATH=$PATH"
+ emake -j1 \
+ CFLAGS="${CFLAGS}" \
+ WITH_GMP_INC_DIR="${EPREFIX}"/usr/include \
+ WITH_GMP_LIB_DIR="${EPREFIX}"/$(get_libdir)
+ fi
+ if [[ ${MULTIBUILD_VARIANT} == $(mlton_last_multibuild_variant) ]]; then
+ if use doc; then
+ export VARTEXFONTS="${T}/fonts"
+ emake docs
+ fi
+ fi
+}
+
+src_compile() {
+ if ! use binary; then
+ local MULTIBUILD_VARIANTS=( $(mlton_multibuild_variants) )
+ multibuild_foreach_variant run_in_build_dir mlton_src_compile
+ fi
+}
+
+mlton_src_test() {
+ emake check
+}
+
+src_test() {
+ if ! use binary; then
+ local MULTIBUILD_VARIANTS=( $(mlton_last_multibuild_variant) )
+ multibuild_foreach_variant run_in_build_dir mlton_src_test
+ fi
+}
+
+mlton_src_install() {
+ local DIR=$(mlton_dir)
+ emake \
+ install-no-strip install-strip \
+ DESTDIR="${D}" \
+ PREFIX="${DIR}"
+ if use doc; then
+ emake TDOC="${D}"/usr/share/doc/${PF} install-docs \
+ DESTDIR="${D}" \
+ PREFIX="${DIR}"
+ fi
+}
+
+mlton_install_bin_stubs() {
+ exeinto /usr/bin
+ for i in ${BIN_STUBS[*]}; do
+ doexe "${S}"/bin_stubs/${i}
+ done
+}
+
+src_install() {
+ $(mlton_install_bin_stubs)
+ if use binary; then
+ local DIR=$(mlton_dir)
+ exeinto "${DIR}"/bin
+ doexe "${R}"/bin/*
+ insinto "${DIR}"/lib
+ doins -r "${R}"/lib/${PN}
+ exeinto "${DIR}"/lib/${PN}
+ doexe "${R}"/lib/${PN}/mlton-compile
+ doman "${R}"/share/man/man1/*
+ if use doc; then
+ local DOCS=( "${R}"/share/doc/${PN}/. )
+ einstalldocs
+ fi
+ else
+ local MULTIBUILD_VARIANTS=( $(mlton_last_multibuild_variant) )
+ multibuild_foreach_variant run_in_build_dir mlton_src_install
+ fi
+}
+
+pkg_postinst() {
+ # There are PIC objects in libmlton-pic.a. -link-opt -lmlton-pic does not help as mlton
+ # specifies -lmlton before -lmlton-pic. It appears that it would be necessary to patch mlton
+ # to convince mlton to use the lib*-pic.a libraries when linking an executable.
+ ewarn 'PIE in Gentoo hardened requires executables to be linked with -fPIC. mlton by default links'
+ ewarn 'executables against the non PIC objects in libmlton.a. http://mlton.org/MLtonWorld notes:'
+ ewarn 'Executables that save and load worlds are incompatible with address space layout'
+ ewarn 'randomization (ASLR) of the executable.'
+ ewarn 'To suppress the generation of position-independent executables.'
+ ewarn '-link-opt -fno-PIE'
+}
diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest
index 194178c2f0cc..6556174da07f 100644
--- a/dev-lang/nim/Manifest
+++ b/dev-lang/nim/Manifest
@@ -6,5 +6,5 @@ EBUILD nim-0.16.0.ebuild 1175 BLAKE2B fd12bb32d3aadc6631aabf7be51b1cc09eaaeeff9a
EBUILD nim-0.17.0.ebuild 1144 BLAKE2B 0010e83ef4dd92447a0414098b06be1a66f07bb33b17f56a523239e78d2978b570843220211261ca83271238161feb1835fab89a480a31ad435a94ed9bde4934 SHA512 a9ccbf0dd0e1dc43fa7a1756d8400478cf70bf94e7a7b7a5a9c595543f541fd3fdaa563af5b2093cc5c2de32747658820bef7420924db94f5f9255890723fa7a
EBUILD nim-0.17.2-r1.ebuild 1498 BLAKE2B 1416c3a761c9a1a6419e4ffb102d8dacba114800e4b115155491bedce3e4df7623bda95c49bd0eccdc092c8253848025a002126783109b2773c8da6720d2ecdf SHA512 54510a0b9a95be76a3b6a2a4badf77b26fdf3cf6438232a50ca021182db7f762960bb4119f26008f09cce2781cc113ba22e1a74fe390f546c26c3a28853d3733
EBUILD nim-0.17.2.ebuild 1330 BLAKE2B 6cc7a6a783e3c51a57946ffbd2edf4986b8484378e3f3779f008b3c5d77032eed2b008dfa7c22aa2ab800426151f6b6d05239e15ae7b62e0e3b9133c7c038d36 SHA512 6d5639bac184c4b31e7c62366970b745f151c3853464666549e543c8ded6f02e8d3a559df5b7e3ef724cbe9e1952630a1f3fbadaa1bbd0ef6312ace4306fa9d4
-EBUILD nim-0.18.0.ebuild 1507 BLAKE2B a98785218dc1af4f1e74e0fd0893a439217c7a0869a41208e2aa2652288908198cf5a1b3b0081e7dbdde1c1c5baf73fdee55fd26b25055f2c7e4166d70a5c14e SHA512 cc33dfade3120114c1877d0d7ee90a43ef4899f65e20debb856d9e353a0be8aeb7b0362de5eccf9bdd168025637a5eb539b6c6ca134d9fa7471c4a5a9a273a56
+EBUILD nim-0.18.0.ebuild 1571 BLAKE2B d1210b325c5f1148ac26acb6c62129d410d7f2dd1a3275c03e8e9262fed06ff9c9a1b79b2b58baa5fa201e7eb9e4ce18f717e245ecd2a3bbf3af77ee71e31a98 SHA512 9de1bac7ad584e8e4c62ff98f2d2631d41a21997f5ce4715206e39af3f977354cd72d1f25e29de83fab5208e093c13a58b7d566c72f2b69d50f4c8071f1a5047
MISC metadata.xml 328 BLAKE2B 9205920d8c9b12118456bd186f2e882b3e6f75b7cc3f766def1e79e2e4f7ac695370409ff1555e379516606568f181f4ba3625322f70e41bfffd21d319b0035f SHA512 bf02bc0a8c25d6e157b7ab1ef87c2eac3241d42bc4cf0632a159dcb5d429051018848be81d0cbce228124660ced8694f5de48d64fe10bc7ff5b536b7e7579e49
diff --git a/dev-lang/nim/nim-0.18.0.ebuild b/dev-lang/nim/nim-0.18.0.ebuild
index 0f55aec38568..53766c3e8a09 100644
--- a/dev-lang/nim/nim-0.18.0.ebuild
+++ b/dev-lang/nim/nim-0.18.0.ebuild
@@ -14,6 +14,8 @@ SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="doc +readline test"
+RESTRICT=test # need to sort out depends and numerous failures
+
RDEPEND="
readline? ( sys-libs/readline:0= )
"
diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest
index df1c1398babb..858ecee526c1 100644
--- a/dev-lang/perl/Manifest
+++ b/dev-lang/perl/Manifest
@@ -12,7 +12,7 @@ DIST perl-cross-1.1.8.tar.gz 98686 BLAKE2B e4fa78e99cb0b93025468d6035dfa352e7886
EBUILD perl-5.24.3-r1.ebuild 17404 BLAKE2B 28a0cc578bc96e1890add1e89aedeace9b1b9453a21e58fdfd0d56fa8c6907115716538ba22da233af5df4a760b18c984179f03372cd250363b5e649d1a4b2c5 SHA512 8a7beef95e8e85a4f1538d41330ef4c2fd50d90761ffd74a43a62b4439ab708e50bc182ef3ee7a62ff66e97264ae5c4e3f4bd4633f3ebd49f0c4a527bdad1fb2
EBUILD perl-5.24.3.ebuild 17070 BLAKE2B 9e99b0f9064e85d7dbd935cc3ad72b91be4ea248cd1d74fcd2f4ec93ebcffeef3ad1c94a03c0b9a36ac9956496283891bd95421aa003eef0e1b22173deaa736a SHA512 150e72fbb0c05884b2c63e62cc76f42aa1f9f6e684f0d7bcb1169e80f970bef8aab5b3f9f82c6f81a54ad9232f72e2b3bff09927de57b60f1d6b835c012551e4
EBUILD perl-5.26.1-r1.ebuild 19253 BLAKE2B 3d192d2a79bb036593ba46bc02fa901ddfbf4b4e53692f6635fe4f94b530888aab7d5e82b3cd47a74c24828052e53647373d71749b0fce61d0756972500ca8b0 SHA512 650d1573aaf99c30f5df0cb1ca8830cdf23e43b2a20acc0b3d75a52777f5b69df874894e929802c728bdfa6c6a7017f379ee56745b1dcf43862c66564345c5a1
-EBUILD perl-5.26.1-r2.ebuild 19470 BLAKE2B 2037a0dde36c6a5db536a0d648acd3145c5032d5976c521053af12dd10de4b49505457414fb0c3a5313015b0c7cc5f769c18912b5518b1791493a81826e5e1c9 SHA512 7884bbec500b42f3521c291b8956b55d7dd508edd417619757b138615f8a4ca4fb6a66b5e4f5b127f55801761b776a5263379a4407241b165a2f0856831deec2
+EBUILD perl-5.26.1-r2.ebuild 19666 BLAKE2B d89c12581fdd3c3ba285118745335e61dc26077aaf4ade12b0f875363c217f0029ccf432616c7ec2be337d0bf09c2be26c13f75171682d3d1d84de597f2238b0 SHA512 43877a272bfd106111a81eb89a4de94dadcd76571208ce198854f9822dbd0575ed4262d0e90e31fe65b27a3579ec25d3c7ba06ab8481d0fd49c9238b5a83c3be
EBUILD perl-5.26.1.ebuild 18983 BLAKE2B ef92b27b06f0866a1e7e7a3d35f87d8378e1d6df1a42ab68e03682c978f35429f83f23beef2921a214382ecd84e706bddb4a49d1a218d5dc133b71f15faa327c SHA512 903eee39e82711ff898fc7b3628bd06baf7d5ce6ca0b685b7852991755cf7779cc869e076a14a13293eab549d60453026411d3dc2b277873184975ff9ff491c4
EBUILD perl-5.26.9999.ebuild 19246 BLAKE2B 46e5b5a335ce98d2af68572a58453ba962c3aad3596cad0e88766f3d15c86a0fbebd00469ad90dc3f9c2cdacdc61a87392cc48ffab03cc6b86e42954ee9deff4 SHA512 2ac4f404c2080207756f74468a32c86ebceefff8c9b7b4f1b7ace2591c40f8aefe90b524d96b170f94c82f395c5fbe172a8e5f80ee83f1a1fc569ec65fa59f75
EBUILD perl-5.28.9999.ebuild 19238 BLAKE2B 1c1ab72e0bfa03b353989e3eadfd12394a19fddef38ce694a63d0c87df4d99ab2c54d789faccd3b614711aeeb63a8146de74d373899af81c453fd46f8b00d4ef SHA512 70d8878281bcfa9d78d6ba87c8f62b575707777676f0f97e6406e2f3bad1b5ededf0e58f1b7c3b286f86291691643b7119cff4f32456c1148db32ceed3d21696
diff --git a/dev-lang/perl/perl-5.26.1-r2.ebuild b/dev-lang/perl/perl-5.26.1-r2.ebuild
index e23f6e792be6..3a1446712460 100644
--- a/dev-lang/perl/perl-5.26.1-r2.ebuild
+++ b/dev-lang/perl/perl-5.26.1-r2.ebuild
@@ -330,6 +330,11 @@ src_prepare() {
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
fi
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # do NOT mess with nsl, on Solaris this is always necessary,
+ # when -lsocket is used e.g. to get h_errno
+ PATCHES=( ${PATCHES[@]/*libnsl.patch/} )
+ fi
default
}
diff --git a/dev-lang/smlnj/Manifest b/dev-lang/smlnj/Manifest
index 9c8e7cb5b1a7..a33322106a82 100644
--- a/dev-lang/smlnj/Manifest
+++ b/dev-lang/smlnj/Manifest
@@ -1,3 +1,6 @@
+AUX smlnj-110.82-pax-p1.patch 5812 BLAKE2B 0b040462d910b769d1ee59aa240c78583a8cf708558cdd87b13b6795cc5fee67b8005db618e0320a64d5f86bcc47c9e00caaa398f664852667039312e9f87f84 SHA512 95a83772453997539fccf88b34d3afc436f4c3737a0d1e16d0c5dc4ce219aaa1f7b378fbfdc7c88dde23a9167678d99198e8668fe98547a15eb06abf1d14c368
+AUX smlnj-110.82-pax-p2.patch 7423 BLAKE2B 93e3ab5de34c729b5977ac08ba1172db66a044ca6de910404c2365dba11d5224c421cfa3f0b9978fdb80ebd822f3840170455840d08ab7139e7f1bbec4717735 SHA512 918c2b741ed2ee6d1be156489b0c085221587c94a02dcb915a69499c9bf64cba77f74cb92bcbf759f96f2dbd5bb114e026c62c52160643bc77f09206ffffb33c
+AUX smlnj-110.82-pax-p3.patch 8416 BLAKE2B 3b466d7a10709572b17ffd86b0bbfd8cb0b68d3566be183fd38b1821f2c0d59dd46a45de14bee1c0a0c0567c5b16076f5ff2493ac9fbe7600f2dea1fa1979fc5 SHA512 a9c920855fac7e41c6a7107ed3d220d1d64938d9865e66ecd91a2021b75035601268db408b944d5a9cd357afb70d2fa9b744a860e8c4731ef8946f23076565c7
DIST smlnj-110.75-MLRISC.tgz 1422655 BLAKE2B 0b4b0575647cafa370bdd650cf44ab2033c2ba8c39e94d1cf9c5444b44c06e3f26f6ee033cc26bbfbf79700070fd1ea535408607ab370af6ef1b7841efee90cf SHA512 d1c9bacc135836bc83e5a0f99585d2c8007ecb2eaa9217489c9d5b2a845f82a48f3666b72ae59a016dca3b66bd56c9739461376e2ac628d01646182990e93c84
DIST smlnj-110.75-boot.ppc-unix.tgz 5772853 BLAKE2B afb4628af5ac15d149680a8c1fa309cb8fd8518d5b8e82350e3f06288b03ab25d06f3510a97880b2fe2c6e03ffec481f836726f81243180ae5696f7e7a16f0fd SHA512 cf34f084a7bca7c1d5c21fa9f356be0224ec886512a44f3dfea0cb9e1af9954662ae6e602250e9c834ccc6e1d3556ff1839a28505776038183b7b77bdb9d6dc7
DIST smlnj-110.75-boot.sparc-unix.tgz 5900426 BLAKE2B ea11256ebfb2cafdf1ae785a3a4b84984cafecd1a07132fddc66e37a27917339f84cfc421881ba5ff1285738b5d749afcd012ace76e1df07f371b3702ba7d66f SHA512 19f26bb68d94f03dc5bde68b36c4d6efbe9efd25fe089b3ce16f2ff2baa499af79d18ce2d834900bcf3e709f64c00cdacca149d0cf264fe86c23f93fb94dc1fa
@@ -20,5 +23,30 @@ DIST smlnj-110.75-smlnj-c.tgz 10531 BLAKE2B 602a7b98690277c7311080d46c5e3aceadd3
DIST smlnj-110.75-smlnj-lib.tgz 396628 BLAKE2B 62ae526edb69b3b7695039ec27d33b09200fc23f51b190dc4bc445888693be258fbab5853df6c565bd2fc9a32ada772bfb19846c7190ac912165d4f219640a65 SHA512 47d20c09fbd0a6e59db429e02b55b6307f5c61a9166bfc839261a21267da6e4ca0f99aa1080b2a8556a6046818177ad61b854a2dac0248b17a2ef79eac4ad35d
DIST smlnj-110.75-system.tgz 227376 BLAKE2B ee1d9c5880a3168a30bd8eb6543b17fab81131ae8a58978511ab4ae5aa6add32092868cb39b8bca3d85308f661ea02c5e3a78311232a6b12c12a89685aae8e17 SHA512 ee6a941f269d51bdd48328c35ae642d6b5f35ef7e9516fef58fad7f6ac3b4a527678265eb7a8a9783eb5e483713fbade17cd6e204234fb9419ad430e42a536a4
DIST smlnj-110.75-trace-debug-profile.tgz 3902 BLAKE2B 54e5152b250776806b1f3a086fdf2e684b67b75b5505bce253deb7eebb4339259ca77a737a9ab0c25f7f92bf8c19055659a73d8ad120f932f8bab61e5f362d18 SHA512 b2eed46e58f7b2dd6857debea4ae329dcc79946bd59a63747746d916b2dc29866d3e23a3accd678a981f2ebed0924d1fe1d03744000e877313abc33b144ec694
+DIST smlnj-110.82-MLRISC.tgz 1435372 BLAKE2B 1b18539d98a7339fc4062ea0e2afaddf67f6195719798a6041f456b904b6476f6c830c4529e9756040a6bdce32d5e6b271bd73d7f89c1df05df42e0030b6dc95 SHA512 23c0e4cb8432d39b4df8e51d06762c96ae6223a860bacb15e07020b17d7020667f5a8b1ad62b1ed17ff97f3f8fcee4899b70ac62979f12a4d7fd470fc968f3a0
+DIST smlnj-110.82-boot.ppc-unix.tgz 5666299 BLAKE2B 6c0e7dc0408f731bc2b26d3d962e88c5c2d678fb1ac5783e7252cb8ae6b26b98a3a9a4fe8e135198c3260f5735be4e98db123d4baf6cee620b8fe85780ab0a80 SHA512 5b3491ba2d264716579ec6070d063ab707aa04a4e74fcdb8ab47632e0660b15dabf3502719374dfde101583ebe4a88590792a8c790a7f4bb1c010ab907738569
+DIST smlnj-110.82-boot.sparc-unix.tgz 5788662 BLAKE2B 623e30a97714e83487085a83261f571a91ab587f5d7741363bde804941dee7348b2e9546292ca022e362524f0645f7aa8c019ccdbe786fa4c0348861e49ad556 SHA512 d719c5415c433f7aaf3dcc53f748ca6839e62a54819e4e66e26470104edc3fb7e960595e7ea859f1507f7da792fa52ecaebe4e703534a96f6a8dbfceb29ad8b0
+DIST smlnj-110.82-boot.x86-unix.tgz 5735380 BLAKE2B 1624e75f8a6518408cae8ccf36b5f2f4348bb8553794725b7e509636cfd62fed5ebbc2b9e29ce1eb5ec9f5264381dd93c3de1ccd6c22edb4bf9026f599046d02 SHA512 e1371c11d083c61f747b8f8154c60612853aa2387450b0abbd918c6096f05519a0258cc8a8744f1b486e5b8e984ce3ab5a4bb454a2d14c2d5a74aea41220d428
+DIST smlnj-110.82-ckit.tgz 194555 BLAKE2B c4dfab41c02f21ae088c7ca10c5c40c1f71bdc9f6b8b2721e10ac25ac4351c57359927f111f0801175ed32e8849e01ae83fb58758bc34203cb605c74dea109c7 SHA512 d753d22c2f382d8b91f34f7e6bfcadc8ff5cde051909d3344eb1eaf2adfaaa75420d31cdddfe1cdcf77cf146dc5800cc05fd0896c5942b6edf12533661d09459
+DIST smlnj-110.82-cm.tgz 217857 BLAKE2B f7d142bfa4fd2666ec2ddc4ef4c0bec90063d6e7c711b8435bda116c61197943964712bec490f765f5abfe8dc64d270b41cf8521ad4e9ee9a8536cb1be1317b0 SHA512 940436242ca5f077b03ce9e5b9fa5b6e4c7fe6ddbefc628644bdef9c5e672bc4ba50aa6814c0715d364d9d1f5ef29231e42ba11d34dc8a70d95f023874b46f43
+DIST smlnj-110.82-cml.tgz 106141 BLAKE2B 3ffdba33d9a84e796d48248cc2c6eeb33e7bd560cf22dd212ca4b0892f5144458adb02e8a4f933fe11a034b46e885e65927340891ef1c095107726af40edf6b9 SHA512 2fe4b64c61c2228bf6439dbd0403a068151115358d9caebdf9abf0f18ada37c77492e4debb02af0fcddda0504e280e8574144a974d74b5f877a8dbe747f18680
+DIST smlnj-110.82-compiler.tgz 825030 BLAKE2B acd15722ef1f286119dec556e031b6b618773cc78516108a71d3d616cf70b12c2ab600056915a3ec9a5260cee35854ab24c2b509bd2990564d595d010ebabd86 SHA512 775407372d85d9a6c45cc49ee6c35503d54d9f737c9c6994d4e5c9ed7eb6d48e4d9e57fa187dbc154135d478adbdc5f2abd04346712ee989fc7f022c4e670ef7
+DIST smlnj-110.82-config.tgz 511859 BLAKE2B 5c1419a37ccd5646b797ea5db25766f2c361df2b9195e552bfbb2dac97d4b55dc17bbeb0f483d1fc6e66767bf5de055e4bf0faf37092f95abbe133b681fd8381 SHA512 425c84a6a1c824008d7fb4936134df2e9cbe9229eba9ce4a81fea694659ae0d63024f1e291500b57a3e57828fdb9be791fa6abb13253a3b9e5adb9fe52a1e6d4
+DIST smlnj-110.82-doc.tgz 198542 BLAKE2B a566528ac32de141473da6641e7b3c3ddbb1614aac9e41508aa5fae4d7b6a198efc3bdb2e29f38ef20f2c14183a09fee1a91ba1ad8e34591642a10d213b5b19a SHA512 2d1a464f57d1321dad3032f591b06ac3e87130fa6403fba7a45312de0a6c29bcc2afa7e6d0a130a83abe1a6ae7ed19023de11d270bc25dbc66d9f51d8ffdfacd
+DIST smlnj-110.82-eXene.tgz 703173 BLAKE2B 259d1a2b6fe42a44789e0cebd5ef9adee6f5a36133df3b462d6fdfab364a2721e89b9b352b812d97ccce455af1f05d641a7bb74c424301f42e0ea9d876cfea66 SHA512 ccfecf09863bbb624d3397a44d6e0723cef7f27dff4ed9dc13dce8aad9a9f05a9008d452096ac8bf456be46a235e432f8017fe13129085905fe97dad32217659
+DIST smlnj-110.82-heap2asm.tgz 1321 BLAKE2B 2efe4425cdeed930e6d9c03347e92546c6cf57aa2955881bb847386427bb1f185612ba829de3be0cb15f5b565c289a6dd69b1a2b4748fab6e21fc24cd0499f5e SHA512 fde524f00b8cde5ea188eb7d3003c242b4ebd37ff583bef79e788c46472d842900ced3dbf50012d8ba1abdf2fd1492ea5d1fad6cec3cb19fd59617052e814b80
+DIST smlnj-110.82-ml-burg.tgz 36350 BLAKE2B b267d711cd92750207a0ec6468d071903e34c0f6f88169213b58490bde7f04440a1b7144c8cd9c8fa10e5706512815f5043fef435565a902a81ecb8e8f5f7748 SHA512 737caf8df11f8d023d98a325bb30c6606b16630c263e82440c1f16e3f4a2c90a2673798782d5e42b0d80b5f10dde95cc41ac99d92f195577f47ab326b3fac745
+DIST smlnj-110.82-ml-lex.tgz 33170 BLAKE2B c706899dcdb2751aa10a25ceca510b6bbbb1cac920719cd328e15f60f21b8929d17ca98f612cb37271f9cba2472ea7283e3a84b7d935bd361e599b668d0ca466 SHA512 c126a76e33678d214034beb6777ed4f466ffa63433bc953cbdacfed523aa9f8f6166a162632a49f538bb71ef24c1f4feeaa6278d539b258ea1e0f4ed29fb102a
+DIST smlnj-110.82-ml-lpt.tgz 264854 BLAKE2B a6bb9d92077c98115b6592a549534d54323c6f1d44bfab1c4c01aad13d47ba098892405b3a4db9936cdaf711b2e8196e7abffeb8ef662b7d8467019816102033 SHA512 4b09262582336d2f1506d37ce8cfce3284fa8bd3e90b18872e8d24e27226f404c944668f45f5c49aa492a3c6e4a0a732b08ec9c5d4b6d036332b35813be5cec2
+DIST smlnj-110.82-ml-yacc.tgz 100039 BLAKE2B 0cf4caff0a8ed98e03b324a1b984fcd248e234e1ea7284d927144bb853017c42ec1d9f587d1039081536b6142a0b191ea4024bfb3de3a943f8e621edfc9b3181 SHA512 d527eaf4e2de72076996fa1fc9d415dbe9735bcff7c8be3f8b095ed51c19f426b702d2034c6bb39990275c04e59dfaa1e36606dcf20e7f4fe1aee07ec5116428
+DIST smlnj-110.82-nlffi.tgz 74495 BLAKE2B 00c7dfb0b3678d82cf073e55cd08b447184282005053c75e6f24a9581a4a975c9259e14dcf584dcdf9b32e1fe2b8773c08bf36327ced7d994748ac9750d56e19 SHA512 e24815787bcd57da97cb149d5c7521dba658f0fff88927332d658c40627bc0fbe517cb6cc4d27bb7f624dcf705c75e882a5fe765266b2ac2241b2e0948ab0043
+DIST smlnj-110.82-old-basis.tgz 969 BLAKE2B 9923870b31b6301d51d0663d243ec476132c7f3ffcdbdba94f9397b796f5fb5fb2dd8fda4fde17c6b74a4fe52fd80ed2c5153a44ee9f1e125b6ad1844447efe6 SHA512 140441f3c83811eda603ae876fec80e2e213129e7d73e57e68235feca2e4d964b6768cdd406ce58422df0f18479d53e45f58f4d3ae450c03aab41dd933cb275c
+DIST smlnj-110.82-pgraph.tgz 5447 BLAKE2B d7d4807392cf47327b34e626d33376d387befcf0758f2fbc43f49a400eef6684e7fa6586d4c55e3c47731224e37cfbbf0d2b28cdd34c51fbfec519748feb2d73 SHA512 450335c2627ca92be2af48ad701b65d71cccf5b1511d41e6cb66d0cacd767361e914a1f00f3a883e0bd6a1a3438451bfa801d087e438932f6ea1e38397ffc226
+DIST smlnj-110.82-runtime.tgz 338575 BLAKE2B 27e9aa2764df9e525ff55dfc726bb9505e7aabae75aed564271081daf5a15ed7f4521042b221d50a555de56234cf24ffc9847efe9211e063b0298b422286b318 SHA512 f1aa053cedb38c64f5049079a9c7c5661fedce379f701f43a3ac104f2d305141d229c06420e986cd6f5449b33e376fd8fce219cacadad510a75df8e51d03485d
+DIST smlnj-110.82-smlnj-c.tgz 10544 BLAKE2B 6c096fbb8a8f135ac0fac1b4be6c4e4521dd0321c3a40c48c27218854104a2420049989968ef7866c2bed58e2beb55071d71fd363fb18fa830f6272f7faa7b02 SHA512 a1beef650094abbce6412bad7ffd7d18114e4b0394eea2df7261a93dc9336873e7ac89d1b57218f43663bbb1c7effd314d0517ef918207d362e057c00c44aabf
+DIST smlnj-110.82-smlnj-lib.tgz 449307 BLAKE2B aa6d21c608d89fc8696075ad13fa5179ee9a80a54f8dd8a446fa148065807a4094048b6da3537c222ff59cf0a6f837706cb6797d0873ac126ca0a3d743b5c7c7 SHA512 9e85b09e8bb4b253da7f0bea44bed55792a022967aa550e3ab0203566b84c6b8e126d91d4a0365c9bdb618d8e5bc1643ecd74ae30d750ff002d81dfea1c809ed
+DIST smlnj-110.82-system.tgz 240758 BLAKE2B 0903bd45a042c4cc5d327a88680f33f44128c1c9c929699813e3c7ba9b88975407b0b7b37b9048090c043485e8f144207529b7575904aa197122851d877b42b9 SHA512 b39fd42fd7418dee86accba9759dc3bb61234ff66ff695a2487c0e98b5640d5256e14edb7e23c8541e17ae35f7c9b27c7c1551d448c1383f61c33b20585a7662
+DIST smlnj-110.82-trace-debug-profile.tgz 3911 BLAKE2B c025b55430519123f4fe7907d45184cd31d0d72d89e1c5f0b8793fa4c59089b7e10f73c740b0eba3bfb39d2ec0e709a9f43482a6143d93b5128239833ca18619 SHA512 47af805b930d0c540139062c3ce3d1ba504e918c2f7817cad52bbae9e16ddc1dfea96f3058ae74afd247113101d59617d2098bfab8e38c701616c12f4610855e
EBUILD smlnj-110.75.ebuild 2560 BLAKE2B 706072bdccc0e55cdbe95e8e666aee93bd41bf7e1979f549efb2eca13087ede6897099bde143a0f5acfcaaa485587a3b8d6e8f85e0c011a8aa793c6556c8f870 SHA512 fd577e8aedbfcdf06eee98a8daca6962c6ee082354a484ef08f385cf3e7de7790f5d10ee427d162a0fc3d9e08a002a7abe208992b847994898fab826dca034d9
-MISC metadata.xml 243 BLAKE2B 010ca240ae06e9a9f6d7ba213eb06df36d9ba862ff2d2458d98a9fea1a1e7f3026d13832a73bce1b3ad9345029425e6abfae9e03bf126f2329b3f030ed3753fd SHA512 1c5b4b2163017e496999d1f87e5c9c5ac6c11b2e9187450ccfb3df258f34e54d278972f04ee0e8429476c6f87e091a869ac2a28c6e8c8e6d20678c3e74061449
+EBUILD smlnj-110.82.ebuild 4204 BLAKE2B 44b04a0b1836c33d7f7a039e807834b7299e0b25daa3616dada6e3619ba8ba5f597d10582f5aa80dc6c20010ae32df820b493729739332e13361f63ed8ead3d5 SHA512 25d8c7a2cd75c559cf2c10b0b8d9f58563f0d572e70d3d93c3bf2548bb847a0e1c6a3268960eae35d367ab04af8ba2ccc9bdd706d85a14bdf06ea28aed2cdc26
+MISC metadata.xml 373 BLAKE2B ea1dbe3474cf752c4973d3f87f843dab3ad9f4ea5a450e96b1ce6903e5461cae25b1905004e47e243ffb42e954a8f68dc8cd704d732c8f8b11343e0e409a0937 SHA512 4ec9def62221776e09f79f8c294b1f7ed0cf52b6951ceeb5690cec63c18fb5b699e6754510864274e214c7a130cb7c86f0f408a8eb233b7ec06ecc69305b1d03
diff --git a/dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch b/dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch
new file mode 100644
index 000000000000..d0291c9118a7
--- /dev/null
+++ b/dev-lang/smlnj/files/smlnj-110.82-pax-p1.patch
@@ -0,0 +1,116 @@
+--- base-orig/runtime/objs/makefile 2012-04-18 10:28:08.000000000 +1000
++++ base/runtime/objs/makefile 2018-03-10 10:21:07.417776270 +1100
+@@ -12,6 +12,7 @@
+ AR = ar
+ ARFLAGS = rcv
+ RANLIB = ranlib
++PAXMARK = true
+
+ #
+ # dummy version
+@@ -114,6 +115,7 @@
+
+ $(RUNTIME): $(VERSION) main.o $(OBJS) $(ALL_LIBS)
+ $(CC) -o $(RUNTIME) $(CFLAGS) $(LDFLAGS) main.o $(OBJS) $(ALL_LIBS) $(LD_LIBS) -lm
++ $(PAXMARK) -m $(RUNTIME)
+
+ $(RUNTIME_A): $(VERSION) main.o $(OBJS) $(ALL_LIBS)
+ rm -f $(RUNTIME_A)
+--- base-orig/runtime/objs/mk.alpha32-dunix 2000-06-02 04:34:03.000000000 +1000
++++ base/runtime/objs/mk.alpha32-dunix 2018-03-10 11:31:32.572918457 +1100
+@@ -10,6 +10,7 @@
+ LDFLAGS = -non_shared -T 20000000 -D 40000000
+ AS = as -nocpp
+ AR = /usr/ucb/ar
++PAXMARK = true
+ XOBJS =
+ XLIBS =
+ LD_LIBS =
+@@ -20,4 +21,4 @@
+ RUNTIME = run.alpha32-dunix
+
+ all:
+- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.alpha32x-osf1 2000-06-02 04:34:03.000000000 +1000
++++ base/runtime/objs/mk.alpha32x-osf1 2018-03-10 11:31:32.573918461 +1100
+@@ -8,6 +8,7 @@
+ LDFLAGS = -non_shared -T 20000000 -D 40000000
+ AS = as -nocpp
+ AR = /usr/ucb/ar
++PAXMARK = true
+ XOBJS =
+ XLIBS =
+ LD_LIBS =
+@@ -18,4 +19,4 @@
+ RUNTIME = run.alpha32x-osf1
+
+ all:
+- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" AS="$(AS)" AR="$(AR)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.amd64-darwin 2017-08-23 04:41:35.000000000 +1000
++++ base/runtime/objs/mk.amd64-darwin 2018-03-10 11:31:32.575918471 +1100
+@@ -14,6 +14,7 @@
+ CC = cc -m64 -std=c99
+ CFLAGS = -g -O2 -D_DARWIN_C_SOURCE $(SDK)
+ CPP = cc -x assembler-with-cpp -E -P -std=c99
++PAXMARK = true
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+ LD_LIBS = -ldl
+@@ -28,5 +29,5 @@
+ RUNTIMEX = runx.amd64-darwin
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+- ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
+--- base-orig/runtime/objs/mk.hppa-hpux 2000-06-02 04:34:03.000000000 +1000
++++ base/runtime/objs/mk.hppa-hpux 2018-03-10 11:31:32.577918480 +1100
+@@ -16,6 +16,7 @@
+
+ AS = /usr/ccs/bin/as
+ RANLIB = ar ts
++PAXMARK = true
+
+ XOBJS =
+ XLIBS =
+@@ -27,4 +28,4 @@
+ RUNTIME = run.hppa-hpux
+
+ all:
+- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.hppa-hpux11 2005-07-21 00:30:18.000000000 +1000
++++ base/runtime/objs/mk.hppa-hpux11 2018-03-10 11:31:32.579918490 +1100
+@@ -17,6 +17,7 @@
+
+ AS = /usr/ccs/bin/as
+ RANLIB = ar ts
++PAXMARK = true
+
+ XOBJS =
+ XLIBS =
+@@ -28,4 +29,4 @@
+ RUNTIME = run.hppa-hpux11
+
+ all:
+- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.hppa-hpux9 2000-06-02 04:34:03.000000000 +1000
++++ base/runtime/objs/mk.hppa-hpux9 2018-03-10 11:31:32.581918499 +1100
+@@ -13,6 +13,7 @@
+
+ AS = /bin/as
+ RANLIB = ar ts
++PAXMARK = true
+
+ XOBJS =
+ XLIBS =
+@@ -24,4 +25,4 @@
+ RUNTIME = run.hppa-hpux9
+
+ all:
+- (make CHECK_HEAP=check-heap.o RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ (make CHECK_HEAP=check-heap.o RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
diff --git a/dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch b/dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch
new file mode 100644
index 000000000000..7a7f30f11373
--- /dev/null
+++ b/dev-lang/smlnj/files/smlnj-110.82-pax-p2.patch
@@ -0,0 +1,132 @@
+--- base-orig/runtime/objs/mk.ppc-aix 2012-08-03 04:03:33.000000000 +1000
++++ base/runtime/objs/mk.ppc-aix 2018-03-10 11:31:32.583918509 +1100
+@@ -7,6 +7,7 @@
+ CC = cc
+ CFLAGS = -O2
+ CPP = /lib/cpp
++PAXMARK = true
+
+ #CC = gcc -ansi
+ #CFLAGS = -O2
+@@ -22,4 +23,4 @@
+ RUNTIME = run.ppc-aix
+
+ all:
+- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CPP="$(CPP)" CFLAGS="$(CFLAGS)" AS="$(AS)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.ppc-darwin 2012-08-03 04:03:33.000000000 +1000
++++ base/runtime/objs/mk.ppc-darwin 2018-03-10 11:31:32.584918513 +1100
+@@ -13,6 +13,7 @@
+ CC = cc -ansi
+ CFLAGS = -g -O2 -D_NONSTD_SOURCE
+ CPP = cc -x assembler-with-cpp -E -P -ansi
++PAXMARK = true
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+ LD_LIBS = -ldl
+@@ -25,5 +26,5 @@
+ RUNTIMEX = runx.ppc-darwin
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+- ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
+--- base-orig/runtime/objs/mk.ppc-linux 2015-09-23 00:26:12.000000000 +1000
++++ base/runtime/objs/mk.ppc-linux 2018-03-10 11:31:32.587918528 +1100
+@@ -8,6 +8,7 @@
+ CC = gcc -ansi
+ CFLAGS = -O2
+ CPP = gcc -x c -E -P -ansi
++PAXMARK = true
+ #XOBJS = xmonitor.o
+ #LD_LIBS = -lX11
+ #BASE_DEFS = -DHEAP_MONITOR
+@@ -22,4 +23,4 @@
+ RUNTIME = run.ppc-linux
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.ppc-openbsd 2014-08-20 21:39:44.000000000 +1000
++++ base/runtime/objs/mk.ppc-openbsd 2018-03-10 11:31:32.589918537 +1100
+@@ -11,6 +11,7 @@
+ CC ?= gcc -ansi
+ CFLAGS ?= -O2
+ CPP = gcc -x assembler-with-cpp -E -P
++PAXMARK = true
+
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+@@ -22,4 +23,4 @@
+ RUNTIME = run.ppc-openbsd
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.sparc-solaris 2001-06-16 05:05:19.000000000 +1000
++++ base/runtime/objs/mk.sparc-solaris 2018-03-10 11:31:32.591918547 +1100
+@@ -12,6 +12,7 @@
+ #CFLAGS = -g
+ CPP = $(GCC) -x c -E -P
+ RANLIB = $(AR) ts
++PAXMARK = true
+
+ #XOBJS = xmonitor.o
+ #LD_LIBS = -lX11
+@@ -28,4 +29,4 @@
+ RUNTIME = run.sparc-solaris
+
+ 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))
++ ($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.sparc-sunos 2000-06-02 04:34:03.000000000 +1000
++++ base/runtime/objs/mk.sparc-sunos 2018-03-10 11:31:32.593918556 +1100
+@@ -6,6 +6,7 @@
+ CC = gcc -ansi
+ CFLAGS = -O2
+ CPP = gcc -x c -E -P -ansi
++PAXMARK = true
+ #XOBJS = xmonitor.o
+ #LD_LIBS = -lX11
+ #BASE_DEFS = -DHEAP_MONITOR
+@@ -19,4 +20,4 @@
+ RUNTIME = run.sparc-sunos
+
+ all:
+- (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ (make RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.x86-cygwin 2004-03-20 05:54:52.000000000 +1100
++++ base/runtime/objs/mk.x86-cygwin 2018-03-10 11:31:32.595918566 +1100
+@@ -7,6 +7,7 @@
+ CC = gcc
+ CFLAGS = -O2
+ CPP = gcc -x assembler-with-cpp -E -P
++PAXMARK = true
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+ #LD_LIBS = -lws2_32 -Wl,--export-all -output-def=smlnj.def
+@@ -19,4 +20,4 @@
+ RUNTIME = run.x86-cygwin
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.x86-darwin 2016-08-17 01:10:45.000000000 +1000
++++ base/runtime/objs/mk.x86-darwin 2018-03-10 11:31:32.597918575 +1100
+@@ -37,6 +37,7 @@
+ CC = cc -m32 -std=c99
+ CFLAGS = -g -O2 -D_DARWIN_C_SOURCE $(SDK)
+ CPP = cc -x assembler-with-cpp -E -P -std=c99
++PAXMARK = true
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+ LD_LIBS = -ldl
+@@ -49,5 +50,5 @@
+ RUNTIMEX = runx.x86-darwin
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+- ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIMEX)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-Xlinker -r" $(RUNTIMEX))
diff --git a/dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch b/dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch
new file mode 100644
index 000000000000..fe2c183da5a4
--- /dev/null
+++ b/dev-lang/smlnj/files/smlnj-110.82-pax-p3.patch
@@ -0,0 +1,137 @@
+--- base-orig/runtime/objs/mk.x86-freebsd 2006-04-21 01:28:53.000000000 +1000
++++ base/runtime/objs/mk.x86-freebsd 2018-03-10 11:31:32.599918584 +1100
+@@ -12,6 +12,7 @@
+ CFLAGS = -O2
+ CPP = gcc -x assembler-with-cpp -E -P
+ #CPP = /usr/bin/cpp -P
++PAXMARK = true
+
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+@@ -25,6 +26,6 @@
+ RUNTIME_A = run.x86-freebsd.a
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+- ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
+- ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
++ ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
+--- base-orig/runtime/objs/mk.x86-linux 2014-10-12 06:28:40.000000000 +1100
++++ base/runtime/objs/mk.x86-linux 2018-03-10 11:31:32.600918589 +1100
+@@ -8,6 +8,7 @@
+ CC = gcc -ansi
+ CFLAGS = -O2 -m32
+ CPP = gcc -x assembler-with-cpp -E -P
++PAXMARK = true
+ #XOBJS = xmonitor.o
+ #LD_LIBS = -lX11
+ #BASE_DEFS = -DHEAP_MONITOR
+@@ -27,6 +28,6 @@
+ RUNTIME_A = run.x86-linux.a
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+- ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
+- ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME_SO)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="-shared" $(RUNTIME_SO))
++ ($(MAKE) RUNTIME_A="$(RUNTIME_A)" VERSION="$(VERSION)" AS="$(AS)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" LDFLAGS="" $(RUNTIME_A))
+--- base-orig/runtime/objs/mk.x86-linux-pthreads 2014-10-12 06:28:40.000000000 +1100
++++ base/runtime/objs/mk.x86-linux-pthreads 2018-03-10 11:31:32.602918599 +1100
+@@ -7,6 +7,7 @@
+ CC = gcc -ansi
+ CFLAGS = -O2 -D_REENTRANT
+ CPP = gcc -x assembler-with-cpp -E -P
++PAXMARK = true
+ #XOBJS = xmonitor.o
+ #LD_LIBS = -lX11
+ #BASE_DEFS = -DHEAP_MONITOR
+@@ -21,4 +22,4 @@
+ RUNTIME = run.x86-linux
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.x86-netbsd 2006-02-11 09:14:59.000000000 +1100
++++ base/runtime/objs/mk.x86-netbsd 2018-03-10 11:31:32.604918608 +1100
+@@ -12,6 +12,7 @@
+ CFLAGS = -O2
+ CPP = gcc -x assembler-with-cpp -E -P
+ #CPP = /usr/bin/cpp -P
++PAXMARK = true
+
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+@@ -23,4 +24,4 @@
+ RUNTIME = run.x86-netbsd
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.x86-netbsd2 2006-02-11 09:14:59.000000000 +1100
++++ base/runtime/objs/mk.x86-netbsd2 2018-03-10 11:31:32.605918613 +1100
+@@ -12,6 +12,7 @@
+ CFLAGS = -O2
+ CPP = gcc -x assembler-with-cpp -E -P
+ #CPP = /usr/bin/cpp -P
++PAXMARK = true
+
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+@@ -23,4 +24,4 @@
+ RUNTIME = run.x86-netbsd
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.x86-openbsd 2008-12-03 03:50:18.000000000 +1100
++++ base/runtime/objs/mk.x86-openbsd 2018-03-10 11:31:32.607918622 +1100
+@@ -12,6 +12,7 @@
+ CFLAGS = -O2
+ CPP = gcc -x assembler-with-cpp -E -P
+ #CPP = /usr/bin/cpp -P
++PAXMARK = true
+
+ XOBJS =
+ XLIBS = ../c-libs/dl/libunix-dynload.a
+@@ -23,4 +24,4 @@
+ RUNTIME = run.x86-openbsd
+
+ all:
+- ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
++ ($(MAKE) RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.x86-solaris 2004-02-01 01:24:42.000000000 +1100
++++ base/runtime/objs/mk.x86-solaris 2018-03-10 11:31:32.609918632 +1100
+@@ -15,6 +15,7 @@
+ CFLAGS = -O2
+ CPP = gcc -x assembler-with-cpp -E -P
+ RANLIB = $(AR) ts
++PAXMARK = true
+
+ XOBJS =
+ XLIBS =
+@@ -26,4 +27,4 @@
+ RUNTIME = run.x86-solaris
+
+ 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))
++ ($(MAKE) RUNTIME="$(RUNTIME)" MAKE="$(MAKE)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" AS="$(AS)" AR="$(AR)" RANLIB="$(RANLIB)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" $(RUNTIME))
+--- base-orig/runtime/objs/mk.x86-win32 2004-08-03 05:44:48.000000000 +1000
++++ base/runtime/objs/mk.x86-win32 2018-03-10 11:31:32.611918641 +1100
+@@ -8,6 +8,7 @@
+ CC = cl
+ CFLAGS = /Zi
+ CPP = cl /E /EP
++PAXMARK = true
+ XOBJS =
+ XLIBS =
+ XCLIBS =
+@@ -23,5 +24,5 @@
+ RUNTIME = run.x86-win32.exe
+
+ all:
+- ($(MAKE) MAKE="$(MAKE)" RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" XCLIBS="$(XCLIBS)" $(RUNTIME))
++ ($(MAKE) MAKE="$(MAKE)" RUNTIME="$(RUNTIME)" VERSION="$(VERSION)" CC="$(CC)" CFLAGS="$(CFLAGS)" CPP="$(CPP)" PAXMARK="$(PAXMARK)" TARGET=$(TARGET) DEFS="$(DEFS)" XOBJS="$(XOBJS)" XLIBS="$(XLIBS)" LD_LIBS="$(LD_LIBS)" XCLIBS="$(XCLIBS)" $(RUNTIME))
+
diff --git a/dev-lang/smlnj/metadata.xml b/dev-lang/smlnj/metadata.xml
index ffac4d7ebc01..2c128f1545b3 100644
--- a/dev-lang/smlnj/metadata.xml
+++ b/dev-lang/smlnj/metadata.xml
@@ -5,4 +5,8 @@
<email>ml@gentoo.org</email>
<name>Gentoo ML Project</name>
</maintainer>
+ <use>
+ <flag name="pax_kernel">Enable if the user plans to run the
+ package under a pax enabled hardened kernel</flag>
+ </use>
</pkgmetadata>
diff --git a/dev-lang/smlnj/smlnj-110.82.ebuild b/dev-lang/smlnj/smlnj-110.82.ebuild
new file mode 100644
index 000000000000..1df1108e8973
--- /dev/null
+++ b/dev-lang/smlnj/smlnj-110.82.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit eutils multilib toolchain-funcs
+
+DESCRIPTION="Standard ML of New Jersey compiler and libraries"
+HOMEPAGE="http://www.smlnj.org"
+
+BASE_URI="http://smlnj.cs.uchicago.edu/dist/working/${PV}"
+
+FILES="
+doc.tgz
+
+config.tgz
+
+cm.tgz
+compiler.tgz
+runtime.tgz
+system.tgz
+MLRISC.tgz
+smlnj-lib.tgz
+old-basis.tgz
+
+ckit.tgz
+nlffi.tgz
+
+cml.tgz
+eXene.tgz
+
+ml-lpt.tgz
+ml-lex.tgz
+ml-yacc.tgz
+ml-burg.tgz
+
+pgraph.tgz
+trace-debug-profile.tgz
+
+heap2asm.tgz
+
+smlnj-c.tgz
+"
+
+#use amd64 in 32-bit mode
+SRC_URI="amd64? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )
+ ppc? ( ${BASE_URI}/boot.ppc-unix.tgz -> ${P}-boot.ppc-unix.tgz )
+ sparc? ( ${BASE_URI}/boot.sparc-unix.tgz -> ${P}-boot.sparc-unix.tgz )
+ x86? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )"
+
+for file in ${FILES}; do
+ SRC_URI+=" ${BASE_URI}/${file} -> ${P}-${file} "
+done
+
+LICENSE="BSD"
+SLOT="0"
+
+#sparc support should be there but is untested
+KEYWORDS="-* ~amd64 ~ppc ~x86"
+IUSE="pax_kernel"
+DEPEND="pax_kernel? ( sys-apps/elfix )"
+RDEPEND=""
+
+S=${WORKDIR}
+
+src_unpack() {
+ mkdir -p "${S}"
+ for file in ${A}; do
+ [[ ${file} != ${P}-config.tgz ]] && cp "${DISTDIR}/${file}" "${S}/${file#${P}-}"
+ done
+
+# make sure we don't use the internet to download anything
+ unpack ${P}-config.tgz && rm config/*.bat
+ echo SRCARCHIVEURL=\"file:/${S}\" > "${S}"/config/srcarchiveurl
+}
+
+src_prepare() {
+ # respect CC et al. (bug 243886)
+ mkdir base || die # without this unpacking runtime will fail
+ ./config/unpack "${S}" runtime || die
+ epatch "${FILESDIR}/${PN}-110.82-pax-p1.patch"
+ epatch "${FILESDIR}/${PN}-110.82-pax-p2.patch"
+ epatch "${FILESDIR}/${PN}-110.82-pax-p3.patch"
+ default
+ for file in mk.*; do
+ sed -e "/^AS/s:as:$(tc-getAS):" \
+ -e "/^CC/s:gcc:$(tc-getCC):" \
+ -e "/^CPP/s:gcc:$(tc-getCC):" \
+ -e "/^CFLAGS/{s:-O[0123s]:: ; s:=:= ${CFLAGS}:}" \
+ -e "/^PAXMARK/s:true:"$(usex pax_kernel "paxmark.sh" "true")":" \
+ -i base/runtime/objs/${file}
+ done
+}
+
+src_compile() {
+ SMLNJ_HOME="${S}" \
+ ./config/install.sh || die "compilation failed"
+}
+
+# Return an array which has the element $1 removed from the array $[@]:1
+# i.e. return an array where the first function argument $1 removed from
+# the array consisting of the rest of the function arguments.
+remove_element_from_array() {
+ local args=("$@")
+ local e=${args[0]}
+ local oa=()
+ for x in "${args[@]:1}"; do
+ if [ ${x} != ${e} ]; then
+ oa+=( ${x} )
+ fi
+ done
+ echo "${oa[@]}"
+}
+
+# smlnj 110.82 is still only 32 bit. On a multilib 64 bit system
+# smlnj_get_libdir tries to find the 32 bit lib directory. Or otherwise,
+# just return the system lib directory $(get_libdir).
+smlnj_get_libdir() {
+ local x=$(get_all_libdirs)
+ # Remove the native lib dir
+ local y=$(remove_element_from_array $(get_libdir) ${x[@]})
+ # Remove libx32 if it exists
+ local z=$(remove_element_from_array "libx32" ${y[@]})
+ # However if the system is not multlib, then we still need to install
+ # the 32 bit smlnj executables and libraries somewhere, so I guess we
+ # just have to put them under the system lib directory. Put the
+ # native lib dir back on the end of the array.
+ z+=( $(get_libdir) )
+ # Then return the first element of the array, which should be the 32 bit
+ # lib directory on multilib systems, or the 32 bit lib directory on
+ # 32 bit systems, or the system 64 bit lib directory on non-multilib
+ # 64 bit systems.
+ echo ${z[0]}
+}
+
+src_install() {
+ SUBDIR=$(smlnj_get_libdir)/${PN}
+ DIR=/usr/${SUBDIR}
+ for file in bin/{*,.*}; do
+ [[ -f ${file} ]] && sed -e "2iSMLNJ_HOME=${EPREFIX%/}/${DIR}" \
+ -e "s:${WORKDIR}:${EPREFIX%/}/${DIR}:" -i ${file}
+ done
+ dodir ${DIR}/bin
+ exeinto ${DIR}/bin
+ pushd bin || die
+ for i in .arch-n-opsys .link-sml .run-sml heap2exec ml-* sml; do
+ doexe ${i}
+ done
+ for i in heap2exec ml-* sml; do
+ dosym ../${SUBDIR}/bin/${i} /usr/bin/${i}
+ done
+ popd || die
+ dodir ${DIR}/bin/.heap
+ insinto ${DIR}/bin/.heap
+ doins bin/.heap/*
+ dodir ${DIR}/bin/.run
+ exeinto ${DIR}/bin/.run
+ pushd bin/.run || die
+ for i in run*; do
+ doexe ${i}
+ done
+ popd || die
+ insinto ${DIR}
+ doins -r lib
+ dodoc -r doc/*
+}