Index | Thread | Search

From:
Dave Voutila <dv@sisu.io>
Subject:
Re: [UPDATE] OCaml 4.14.1 -> 4.14.2
To:
Dave Voutila <dv@sisu.io>
Cc:
ports@openbsd.org, volker@openbsd.org, Anil Madhavapeddy <avsm@openbsd.org>
Date:
Fri, 12 Apr 2024 07:22:14 -0400

Download raw body.

Thread
ping.

Dave Voutila <dv@sisu.io> writes:

> 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