Download raw body.
multimedia/libass: endbr64
On 2024/02/25 15:42, Klemens Nanni wrote:
> On Sun, Feb 25, 2024 at 10:39:39AM +0100, Theo Buehler wrote:
> > multimedia/libass.log
> > ld: warning: ass_fill_solid_tile16_sse2: missing endbr64
> > ld: warning: ass_fill_solid_tile16_avx2: missing endbr64
> > ld: warning: ass_fill_halfplane_tile16_sse2: missing endbr64
> > ld: warning: ass_fill_halfplane_tile16_avx2: missing endbr64
> > ld: warning: ass_fill_generic_tile16_sse2: missing endbr64
> > ld: warning: ass_fill_generic_tile16_avx2: missing endbr64
> > ld: warning: ass_merge_tile16_sse2: missing endbr64
> > ld: warning: ass_merge_tile16_avx2: missing endbr64
> > ld: warning: ass_add_bitmaps_sse2: missing endbr64
> > etc
>
> This silences them, looks exactly like the cummulative x264 diff.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/libass/Makefile,v
> diff -u -p -r1.32 Makefile
> --- Makefile 27 Sep 2023 10:10:20 -0000 1.32
> +++ Makefile 25 Feb 2024 15:25:29 -0000
> @@ -5,6 +5,7 @@ DISTNAME= libass-${VER}
> CATEGORIES= multimedia devel
> SITES= https://github.com/libass/libass/releases/download/${VER}/
> EXTRACT_SUFX= .tar.xz
> +REVISION= 0
>
> SHARED_LIBS= ass 3.1
>
> Index: patches/patch-libass_x86_x86inc_asm
> ===================================================================
> RCS file: patches/patch-libass_x86_x86inc_asm
> diff -N patches/patch-libass_x86_x86inc_asm
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-libass_x86_x86inc_asm 25 Feb 2024 15:42:08 -0000
> @@ -0,0 +1,25 @@
> +add ENDBR64 instructions for BTI
> +
> +Index: libass/x86/x86inc.asm
> +--- libass/x86/x86inc.asm.orig
> ++++ libass/x86/x86inc.asm
> +@@ -756,6 +756,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg,
> + %endif
> + align function_align
> + %2:
> ++ %if ARCH_X86_64
> ++ endbr64
> ++ %endif
> + 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
> +@@ -777,6 +780,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
>
I manually built fuzz/fuzz and point it at the */ass tests from
the crash dir in https://github.com/libass/libass-tests. Before the
patches, SIGILL. After the patches, no SIGILL.
OK sthen
multimedia/libass: endbr64