Index | Thread | Search

From:
"Sebastian Reitenbach" <sebastia@l00-bugdead-prods.de>
Subject:
Re: missing endbr64
To:
"Theo Buehler" <tb@theobuehler.org>
Cc:
"Mark Kettenis" <mark.kettenis@xs4all.nl>, ports@openbsd.org
Date:
Thu, 29 Feb 2024 11:01:49 +0100

Download raw body.

Thread
  • Theo Buehler:

    missing endbr64

  • On Wednesday, February 28, 2024 22:49 CET, Theo Buehler <tb@theobuehler.org> 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 <tb@theobuehler.org> wrote:
    > > 
    > > > On Sun, Feb 25, 2024 at 10:13:44PM +0100, Sebastian Reitenbach wrote:
    > > > > On Sunday, February 25, 2024 16:44 CET, Mark Kettenis <mark.kettenis@xs4all.nl> 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"
    
    
    
  • Theo Buehler:

    missing endbr64