Index | Thread | Search

From:
Klemens Nanni <kn@openbsd.org>
Subject:
Re: devel/ruby-ffi failure on arm64 BTI
To:
Mark Kettenis <mark.kettenis@xs4all.nl>, Theo Buehler <tb@theobuehler.org>
Cc:
ports@openbsd.org, jeremy@openbsd.org, kettenis@openbsd.org
Date:
Thu, 26 Mar 2026 22:31:02 +0000

Download raw body.

Thread
  • Klemens Nanni:

    devel/ruby-ffi failure on arm64 BTI

  • 27.03.2026 00:10, Mark Kettenis пишет:
    >> Date: Tue, 24 Mar 2026 11:01:16 +0100
    >> From: Theo Buehler <tb@theobuehler.org>
    >>
    >> kettenis, if you have some time, could you perhaps take a look?
    >> This regressed since you fixed it in june 2024:
    >> https://marc.info/?l=openbsd-ports&m=171905655818079&w=2
    > 
    > This fixes the libffi issue.  And of course I found a similar diff on
    > the machine from where I send my mail from 2024.  Seems I never sent
    > that one out.
    
    This fixes it for me, sysutils/ruby-openfact now works, thanks a lot!
    
    OK kn
    
    > 
    > I do get a SIGSEGV in libyaml-0.so.0.0 in some other test though.  But
    > I don't think that's a BTI issue.
    
    We can look into that next.
    
    > 
    > 
    > Index: devel/libffi/Makefile
    > ===================================================================
    > RCS file: /cvs/ports/devel/libffi/Makefile,v
    > diff -u -p -r1.57 Makefile
    > --- devel/libffi/Makefile	3 Aug 2025 09:00:10 -0000	1.57
    > +++ devel/libffi/Makefile	26 Mar 2026 21:04:12 -0000
    > @@ -2,6 +2,7 @@ COMMENT=		Foreign Function Interface
    >  
    >  V=			3.5.2
    >  DISTNAME=		libffi-$V
    > +REVISION=		0
    >  
    >  SHARED_LIBS +=  ffi                  2.4      # 10.0
    >  
    > Index: devel/libffi/patches/patch-src_aarch64_ffi_c
    > ===================================================================
    > RCS file: devel/libffi/patches/patch-src_aarch64_ffi_c
    > diff -N devel/libffi/patches/patch-src_aarch64_ffi_c
    > --- /dev/null	1 Jan 1970 00:00:00 -0000
    > +++ devel/libffi/patches/patch-src_aarch64_ffi_c	26 Mar 2026 21:04:12 -0000
    > @@ -0,0 +1,15 @@
    > +Index: src/aarch64/ffi.c
    > +--- src/aarch64/ffi.c.orig
    > ++++ src/aarch64/ffi.c
    > +@@ -889,8 +889,9 @@ ffi_prep_closure_loc (ffi_closure *closure,
    > + # endif
    > + #else
    > +   static const unsigned char trampoline[16] = {
    > +-    0x90, 0x00, 0x00, 0x58,	/* ldr	x16, tramp+16	*/
    > +-    0xf1, 0xff, 0xff, 0x10,	/* adr	x17, tramp+0	*/
    > ++    0x5f, 0x24, 0x03, 0xd5,	/* bti	c		*/
    > ++    0x70, 0x00, 0x00, 0x58,	/* ldr	x16, tramp+16	*/
    > ++    0xd1, 0xff, 0xff, 0x10,	/* adr	x17, tramp+0	*/
    > +     0x00, 0x02, 0x1f, 0xd6	/* br	x16		*/
    > +   };
    > +   char *tramp = closure->tramp;
    > 
    
    
  • Klemens Nanni:

    devel/ruby-ffi failure on arm64 BTI