Thursday, February 29, 2024

Re: 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"
>

No comments:

Post a Comment