The configure scripts adds -mbranch-protection=pac-ret, which on
OpenBSD actually *downgrades* the protection and makes things fail on
arm64 systems that implement BTI.

Use -mbranch-protection=standard instead.

ok?


Index: lang/ruby/3.2/Makefile
===================================================================
RCS file: /cvs/ports/lang/ruby/3.2/Makefile,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile
--- lang/ruby/3.2/Makefile      13 Jun 2023 05:00:23 -0000      1.5
+++ lang/ruby/3.2/Makefile      23 Sep 2023 18:32:57 -0000
@@ -3,7 +3,7 @@ DISTNAME =              ruby-${VERSION}
 SHARED_LIBS =          ruby32  0.0
 NEXTVER =              3.3
 PKGSPEC-main ?=         ruby->=3.2.0,<${NEXTVER}
-REVISION-main =                0
+REVISION-main =                1
 
 PSEUDO_FLAVORS=                no_ri_docs bootstrap
 # Do not build the RI docs on slow arches
Index: lang/ruby/3.2/patches/patch-configure
===================================================================
RCS file: /cvs/ports/lang/ruby/3.2/patches/patch-configure,v
retrieving revision 1.2
diff -u -p -r1.2 patch-configure
--- lang/ruby/3.2/patches/patch-configure       1 Apr 2023 19:28:26 -0000       
1.2
+++ lang/ruby/3.2/patches/patch-configure       23 Sep 2023 18:32:57 -0000
@@ -1,4 +1,5 @@
 Support arm64 coroutines.
+Don't downgrade arm64 branch protection.
 
 Set correct shared library name.
 
@@ -8,6 +9,15 @@ so ports don't have to be bumped when Op
 Index: configure
 --- configure.orig
 +++ configure
+@@ -10897,7 +10897,7 @@ esac
+     case "$target_cpu" in #(
+   aarch64) :
+ 
+-      for opt in -mbranch-protection=pac-ret -msign-return-address=all
++      for opt in -mbranch-protection=standard -msign-return-address=all
+ do :
+ 
+ 
 @@ -29475,6 +29475,10 @@ esac
  
              coroutine_type=x86

Reply via email to