> Date: Sat, 24 Feb 2024 20:01:06 +0100 > From: Theo Buehler <t...@theobuehler.org> > > This adds missing landing pads for amd64 and arm64. Not sure if for > upstream a <cet.h> dance using _CET_ENDBR would be preferable. For the > port I kept it simple. > > ld: warning: objc_msg_lookup: missing endbr64 > ld: warning: objc_msg_lookup_stret: missing endbr64 > ld: warning: objc_msg_lookup_super: missing endbr64 > ld: warning: objc_msg_lookup_super_stret: missing endbr64 > ld: warning: OFForward: missing endbr64 > ld: warning: OFForward_stret: missing endbr64
My knowledge of ObjC is limited, but to me it looks like these are right. ok kettenis@ > Index: Makefile > =================================================================== > RCS file: /cvs/ports/devel/objfw/Makefile,v > diff -u -p -r1.6 Makefile > --- Makefile 24 Jan 2024 21:08:06 -0000 1.6 > +++ Makefile 24 Feb 2024 18:50:12 -0000 > @@ -1,6 +1,7 @@ > COMMENT = portable, lightweight framework for the Objective-C language > > DISTNAME = objfw-1.0.8 > +REVISION = 0 > > SHARED_LIBS += objfw 0.0 > SHARED_LIBS += objfwrt 0.0 > Index: patches/patch-src_forwarding_forwarding-amd64-elf_S > =================================================================== > RCS file: patches/patch-src_forwarding_forwarding-amd64-elf_S > diff -N patches/patch-src_forwarding_forwarding-amd64-elf_S > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_forwarding_forwarding-amd64-elf_S 24 Feb 2024 > 18:53:27 -0000 > @@ -0,0 +1,19 @@ > +Index: src/forwarding/forwarding-amd64-elf.S > +--- src/forwarding/forwarding-amd64-elf.S.orig > ++++ src/forwarding/forwarding-amd64-elf.S > +@@ -22,6 +22,7 @@ > + > + .section .text > + OFForward: > ++ endbr64 > + pushq %rbp > + movq %rsp, %rbp > + > +@@ -107,6 +108,7 @@ OFForward: > + .size OFForward, .-OFForward > + > + OFForward_stret: > ++ endbr64 > + pushq %rbp > + movq %rsp, %rbp > + > Index: patches/patch-src_forwarding_forwarding-arm64-elf_S > =================================================================== > RCS file: patches/patch-src_forwarding_forwarding-arm64-elf_S > diff -N patches/patch-src_forwarding_forwarding-arm64-elf_S > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_forwarding_forwarding-arm64-elf_S 24 Feb 2024 > 18:53:27 -0000 > @@ -0,0 +1,11 @@ > +Index: src/forwarding/forwarding-arm64-elf.S > +--- src/forwarding/forwarding-arm64-elf.S.orig > ++++ src/forwarding/forwarding-arm64-elf.S > +@@ -23,6 +23,7 @@ > + .section .text > + OFForward: > + OFForward_stret: > ++ bti c > + stp fp, lr, [sp, #-208]! > + mov fp, sp > + sub sp, sp, #208 > Index: patches/patch-src_runtime_lookup-asm_lookup-asm-amd64-elf_S > =================================================================== > RCS file: patches/patch-src_runtime_lookup-asm_lookup-asm-amd64-elf_S > diff -N patches/patch-src_runtime_lookup-asm_lookup-asm-amd64-elf_S > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_runtime_lookup-asm_lookup-asm-amd64-elf_S 24 Feb > 2024 18:53:27 -0000 > @@ -0,0 +1,19 @@ > +Index: src/runtime/lookup-asm/lookup-asm-amd64-elf.S > +--- src/runtime/lookup-asm/lookup-asm-amd64-elf.S.orig > ++++ src/runtime/lookup-asm/lookup-asm-amd64-elf.S > +@@ -25,6 +25,7 @@ > + .section .text > + .macro GENERATE_LOOKUP name notFound > + \name: > ++ endbr64 > + testq %rdi, %rdi > + jz returnNilMethod > + > +@@ -68,6 +69,7 @@ > + > + .macro GENERATE_LOOKUP_SUPER name lookup > + \name: > ++ endbr64 > + movq %rdi, %r8 > + movq (%rdi), %rdi > + testq %rdi, %rdi > Index: patches/patch-src_runtime_lookup-asm_lookup-asm-arm64-elf_S > =================================================================== > RCS file: patches/patch-src_runtime_lookup-asm_lookup-asm-arm64-elf_S > diff -N patches/patch-src_runtime_lookup-asm_lookup-asm-arm64-elf_S > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_runtime_lookup-asm_lookup-asm-arm64-elf_S 24 Feb > 2024 18:53:27 -0000 > @@ -0,0 +1,19 @@ > +Index: src/runtime/lookup-asm/lookup-asm-arm64-elf.S > +--- src/runtime/lookup-asm/lookup-asm-arm64-elf.S.orig > ++++ src/runtime/lookup-asm/lookup-asm-arm64-elf.S > +@@ -25,6 +25,7 @@ > + .section .text > + .macro GENERATE_LOOKUP name notFound > + \name: > ++ bti c > + cbz x0, returnNilMethod > + > + tst x0, #1 > +@@ -68,6 +69,7 @@ > + > + .macro GENERATE_LOOKUP_SUPER name lookup > + \name: > ++ bti c > + mov x2, x0 > + ldr x0, [x0] > + cbz x0, returnNilMethod >