On Sun, Dec 03, 2023 at 08:07:19AM +0100, Lorenz (xha) wrote: > thanks for the port ;-) > > On Sat, Dec 02, 2023 at 10:54:47PM +0100, Tobias Heider wrote: > > On Sat, Dec 02, 2023 at 08:46:11PM +0000, Brian Callahan wrote: > > > Hi ports -- > > > > > > Attached is a new port for the Hare programming language. Support for > > > OpenBSD was just announced. > > > > > > This is good enough to compile the Hello world example on the main > > > harelang.org. The port itself is a snapshot I just made of the mainline > > > code, making sure to include some additional improvements from tobhe@ > > > that just hit their tree. > > > > > > Specifically looking for arm64 and riscv64 testing. I've only been able > > > to test it on amd64. I believe some tweaks will be needed for the other > > > archs. > > > > > > There are a small number of tests that fail, and one that segfaults, but > > > as support is brand new, I don't think that's necessarily a showstopper. > > can you tell me which test segfaults so i can fix this? all tests should > and are passing for me (amd64)
The harec tests don't seem to work at all for me. > > > > > > > OK? > > > > > > ~Brian > > > > arm64 needs a little more work > > > > 1. We need to fix the _start hook, I submitted a fix upstream at > > https://lists.sr.ht/~sircmpwn/hare-dev/patches/47286 > > > > 2. config.mk hardcodes amd64 and always treats arm and riscv as if > > it was cross compiled. we need to change this to work for natively > > > > This works on arm64: > > > > diff -Nru hare/hare/Makefile hare2/hare/Makefile > > --- hare/hare/Makefile Sat Dec 2 21:34:50 2023 > > +++ hare2/hare/Makefile Sat Dec 2 22:53:42 2023 > > @@ -13,5 +13,8 @@ > > > > do-gen: > > cp ${WRKSRC}/configs/openbsd.mk ${WRKSRC}/config.mk > > + sed -i "s/aarch64-//g" ${WRKSRC}/config.mk > > + sed -i "s/riscv64-//g" ${WRKSRC}/config.mk > > can upstream this if you want. i think it doesn't make sense to always > assume cross-compilation. Sure, I can send a diff. I was planning to experiment some more and see if we can make the default saner (assume host == target). > > > + echo "ARCH = $$(arch -s)" >> ${WRKSRC}/config.mk > > > > .include <bsd.port.mk> > > diff -Nru hare/harec/patches/patch-rt_+openbsd_start+aarch64_s > > hare2/harec/patches/patch-rt_+openbsd_start+aarch64_s > > --- hare/harec/patches/patch-rt_+openbsd_start+aarch64_s Thu Jan 1 > > 01:00:00 1970 > > +++ hare2/harec/patches/patch-rt_+openbsd_start+aarch64_s Sat Dec 2 > > 22:25:37 2023 > > @@ -0,0 +1,9 @@ > > +Index: rt/+openbsd/start+aarch64.s > > +--- rt/+openbsd/start+aarch64.s.orig > > ++++ rt/+openbsd/start+aarch64.s > > +@@ -5,5 +5,4 @@ _start: > > + mov x30, #0 > > + mov x0, sp > > + add sp, x0, #-16 > > +- and sp, sp, #-16 > > + b rt.start_ha > > > > this is already upstreamed.