Accepting request 831058 from home:dimstar:Factory

- Add dav1d-nasm-2.15.patch: Fix compilation with nasm 2.15.

OBS-URL: https://build.opensuse.org/request/show/831058
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/dav1d?expand=0&rev=36
This commit is contained in:
Luigi Baldoni 2020-09-01 11:33:45 +00:00 committed by Git OBS Bridge
parent 01c46c75bf
commit c8c20f87a5
3 changed files with 149 additions and 0 deletions

142
dav1d-nasm-2.15.patch Normal file
View File

@ -0,0 +1,142 @@
From 2b567aaa367c63975ad7f4fcbad96051a276a8d1 Mon Sep 17 00:00:00 2001
From: Henrik Gramner <gramner@twoorioles.com>
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

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Tue Sep 1 11:11:55 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
- Add dav1d-nasm-2.15.patch: Fix compilation with nasm 2.15.
-------------------------------------------------------------------
Mon Jun 22 08:13:31 UTC 2020 - aloisio@gmx.com

View File

@ -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