Index | Thread | Search

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

Download raw body.

Thread
  • Theo Buehler:

    missing endbr64

  • On Thu, Feb 29, 2024 at 11:01:49AM +0100, Sebastian Reitenbach wrote:
    > 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?
    
    Yes, this definitely needs a bump.
    
    > OK?
    
    ok tb, but please give kettenis a chance to take a look.
    
    > 
    > 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