vlc/vlc-3.0 | branch: master | Martin Storsjö <[email protected]> | Sat Feb 24 
00:14:13 2018 +0200| [1436ac0de104af7664d7c0769cb0015a39164734] | committer: 
Steve Lhomme

contrib: goom: Fix building for i386 with clang

This is based on a patch from gst-plugins-good (which bundles a copy
of the goom sources), based on a patch from FreeBSD ports.

(cherry picked from commit 8743195a1a6b58efb79eeac74d375fb2ff414ce7)
Signed-off-by: Steve Lhomme <[email protected]>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=1436ac0de104af7664d7c0769cb0015a39164734
---

 contrib/src/goom/clang-emms.patch | 54 +++++++++++++++++++++++++++++++++++++++
 contrib/src/goom/rules.mak        |  1 +
 2 files changed, 55 insertions(+)

diff --git a/contrib/src/goom/clang-emms.patch 
b/contrib/src/goom/clang-emms.patch
new file mode 100644
index 0000000000..6fa423cd5e
--- /dev/null
+++ b/contrib/src/goom/clang-emms.patch
@@ -0,0 +1,54 @@
+From 94ad6724ba5c0136d385cc0f052db636bf99a86c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <[email protected]>
+Date: Sat, 21 Sep 2013 18:46:29 +0200
+Subject: goom: Fix MMX assembly compilation with clang
+
+clang does not want or need a clobber list for emms:
+error: clobbers must be last on the x87 stack
+
+Patch taken from the FreeBSD ports, provided by
+Dan McGregor <[email protected]>
+---
+Adapted from here:
+https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=94ad6724ba5c0136d385cc0f052db636bf99a86c
+---
+ src/mmx.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/mmx.h b/src/mmx.h
+index 3fae26b..2649e10 100644
+--- a/src/mmx.h
++++ b/src/mmx.h
+@@ -711,17 +711,29 @@ void zoom_filter_xmmx (int prevX, int prevY, Pixel 
*expix1, Pixel *expix2,
+ */
+ #ifdef        MMX_TRACE
+ 
++#ifdef __clang__
++#define emms() \
++      { \
++              printf("emms()\n"); \
++              __asm__ __volatile__ ("emms"); \
++      }
++#else
+ #define       emms() \
+       { \
+               printf("emms()\n"); \
+               __asm__ __volatile__ ("emms" \
+                         
"st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"); \
+       }
++#endif
+ 
+ #else
+ 
++#ifdef __clang__
++#define       emms() __asm__ __volatile__ ("emms")
++#else
+ #define       emms() __asm__ __volatile__ ("emms"::: \
+                       "st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)")
++#endif
+ 
+ #endif
+ 
+-- 
+cgit v1.1
+
diff --git a/contrib/src/goom/rules.mak b/contrib/src/goom/rules.mak
index 7bc27c255d..64e96e6e1e 100644
--- a/contrib/src/goom/rules.mak
+++ b/contrib/src/goom/rules.mak
@@ -26,6 +26,7 @@ endif
 ifdef HAVE_MACOSX
        $(APPLY) $(SRC)/goom/goom2k4-osx.patch
 endif
+       $(APPLY) $(SRC)/goom/clang-emms.patch
        $(MOVE)
 
 .goom: goom

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to