This has various asm bits that do some nasty things. Ionly fixed some as the other stuff seems to violate X-only and R^W. And some bits even use an executable stack. But nothing that uses this (lang/clisp and lang/gforth as far as I can tell) use -Wl,-zwxneeded or -Wl,--no-execute-only. So this should be good enough?
Index: devel/ffcall/Makefile =================================================================== RCS file: /cvs/ports/devel/ffcall/Makefile,v retrieving revision 1.34 diff -u -p -r1.34 Makefile --- devel/ffcall/Makefile 21 Sep 2023 09:49:53 -0000 1.34 +++ devel/ffcall/Makefile 22 Feb 2024 18:56:50 -0000 @@ -4,7 +4,7 @@ ONLY_FOR_ARCHS= alpha amd64 hppa i386 mi COMMENT= foreign function call libraries DISTNAME= ffcall-1.10 -REVISION = 5 +REVISION = 6 SHARED_LIBS= avcall 1.0 \ callback 1.0 CATEGORIES= devel Index: devel/ffcall/patches/patch-avcall_avcall-x86_64_s =================================================================== RCS file: /cvs/ports/devel/ffcall/patches/patch-avcall_avcall-x86_64_s,v retrieving revision 1.2 diff -u -p -r1.2 patch-avcall_avcall-x86_64_s --- devel/ffcall/patches/patch-avcall_avcall-x86_64_s 11 Mar 2022 18:50:02 -0000 1.2 +++ devel/ffcall/patches/patch-avcall_avcall-x86_64_s 22 Feb 2024 18:56:50 -0000 @@ -1,7 +1,15 @@ Index: avcall/avcall-x86_64.s --- avcall/avcall-x86_64.s.orig +++ avcall/avcall-x86_64.s -@@ -326,50 +326,4 @@ __builtin_avcall: +@@ -5,6 +5,7 @@ + .type __builtin_avcall,@function + __builtin_avcall: + .LFB1: ++ endbr64 + pushq %r12 + .LCFI0: + xorl %r11d, %r11d +@@ -326,50 +327,4 @@ __builtin_avcall: movq 16(%rbx), %rax movss %xmm0, (%rax) jmp .L24 Index: devel/ffcall/patches/patch-vacall_vacall-x86_64_s =================================================================== RCS file: /cvs/ports/devel/ffcall/patches/patch-vacall_vacall-x86_64_s,v retrieving revision 1.2 diff -u -p -r1.2 patch-vacall_vacall-x86_64_s --- devel/ffcall/patches/patch-vacall_vacall-x86_64_s 11 Mar 2022 18:50:02 -0000 1.2 +++ devel/ffcall/patches/patch-vacall_vacall-x86_64_s 22 Feb 2024 18:56:50 -0000 @@ -1,7 +1,15 @@ Index: vacall/vacall-x86_64.s --- vacall/vacall-x86_64.s.orig +++ vacall/vacall-x86_64.s -@@ -203,42 +203,4 @@ __vacall: +@@ -5,6 +5,7 @@ + .type __vacall,@function + __vacall: + .LFB1: ++ endbr64 + pushq %r12 + .LCFI0: + subq $192, %rsp +@@ -203,42 +204,4 @@ __vacall: .L53: movsbq 40(%rsp),%rax jmp .L1