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

Reply via email to