summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/smlnj/Manifest24
-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
6 files changed, 579 insertions, 0 deletions
diff --git a/dev-lang/smlnj/Manifest b/dev-lang/smlnj/Manifest
index a697a566b716..fef1dbe59764 100644
--- a/dev-lang/smlnj/Manifest
+++ b/dev-lang/smlnj/Manifest
@@ -20,3 +20,27 @@ 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
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/*
+}