[oe] [meta-oe][meta-efl][PATCH 9/9] libav-0.7.4: fix build with gcc-4.7
Martin Jansa
martin.jansa at gmail.com
Mon Apr 30 19:36:43 UTC 2012
A cmp instruction with two constants is invalid, therefore 'g'
constraint is not correct but must be "rm" instead.
Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
---
.../libav/libav-0.7.4/h264_qpel_mmx.patch | 57 ++++++++++++++++++++
meta-oe/recipes-multimedia/libav/libav_0.7.4.bb | 6 ++-
2 files changed, 61 insertions(+), 2 deletions(-)
create mode 100644 meta-oe/recipes-multimedia/libav/libav-0.7.4/h264_qpel_mmx.patch
diff --git a/meta-oe/recipes-multimedia/libav/libav-0.7.4/h264_qpel_mmx.patch b/meta-oe/recipes-multimedia/libav/libav-0.7.4/h264_qpel_mmx.patch
new file mode 100644
index 0000000..5656c47
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libav/libav-0.7.4/h264_qpel_mmx.patch
@@ -0,0 +1,57 @@
+Backport http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=5f654897e325349dacf2546674e0510bb72ecb50;hp=250cebeb3b348c3da71f9972eb500d6005dc01f1
+
+Fixes these errors on x86
+
+libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
+libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
+
+
+Signed-off-by: Khem Raj <raj.khem at gmail.com>
+Upstream-status: Backport
+Index: b/libavcodec/x86/h264_qpel_mmx.c
+===================================================================
+--- a/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
++++ b/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
+@@ -398,7 +398,7 @@
+ "2: \n\t"\
+ \
+ : "+a"(src), "+c"(dst)\
+- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
+ : "memory"\
+ );\
+ src += 4-(h+5)*srcStride;\
+@@ -446,7 +446,7 @@
+ QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
+ "2: \n\t"\
+ : "+a"(src)\
+- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
+ : "memory"\
+ );\
+ tmp += 4;\
+@@ -823,7 +823,7 @@
+ "2: \n\t"\
+ \
+ : "+a"(src), "+c"(dst)\
+- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
+ : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
+ "memory"\
+@@ -878,7 +878,7 @@
+ QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
+ "2: \n\t"
+ : "+a"(src)
+- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
+ : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
+ "memory"
diff --git a/meta-oe/recipes-multimedia/libav/libav_0.7.4.bb b/meta-oe/recipes-multimedia/libav/libav_0.7.4.bb
index c4c01db..bf077c6 100644
--- a/meta-oe/recipes-multimedia/libav/libav_0.7.4.bb
+++ b/meta-oe/recipes-multimedia/libav/libav_0.7.4.bb
@@ -10,9 +10,11 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRCREV = "d4653e882fee5a2876c3878bc23d26799e3380ad"
PV = "0.7.4"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
-SRC_URI = "git://git.libav.org/libav.git;protocol=git;branch=release/0.7"
+SRC_URI = "git://git.libav.org/libav.git;protocol=git;branch=release/0.7 \
+ file://h264_qpel_mmx.patch \
+"
S = "${WORKDIR}/git"
--
1.7.8.6
More information about the Openembedded-devel
mailing list