OCaml 4.14.2 is a bugfix release that includes some of our patches and tweaks upstreamed thanks to miod@:
- the nobtcfi linker flags are now set in OCaml's configure script so we don't need the LDFLAGS dance in the Makefile - the no-execute-only flag is also set, so we can drop the patch Built on both amd64 and arm64. (I don't have other machines.) Running `make test` has the same single test failure as 4.14.1. I don't commit to ports often so: - Do we keep an empty patches directory or no? I'd presume yes. - Can someone help run a build of any dependent ports or point me to how? - I kept the USE_NOBTCFI flag. I'm not sure how we incorporate that into the ports infra, but since OCaml is still not able to build without the linker flag, I'm assuming it's sensible to keep that for reference? feedback welcome :) -dv diff refs/heads/master refs/heads/ocaml-4 commit - 4aa8f0d502946b9c12dc190e1ff27c02dba9cca5 commit + b26e117aba3d2931b28a8443b0ec65f12003c909 blob - 744f9992f6a1812450bcb4c2e96e483c25e87971 blob + 244c1b7315faa3a96849574ea5d05e78a7a22cd9 --- lang/ocaml/Makefile +++ lang/ocaml/Makefile @@ -2,7 +2,7 @@ COMMENT = ML language with complete class-based obj # XXX Don't even think of updating ocaml alone. # Do check that the ports that depend on it still work, or repair them. -VERSION= 4.14.1 +VERSION= 4.14.2 # if the ocaml compiler gains support for BTI, as well as # removing USE_NOBTCFI here (or changing to an arch-dependent @@ -64,12 +64,6 @@ CONFIGURE_ARGS += --enable-imprecise-c99-float-ops LDFLAGS+= -Wl,-z,notext .endif -# We need to pass nobtcfi in LDFLAGS so that ocamlopt -# will pick it up when building OCaml native binaries -.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "arm64" -LDFLAGS+= -Wl,-z,nobtcfi -.endif - USE_GMAKE= Yes WANTLIB = c m pthread blob - 07c4adb25913fc8db722c8753fefbf55e7182ceb blob + b2ed4b8eda49096b389cc1b7e95d69075810b55e --- lang/ocaml/distinfo +++ lang/ocaml/distinfo @@ -1,4 +1,4 @@ SHA256 (ocaml-4.14-refman-html.tar.gz) = +dILjzxXO797/JkVVzFHK5G5vwhOndK1U50q5HNAbKc= -SHA256 (ocaml-4.14.1.tar.gz) = GDl53JwJyw9YCiMraFMaCbAlqmKLjY1ydEnxRv1vX+4= +SHA256 (ocaml-4.14.2.tar.gz) = k7TzujnVWalj/BB0RWO0xukun/tUDOieXF6/dghrmfM= SIZE (ocaml-4.14-refman-html.tar.gz) = 1982462 -SIZE (ocaml-4.14.1.tar.gz) = 5497979 +SIZE (ocaml-4.14.2.tar.gz) = 5504138 blob - 8e2f6dcfd97891503f2704b423fd429e5cb357d8 (mode 644) blob + /dev/null --- lang/ocaml/patches/patch-configure +++ /dev/null @@ -1,24 +0,0 @@ -Backport part of https://github.com/ocaml/ocaml/pull/12372/files -Pointed out by avsm@ - -Index: configure ---- configure.orig -+++ configure -@@ -14133,6 +14133,17 @@ if test -z "$mkmaindll"; then : - mkmaindll=$mksharedlib - fi - -+# Make sure code sections in OCaml-generated executables are readable -+# (required for marshaling of function closures) -+ -+case $host in #( -+ *-*-openbsd7.[3-9]|*-*-openbsd[89].*) : -+ oc_ldflags="$oc_ldflags -Wl,--no-execute-only" -+ natdynlinkopts="$natdynlinkopts -Wl,--no-execute-only" ;; #( -+ *) : -+ ;; -+esac -+ - # Configure native dynlink - - natdynlink=false