On 2024/02/27 16:03, Stuart Henderson wrote:
> On 2024/02/27 12:08, Theo Buehler wrote:
> > Now that the bulk has completed here's the remainder of the list with
> > two more that may need fixing. 119 ports total contained a warning.
> > I did not build the chromium variants.
> > 
> > audio/deadbeef.log
> > ld: warning: ff_scalarproduct_and_madd_int16_sse2: missing endbr64
> 
> This is when building the plugin for playback of monkey's audio (ape)
> files (plugins/ffap) which has its own copy of (a very old version of)
> some asm from ffmpeg, see plugins/ffap/x86inc.asm and dsputil_yasm.asm.
> 
> This seems to do the trick on amd64, there might be a better way but
> I was struggling with yasm vs nasm syntax. I'm testing to make sure it
> doesn't break i386 now.

Still builds on i386.

> This Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/deadbeef/Makefile,v
> retrieving revision 1.53
> diff -u -p -r1.53 Makefile
> --- Makefile  20 Sep 2023 15:58:34 -0000      1.53
> +++ Makefile  27 Feb 2024 16:00:57 -0000
> @@ -1,7 +1,7 @@
>  COMMENT =            DeaDBeeF is an audio player
>  DISTNAME =           deadbeef-1.9.4
>  CATEGORIES =         audio
> -REVISION =           0
> +REVISION =           1
>  
>  HOMEPAGE =           https://deadbeef.sourceforge.io/
>  
> Index: patches/patch-plugins_ffap_x86inc_asm
> ===================================================================
> RCS file: patches/patch-plugins_ffap_x86inc_asm
> diff -N patches/patch-plugins_ffap_x86inc_asm
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-plugins_ffap_x86inc_asm     27 Feb 2024 16:00:57 -0000
> @@ -0,0 +1,28 @@
> +Index: plugins/ffap/x86inc.asm
> +--- plugins/ffap/x86inc.asm.orig
> ++++ plugins/ffap/x86inc.asm
> +@@ -28,6 +28,16 @@
> +     %endif
> + %endif
> + 
> ++%ifdef ARCH_X86_64
> ++%imacro _endbr64 0
> ++    dd 0xfa1e0ff3
> ++%endmacro
> ++%else
> ++%imacro _endbr64 0
> ++; empty
> ++%endmacro
> ++%endif
> ++
> + ; FIXME: All of the 64bit asm functions that take a stride as an argument
> + ; via register, assume that the high dword of that register is filled with 
> 0.
> + ; This is true in practice (since we never do any 64bit arithmetic on 
> strides,
> +@@ -446,6 +456,7 @@ DECLARE_REG 6, ebp, ebp, bp, null, [esp + stack_offset
> +     %endif
> +     align function_align
> +     %1:
> ++    _endbr64
> +     RESET_MM_PERMUTATION ; not really needed, but makes disassembly 
> somewhat nicer
> +     %assign stack_offset 0
> +     %if %0 > 1
> 

Reply via email to