summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-12-17 16:25:44 -0800
committerKhem Raj <raj.khem@gmail.com>2019-12-18 14:27:30 -0800
commit4ada0c17f76096b36f7ee9109dc9062bc7b4e73d (patch)
tree88a0f33286a0a2240b75f15a599771baf2da2254
parentf67b556a90471921616ebdbf4e9eec08d1a7db8e (diff)
downloadmeta-clang-4ada0c17f76096b36f7ee9109dc9062bc7b4e73d.tar.gz
ffmpeg,gstreamer1.0-libav: Fix mips64/clang build error
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes-multimedia/ffmpeg/ffmpeg/clang_mips64.patch28
-rw-r--r--recipes-multimedia/ffmpeg/ffmpeg_%.bbappend3
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-fpu-using-code-when-using-clang-mips64-combo.patch40
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-libav_%.bbappend4
4 files changed, 75 insertions, 0 deletions
diff --git a/recipes-multimedia/ffmpeg/ffmpeg/clang_mips64.patch b/recipes-multimedia/ffmpeg/ffmpeg/clang_mips64.patch
new file mode 100644
index 0000000..9206af1
--- /dev/null
+++ b/recipes-multimedia/ffmpeg/ffmpeg/clang_mips64.patch
@@ -0,0 +1,28 @@
1Disable fpu using code when using clang/mips64 combo
2it works around clang's inline asm error
3
4error: couldn't allocate output register for constraint 'r'
5
6Upstream-Status: Pending
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8
9--- a/libavcodec/mips/aacdec_mips.c
10+++ b/libavcodec/mips/aacdec_mips.c
11@@ -282,7 +282,7 @@ static void apply_ltp_mips(AACContext *a
12 }
13 }
14
15-#if HAVE_MIPSFPU
16+#if HAVE_MIPSFPU && !defined(__clang__)
17 static av_always_inline void fmul_and_reverse(float *dst, const float *src0, const float *src1, int count)
18 {
19 /* Multiply 'count' floats in src0 by src1 and store the results in dst in reverse */
20@@ -435,7 +435,7 @@ void ff_aacdec_init_mips(AACContext *c)
21 #if HAVE_INLINE_ASM
22 c->imdct_and_windowing = imdct_and_windowing_mips;
23 c->apply_ltp = apply_ltp_mips;
24-#if HAVE_MIPSFPU
25+#if HAVE_MIPSFPU && !defined(__clang__)
26 c->update_ltp = update_ltp_mips;
27 #endif /* HAVE_MIPSFPU */
28 #endif /* HAVE_INLINE_ASM */
diff --git a/recipes-multimedia/ffmpeg/ffmpeg_%.bbappend b/recipes-multimedia/ffmpeg/ffmpeg_%.bbappend
new file mode 100644
index 0000000..2077fda
--- /dev/null
+++ b/recipes-multimedia/ffmpeg/ffmpeg_%.bbappend
@@ -0,0 +1,3 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
2
3SRC_URI_append_toolchain-clang_mips64 = " file://clang_mips64.patch"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-fpu-using-code-when-using-clang-mips64-combo.patch b/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-fpu-using-code-when-using-clang-mips64-combo.patch
new file mode 100644
index 0000000..93ab73f
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-fpu-using-code-when-using-clang-mips64-combo.patch
@@ -0,0 +1,40 @@
1From 91c980d4cf88b0c12fe5971fe16c7b97b5a942af Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 17 Dec 2019 14:57:55 -0800
4Subject: [PATCH] Disable fpu using code when using clang/mips64 combo
5
6it works around clang's inline asm error
7
8error: couldn't allocate output register for constraint 'r'
9
10Upstream-Status: Pending
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 gst-libs/ext/libav/libavcodec/mips/aacdec_mips.c | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/gst-libs/ext/libav/libavcodec/mips/aacdec_mips.c b/gst-libs/ext/libav/libavcodec/mips/aacdec_mips.c
17index 253cdeb..df4f25d 100644
18--- a/gst-libs/ext/libav/libavcodec/mips/aacdec_mips.c
19+++ b/gst-libs/ext/libav/libavcodec/mips/aacdec_mips.c
20@@ -282,7 +282,7 @@ static void apply_ltp_mips(AACContext *ac, SingleChannelElement *sce)
21 }
22 }
23
24-#if HAVE_MIPSFPU
25+#if HAVE_MIPSFPU && !defined(__clang__)
26 static av_always_inline void fmul_and_reverse(float *dst, const float *src0, const float *src1, int count)
27 {
28 /* Multiply 'count' floats in src0 by src1 and store the results in dst in reverse */
29@@ -435,7 +435,7 @@ void ff_aacdec_init_mips(AACContext *c)
30 #if HAVE_INLINE_ASM
31 c->imdct_and_windowing = imdct_and_windowing_mips;
32 c->apply_ltp = apply_ltp_mips;
33-#if HAVE_MIPSFPU
34+#if HAVE_MIPSFPU && !defined(__clang__)
35 c->update_ltp = update_ltp_mips;
36 #endif /* HAVE_MIPSFPU */
37 #endif /* HAVE_INLINE_ASM */
38--
392.24.1
40
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav_%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-libav_%.bbappend
new file mode 100644
index 0000000..dee9619
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-libav_%.bbappend
@@ -0,0 +1,4 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
2
3SRC_URI_append_toolchain-clang_mips64 = " file://0001-Disable-fpu-using-code-when-using-clang-mips64-combo.patch"
4