diff --git a/dav1d-nasm-2.15.patch b/dav1d-nasm-2.15.patch new file mode 100644 index 0000000..bc98ca6 --- /dev/null +++ b/dav1d-nasm-2.15.patch @@ -0,0 +1,142 @@ +From 2b567aaa367c63975ad7f4fcbad96051a276a8d1 Mon Sep 17 00:00:00 2001 +From: Henrik Gramner +Date: Tue, 30 Jun 2020 23:33:27 +0200 +Subject: [PATCH] Fix compilation with nasm 2.15 + +%{:} macro operand ranges were broken in nasm 2.15 which causes +errors when compiling, so avoid using those for now. + +Some new warnings regarding use of empty macro parameters has also +been added, adjust some x86inc code to silence those. +--- + src/ext/x86/x86inc.asm | 46 +++++++++++++++++++++++++++--------------- + src/x86/mc_sse.asm | 6 +----- + 2 files changed, 31 insertions(+), 21 deletions(-) + +diff --git a/src/ext/x86/x86inc.asm b/src/ext/x86/x86inc.asm +index 1ccd5cda..38a54710 100644 +--- a/src/ext/x86/x86inc.asm ++++ b/src/ext/x86/x86inc.asm +@@ -425,16 +425,6 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 + %endif + %endmacro + +-%macro DEFINE_ARGS_INTERNAL 3+ +- %ifnum %2 +- DEFINE_ARGS %3 +- %elif %1 == 4 +- DEFINE_ARGS %2 +- %elif %1 > 4 +- DEFINE_ARGS %2, %3 +- %endif +-%endmacro +- + %if WIN64 ; Windows x64 ;================================================= + + DECLARE_REG 0, rcx +@@ -453,7 +443,7 @@ DECLARE_REG 12, R15, 104 + DECLARE_REG 13, R12, 112 + DECLARE_REG 14, R13, 120 + +-%macro PROLOGUE 2-5+ 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... ++%macro PROLOGUE 2-5+ 0, 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... + %assign num_args %1 + %assign regs_used %2 + ASSERT regs_used >= num_args +@@ -465,7 +455,15 @@ DECLARE_REG 14, R13, 120 + WIN64_SPILL_XMM %3 + %endif + LOAD_IF_USED 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 +- DEFINE_ARGS_INTERNAL %0, %4, %5 ++ %if %0 > 4 ++ %ifnum %4 ++ DEFINE_ARGS %5 ++ %else ++ DEFINE_ARGS %4, %5 ++ %endif ++ %elifnnum %4 ++ DEFINE_ARGS %4 ++ %endif + %endmacro + + %macro WIN64_PUSH_XMM 0 +@@ -561,7 +559,7 @@ DECLARE_REG 12, R15, 56 + DECLARE_REG 13, R12, 64 + DECLARE_REG 14, R13, 72 + +-%macro PROLOGUE 2-5+ 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... ++%macro PROLOGUE 2-5+ 0, 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... + %assign num_args %1 + %assign regs_used %2 + %assign xmm_regs_used %3 +@@ -571,7 +569,15 @@ DECLARE_REG 14, R13, 72 + PUSH_IF_USED 9, 10, 11, 12, 13, 14 + ALLOC_STACK %4 + LOAD_IF_USED 6, 7, 8, 9, 10, 11, 12, 13, 14 +- DEFINE_ARGS_INTERNAL %0, %4, %5 ++ %if %0 > 4 ++ %ifnum %4 ++ DEFINE_ARGS %5 ++ %else ++ DEFINE_ARGS %4, %5 ++ %endif ++ %elifnnum %4 ++ DEFINE_ARGS %4 ++ %endif + %endmacro + + %define has_epilogue regs_used > 9 || stack_size > 0 || vzeroupper_required +@@ -612,7 +618,7 @@ DECLARE_REG 6, ebp, 28 + + DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14 + +-%macro PROLOGUE 2-5+ ; #args, #regs, #xmm_regs, [stack_size,] arg_names... ++%macro PROLOGUE 2-5+ 0, 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names... + %assign num_args %1 + %assign regs_used %2 + ASSERT regs_used >= num_args +@@ -627,7 +633,15 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14 + PUSH_IF_USED 3, 4, 5, 6 + ALLOC_STACK %4 + LOAD_IF_USED 0, 1, 2, 3, 4, 5, 6 +- DEFINE_ARGS_INTERNAL %0, %4, %5 ++ %if %0 > 4 ++ %ifnum %4 ++ DEFINE_ARGS %5 ++ %else ++ DEFINE_ARGS %4, %5 ++ %endif ++ %elifnnum %4 ++ DEFINE_ARGS %4 ++ %endif + %endmacro + + %define has_epilogue regs_used > 3 || stack_size > 0 || vzeroupper_required +diff --git a/src/x86/mc_sse.asm b/src/x86/mc_sse.asm +index 5402ccce..30d1603a 100644 +--- a/src/x86/mc_sse.asm ++++ b/src/x86/mc_sse.asm +@@ -2743,7 +2743,7 @@ cglobal put_8tap, 1, 9, 0, dst, ds, src, ss, w, h, mx, my, ss3 + %endif + %endmacro + +-%macro PREP_8TAP_HV_LOAD 4 ; dst0, src_memloc, tmp[1-2] ++%macro PREP_8TAP_HV 4 ; dst, src_memloc, tmp[1-2] + %if cpuflag(ssse3) + movu %1, [%2] + pshufb m2, %1, shufB +@@ -2754,10 +2754,6 @@ cglobal put_8tap, 1, 9, 0, dst, ds, src, ss, w, h, mx, my, ss3 + PREP_8TAP_H_LOAD4 m2, %2+4, m1, %3, %4 + PREP_8TAP_H_LOAD4 m3, %2+8, m1, %3, %4 + %endif +-%endmacro +- +-%macro PREP_8TAP_HV 4 ; dst, src_memloc, tmp[1-2] +- PREP_8TAP_HV_LOAD %{1:4} + mova m1, m2 + PMADDUBSW m1, subpelh0, %3, %4, 1 ; subpel +0 C0 + PMADDUBSW m3, subpelh1, %3, %4, 0 ; subpel +4 B4 +-- +GitLab + + diff --git a/dav1d.changes b/dav1d.changes index baef20f..b4e15ff 100644 --- a/dav1d.changes +++ b/dav1d.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Sep 1 11:11:55 UTC 2020 - Dominique Leuenberger + +- Add dav1d-nasm-2.15.patch: Fix compilation with nasm 2.15. + ------------------------------------------------------------------- Mon Jun 22 08:13:31 UTC 2020 - aloisio@gmx.com diff --git a/dav1d.spec b/dav1d.spec index 67ee188..f8bd4ab 100644 --- a/dav1d.spec +++ b/dav1d.spec @@ -26,6 +26,8 @@ Group: Productivity/Multimedia/Video/Editors and Convertors URL: https://code.videolan.org/videolan/dav1d Source0: https://code.videolan.org/videolan/dav1d/-/archive/%{version}/dav1d-%{version}.tar.gz Source99: baselibs.conf +# PATCH-FIX-UPSTREAM dav1d-nasm-2.15.patch dimstar@opensuse.org -- Fix compilation with nasm 2.15 +Patch0: dav1d-nasm-2.15.patch BuildRequires: meson >= 0.47.0 BuildRequires: nasm >= 2.14 BuildRequires: pkgconfig