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