Sunday, February 25, 2024

Re: missing endbr64

On Sun, Feb 25, 2024 at 01:35:54PM +0100, Mark Kettenis wrote:
> > From: Theo Buehler <tb () theobuehler ! org>
> > Date: Sun, 25 Feb 2024 09:39:39 +0000
> >
> > Here's the list of ~90 ports emitting warnings after about 1/4 of an
> > amd64 bulk. First the ports that I haven't looked at more closely with
> > (some of) the warnings. Then some ports using D where I suspect NOBTCFI
> > is missing. Go, Haskell and Ocaml ports are linked using nobtcfi, as far
> > as I know, so I moved them to the end without details.
>
> ...
>
> > multimedia/x264.log
> > ld: warning: x264_8_sub8x8_dct_sse2.skip_prologue: missing endbr64
> > ld: warning: x264_8_sub8x8_dct8_sse2.skip_prologue: missing endbr64
> > ld: warning: x264_8_sub8x8_dct_ssse3.skip_prologue: missing endbr64
> > ld: warning: x264_8_sub8x8_dct8_ssse3.skip_prologue: missing endbr64
> > ld: warning: x264_8_sub8x8_dct_avx.skip_prologue: missing endbr64
> > ld: warning: x264_8_sub8x8_dct8_avx.skip_prologue: missing endbr64
> > ld: warning: x264_8_sub8x8_dct_xop.skip_prologue: missing endbr64
> > ld: warning: x264_8_add8x8_idct8_sse2.skip_prologue: missing endbr64
> > ld: warning: x264_8_add8x8_idct8_avx.skip_prologue: missing endbr64
> > ld: warning: x264_8_add8x8_idct_sse2.skip_prologue: missing endbr64
> > ld: warning: x264_8_add8x8_idct_avx.skip_prologue: missing endbr64
> > ld: warning: x264_10_sub8x8_dct8_sse2.skip_prologue: missing endbr64
> > ld: warning: x264_10_sub8x8_dct8_sse4.skip_prologue: missing endbr64
> > ld: warning: x264_10_sub8x8_dct8_avx.skip_prologue: missing endbr64
> > ld: warning: x264_10_add8x8_idct8_sse2.skip_prologue: missing endbr64
> > ld: warning: x264_10_add8x8_idct8_avx.skip_prologue: missing endbr64
>
> Here is a fix:

ok tb

>
> Index: multimedia/x264/Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/x264/Makefile,v
> retrieving revision 1.69
> diff -u -p -r1.69 Makefile
> --- multimedia/x264/Makefile 20 Feb 2024 10:06:12 -0000 1.69
> +++ multimedia/x264/Makefile 25 Feb 2024 12:32:10 -0000
> @@ -4,7 +4,7 @@ DISTNAME= x264-20221028
> GH_ACCOUNT= mirror
> GH_PROJECT= x264
> GH_COMMIT= 416e3eb2b52abb0a67e57599aba4f8be3003b36d
> -REVISION= 2
> +REVISION= 3
> CATEGORIES= multimedia
>
> SHARED_LIBS= x264 24.0
> Index: multimedia/x264/patches/patch-common_x86_x86inc_asm
> ===================================================================
> RCS file: /cvs/ports/multimedia/x264/patches/patch-common_x86_x86inc_asm,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-common_x86_x86inc_asm
> --- multimedia/x264/patches/patch-common_x86_x86inc_asm 20 Feb 2024 10:06:12 -0000 1.1
> +++ multimedia/x264/patches/patch-common_x86_x86inc_asm 25 Feb 2024 12:32:10 -0000
> @@ -11,3 +11,13 @@ Index: common/x86/x86inc.asm
> RESET_MM_PERMUTATION ; needed for x86-64, also makes disassembly somewhat nicer
> %xdefine rstk rsp ; copy of the original stack pointer, used when greater alignment than the known stack alignment is required
> %assign stack_offset 0 ; stack pointer offset relative to the return address
> +@@ -823,6 +826,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg,
> + global current_function %+ %1
> + %endif
> + %1:
> ++ %if ARCH_X86_64
> ++ endbr64
> ++ %endif
> + %endmacro
> +
> + %macro cextern 1

No comments:

Post a Comment