> Date: Wed, 28 Feb 2024 12:43:05 +0100 > From: Robert Nagy <rob...@openbsd.org> > > It seems that we need more here. This makes all the regression > tests pass. I suspect there will be still more needed, but we > need something to uncover those.
Not entirely clear to me why the linker doesn't issue warnings here, these are indeed used in function pointers. ok kettenis@ > Index: Makefile > =================================================================== > RCS file: /cvs/ports/multimedia/libvpx/Makefile,v > diff -u -p -u -r1.55 Makefile > --- Makefile 24 Feb 2024 17:39:07 -0000 1.55 > +++ Makefile 28 Feb 2024 11:40:27 -0000 > @@ -6,7 +6,7 @@ GH_TAGNAME= v1.13.1 > EPOCH= 0 > CATEGORIES= multimedia > > -REVISION= 2 > +REVISION= 3 > > SHARED_LIBS= vpx 16.0 > > Index: patches/patch-vp8_common_x86_subpixel_ssse3_asm > =================================================================== > RCS file: patches/patch-vp8_common_x86_subpixel_ssse3_asm > diff -N patches/patch-vp8_common_x86_subpixel_ssse3_asm > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-vp8_common_x86_subpixel_ssse3_asm 28 Feb 2024 11:40:27 > -0000 > @@ -0,0 +1,67 @@ > +Index: vp8/common/x86/subpixel_ssse3.asm > +--- vp8/common/x86/subpixel_ssse3.asm.orig > ++++ vp8/common/x86/subpixel_ssse3.asm > +@@ -37,6 +37,7 @@ SECTION .text > + ;) > + globalsym(vp8_filter_block1d8_h6_ssse3) > + sym(vp8_filter_block1d8_h6_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > +@@ -180,6 +181,7 @@ vp8_filter_block1d8_h4_ssse3: > + ;) > + globalsym(vp8_filter_block1d16_h6_ssse3) > + sym(vp8_filter_block1d16_h6_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > +@@ -287,6 +289,7 @@ sym(vp8_filter_block1d16_h6_ssse3): > + ;) > + globalsym(vp8_filter_block1d4_h6_ssse3) > + sym(vp8_filter_block1d4_h6_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > +@@ -417,6 +420,7 @@ sym(vp8_filter_block1d4_h6_ssse3): > + ;) > + globalsym(vp8_filter_block1d16_v6_ssse3) > + sym(vp8_filter_block1d16_v6_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > +@@ -605,6 +609,7 @@ sym(vp8_filter_block1d16_v6_ssse3): > + ;) > + globalsym(vp8_filter_block1d8_v6_ssse3) > + sym(vp8_filter_block1d8_v6_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > +@@ -745,6 +750,7 @@ sym(vp8_filter_block1d8_v6_ssse3): > + ;) > + globalsym(vp8_filter_block1d4_v6_ssse3) > + sym(vp8_filter_block1d4_v6_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > +@@ -884,6 +890,7 @@ sym(vp8_filter_block1d4_v6_ssse3): > + ;) > + globalsym(vp8_bilinear_predict16x16_ssse3) > + sym(vp8_bilinear_predict16x16_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > +@@ -1147,6 +1154,7 @@ sym(vp8_bilinear_predict16x16_ssse3): > + ;) > + globalsym(vp8_bilinear_predict8x8_ssse3) > + sym(vp8_bilinear_predict8x8_ssse3): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 6 > Index: patches/patch-vp8_encoder_x86_copy_sse3_asm > =================================================================== > RCS file: patches/patch-vp8_encoder_x86_copy_sse3_asm > diff -N patches/patch-vp8_encoder_x86_copy_sse3_asm > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-vp8_encoder_x86_copy_sse3_asm 28 Feb 2024 11:40:27 > -0000 > @@ -0,0 +1,12 @@ > +Index: vp8/encoder/x86/copy_sse3.asm > +--- vp8/encoder/x86/copy_sse3.asm.orig > ++++ vp8/encoder/x86/copy_sse3.asm > +@@ -94,6 +94,8 @@ SECTION .text > + globalsym(vp8_copy32xn_sse3) > + sym(vp8_copy32xn_sse3): > + > ++ _endbr64 > ++ > + STACK_FRAME_CREATE_X3 > + > + .block_copy_sse3_loopx4: > Index: patches/patch-vp8_encoder_x86_dct_sse2_asm > =================================================================== > RCS file: patches/patch-vp8_encoder_x86_dct_sse2_asm > diff -N patches/patch-vp8_encoder_x86_dct_sse2_asm > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-vp8_encoder_x86_dct_sse2_asm 28 Feb 2024 11:40:27 > -0000 > @@ -0,0 +1,21 @@ > +Index: vp8/encoder/x86/dct_sse2.asm > +--- vp8/encoder/x86/dct_sse2.asm.orig > ++++ vp8/encoder/x86/dct_sse2.asm > +@@ -66,6 +66,8 @@ SECTION .text > + globalsym(vp8_short_fdct4x4_sse2) > + sym(vp8_short_fdct4x4_sse2): > + > ++ _endbr64 > ++ > + STACK_FRAME_CREATE > + > + movq xmm0, MMWORD PTR[input ] ;03 02 01 00 > +@@ -170,6 +172,8 @@ sym(vp8_short_fdct4x4_sse2): > + ;void vp8_short_fdct8x4_sse2(short *input, short *output, int pitch) > + globalsym(vp8_short_fdct8x4_sse2) > + sym(vp8_short_fdct8x4_sse2): > ++ > ++ _endbr64 > + > + STACK_FRAME_CREATE > + > Index: patches/patch-vp8_encoder_x86_fwalsh_sse2_asm > =================================================================== > RCS file: patches/patch-vp8_encoder_x86_fwalsh_sse2_asm > diff -N patches/patch-vp8_encoder_x86_fwalsh_sse2_asm > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-vp8_encoder_x86_fwalsh_sse2_asm 28 Feb 2024 11:40:27 > -0000 > @@ -0,0 +1,11 @@ > +Index: vp8/encoder/x86/fwalsh_sse2.asm > +--- vp8/encoder/x86/fwalsh_sse2.asm.orig > ++++ vp8/encoder/x86/fwalsh_sse2.asm > +@@ -16,6 +16,7 @@ SECTION .text > + ;void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch) > + globalsym(vp8_short_walsh4x4_sse2) > + sym(vp8_short_walsh4x4_sse2): > ++ _endbr64 > + push rbp > + mov rbp, rsp > + SHADOW_ARGS_TO_STACK 3 > Index: patches/patch-vpx_ports_x86_abi_support_asm > =================================================================== > RCS file: patches/patch-vpx_ports_x86_abi_support_asm > diff -N patches/patch-vpx_ports_x86_abi_support_asm > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-vpx_ports_x86_abi_support_asm 28 Feb 2024 11:40:27 > -0000 > @@ -0,0 +1,17 @@ > +Index: vpx_ports/x86_abi_support.asm > +--- vpx_ports/x86_abi_support.asm.orig > ++++ vpx_ports/x86_abi_support.asm > +@@ -423,3 +423,13 @@ extern sym(rand) > + %define LIBVPX_RAND rand > + %endif > + %endif ; CONFIG_POSTPROC || CONFIG_VP9_POSTPROC > ++ > ++%if VPX_ARCH_X86_64=1 > ++%imacro _endbr64 0 > ++ dd 0xfa1e0ff3 > ++%endmacro > ++%else > ++%imacro _endbr64 0 > ++; empty > ++%endmacro > ++%endif >