From 908cbf9b9b3c96be921a52755b70779d37599860 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Wed, 23 Aug 2023 07:53:47 +0000 Subject: Initial revision --- ffmpeg/build/patches/ffmpeg_binutils241.patch | 76 +++++++++++++++++++++++++++ ffmpeg/build/patches/mfx_dispatch_gcc13.patch | 66 +++++++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 ffmpeg/build/patches/ffmpeg_binutils241.patch create mode 100644 ffmpeg/build/patches/mfx_dispatch_gcc13.patch (limited to 'ffmpeg/build') diff --git a/ffmpeg/build/patches/ffmpeg_binutils241.patch b/ffmpeg/build/patches/ffmpeg_binutils241.patch new file mode 100644 index 00000000..33fd3d48 --- /dev/null +++ b/ffmpeg/build/patches/ffmpeg_binutils241.patch @@ -0,0 +1,76 @@ +From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= +Date: Sun, 16 Jul 2023 18:18:02 +0300 +Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift + instructions within inline assembly + +Fixes assembling with binutil as >= 2.41 + +Signed-off-by: James Almer +--- + libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h +index 6298f5ed19..ca7e2dffc1 100644 +--- a/libavcodec/x86/mathops.h ++++ b/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + +-- +2.30.2 + diff --git a/ffmpeg/build/patches/mfx_dispatch_gcc13.patch b/ffmpeg/build/patches/mfx_dispatch_gcc13.patch new file mode 100644 index 00000000..21c7a88e --- /dev/null +++ b/ffmpeg/build/patches/mfx_dispatch_gcc13.patch @@ -0,0 +1,66 @@ +From d6241243f85a0d947bdfe813006686a930edef24 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tomasz=20K=C5=82oczko?= +Date: Thu, 26 Jan 2023 20:15:33 +0000 +Subject: [PATCH] Fix building with gcc 13.x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In fedoe=ra now is used gcc 13.0.1 with whoch build fails +with below errora + +src/mfxparser.cpp: In function 'std::string MFX::printCodecId(mfxU32)': +src/mfxparser.cpp:60:3: error: 'uint8_t' was not declared in this scope + 60 | uint8_t* data = reinterpret_cast(&id); + | ^~~~~~~ +src/mfxparser.cpp:29:1: note: 'uint8_t' is defined in header ''; did you forget to '#include '? + 28 | #include "mfxloader.h" + +++ |+#include + 29 | +src/mfxparser.cpp:60:12: error: 'data' was not declared in this scope; did you mean 'std::data'? + 60 | uint8_t* data = reinterpret_cast(&id); + | ^~~~ + | std::data +In file included from /usr/include/c++/13/list:64, + from src/mfxparser.cpp:26: +/usr/include/c++/13/bits/range_access.h:346:5: note: 'std::data' declared here + 346 | data(initializer_list<_Tp> __il) noexcept + | ^~~~ +src/mfxparser.cpp:60:36: error: 'uint8_t' does not name a type + 60 | uint8_t* data = reinterpret_cast(&id); + | ^~~~~~~ +src/mfxparser.cpp:60:36: note: 'uint8_t' is defined in header ''; did you forget to '#include '? +src/mfxparser.cpp:60:43: error: expected '>' before '*' token + 60 | uint8_t* data = reinterpret_cast(&id); + | ^ +src/mfxparser.cpp:60:43: error: expected '(' before '*' token + 60 | uint8_t* data = reinterpret_cast(&id); + | ^ + | ( +src/mfxparser.cpp:60:44: error: expected primary-expression before '>' token + 60 | uint8_t* data = reinterpret_cast(&id); + | ^ +src/mfxparser.cpp:60:50: error: expected ')' before ';' token + 60 | uint8_t* data = reinterpret_cast(&id); + | ^ + | ) + +This patch fixes that issue. + +Signed-off-by: Tomasz Kłoczko +--- + src/mfxparser.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/mfxparser.cpp b/src/mfxparser.cpp +index 9d3823e..beea532 100644 +--- a/src/mfxparser.cpp ++++ b/src/mfxparser.cpp +@@ -23,6 +23,7 @@ + #include + #include + ++#include + #include + + #include "mfxloader.h" -- cgit v1.2.3-65-gdbad