From: "Sebastian Reitenbach" Subject: Re: missing endbr64 To: "Theo Buehler" Cc: "Mark Kettenis" , ports@openbsd.org Date: Thu, 29 Feb 2024 11:01:49 +0100 On Wednesday, February 28, 2024 22:49 CET, Theo Buehler wrote: > On Wed, Feb 28, 2024 at 10:44:27PM +0100, Sebastian Reitenbach wrote: > > Hi, > > On Wednesday, February 28, 2024 21:13 CET, Theo Buehler wrote: > > > > > On Sun, Feb 25, 2024 at 10:13:44PM +0100, Sebastian Reitenbach wrote: > > > > On Sunday, February 25, 2024 16:44 CET, Mark Kettenis wrote: > > > > Tested your patch, the warnings are gone. A couple of apps tested, seems to work. I don't have a machine where it would cause aborts. Additionally, the typo fix (which I found in upstream already fixed) also prevents the Git checkout at configure stage. The revision bump might not be needed, as no packages could have been built, but someone might have manually built it? OK? Sebastian Index: Makefile =================================================================== RCS file: /cvs/ports/x11/gnustep/libobjc2/Makefile,v diff -u -r1.34 Makefile --- Makefile 28 Feb 2024 19:52:15 -0000 1.34 +++ Makefile 29 Feb 2024 09:54:53 -0000 @@ -4,7 +4,7 @@ # note: this port does not use the gnustep module VERSION = 2.2 -REVISION = 0 +REVISION = 1 GH_ACCOUNT = gnustep GH_PROJECT = libobjc2 GH_TAGNAME = v${VERSION} Index: patches/patch-CMakeLists_txt =================================================================== RCS file: patches/patch-CMakeLists_txt diff -N patches/patch-CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-CMakeLists_txt 29 Feb 2024 09:54:53 -0000 @@ -0,0 +1,12 @@ +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -126,7 +126,7 @@ endif () + + find_package(tsl-robin-map) + +-if (NOT tls-robin-map_FOUND) ++if (NOT tsl-robin-map_FOUND) + FetchContent_Declare( + robinmap + GIT_REPOSITORY https://github.com/Tessil/robin-map/ Index: patches/patch-block_trampolines_S =================================================================== RCS file: patches/patch-block_trampolines_S diff -N patches/patch-block_trampolines_S --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-block_trampolines_S 29 Feb 2024 09:54:53 -0000 @@ -0,0 +1,19 @@ +Index: block_trampolines.S +--- block_trampolines.S.orig ++++ block_trampolines.S +@@ -22,6 +22,7 @@ + // x86-64 trampoline + //////////////////////////////////////////////////////////////////////////////// + .macro trampoline arg0, arg1 ++ endbr64 + mov -0x1007(%rip), \arg1 # Load the block pointer into the second argument + xchg \arg1, \arg0 # Swap the first and second arguments + jmp *-0x1008(%rip) # Call the block function +@@ -121,6 +122,7 @@ + // AArch64 (ARM64) trampoline + //////////////////////////////////////////////////////////////////////////////// + .macro trampoline arg0, arg1 ++ bti c + adr x17, #-4096 + mov \arg1, \arg0 + ldp \arg0, x17, [x17] Index: patches/patch-objc_msgSend_aarch64_S =================================================================== RCS file: patches/patch-objc_msgSend_aarch64_S diff -N patches/patch-objc_msgSend_aarch64_S --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-objc_msgSend_aarch64_S 29 Feb 2024 09:54:53 -0000 @@ -0,0 +1,12 @@ +Index: objc_msgSend.aarch64.S +--- objc_msgSend.aarch64.S.orig ++++ objc_msgSend.aarch64.S +@@ -47,7 +47,7 @@ + # define EH_NOP .seh_nop + #else + // Marks the real start and end of the function +-# define EH_START .cfi_startproc ++# define EH_START .cfi_startproc; bti c + # define EH_END .cfi_endproc + + // The following directives are either not Index: patches/patch-objc_msgSend_x86-64_S =================================================================== RCS file: patches/patch-objc_msgSend_x86-64_S diff -N patches/patch-objc_msgSend_x86-64_S --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-objc_msgSend_x86-64_S 29 Feb 2024 09:54:53 -0000 @@ -0,0 +1,12 @@ +Index: objc_msgSend.x86-64.S +--- objc_msgSend.x86-64.S.orig ++++ objc_msgSend.x86-64.S +@@ -8,7 +8,7 @@ + # define SECOND_ARGUMENT %rdx + # define THIRD_ARGUMENT %r8 + #else +-# define START_PROC(x) .cfi_startproc ++# define START_PROC(x) .cfi_startproc; endbr64 + # define END_PROC(x) .cfi_endproc + # define FRAME_OFFSET(x) .cfi_adjust_cfa_offset x + # define FIRST_ARGUMENT_STR "%rdi"