[vlc-commits] contrib: lame: fix sse optimizations build on win32 with gcc 4.9

Rafaël Carré git at videolan.org
Sun Jun 8 21:21:34 CEST 2014


vlc | branch: master | Rafaël Carré <funman at videolan.org> | Sun Jun  8 12:18:41 2014 -0700| [351af417bae0d09bd5a3753d1237f03adf591933] | committer: Rafaël Carré

contrib: lame: fix sse optimizations build on win32 with gcc 4.9

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=351af417bae0d09bd5a3753d1237f03adf591933
---

 contrib/src/lame/rules.mak |    1 +
 contrib/src/lame/sse.patch |   30 ++++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/contrib/src/lame/rules.mak b/contrib/src/lame/rules.mak
index 1f5578a..5d94b69 100644
--- a/contrib/src/lame/rules.mak
+++ b/contrib/src/lame/rules.mak
@@ -11,6 +11,7 @@ $(TARBALLS)/lame-$(LAME_VERSION).tar.gz:
 lame: lame-$(LAME_VERSION).tar.gz .sum-lame
 	$(UNPACK)
 	$(APPLY) $(SRC)/lame/lame-forceinline.patch
+	$(APPLY) $(SRC)/lame/sse.patch
 	$(UPDATE_AUTOCONFIG)
 	$(MOVE)
 
diff --git a/contrib/src/lame/sse.patch b/contrib/src/lame/sse.patch
new file mode 100644
index 0000000..7958c64
--- /dev/null
+++ b/contrib/src/lame/sse.patch
@@ -0,0 +1,30 @@
+xmm_quantize_sub.c: In function 'init_xrpow_core_sse':
+xmm_quantize_sub.c:65:18: warning: SSE vector return without SSE enabled changes the ABI [-W
+psabi]
+     const __m128 vec_fabs_mask = _mm_loadu_ps(&fabs_mask._float[0]);
+                  ^
+In file included from xmm_quantize_sub.c:37:0:
+/usr/lib/gcc/i686-w64-mingw32/4.9.0/include/xmmintrin.h:933:1: error: inlining failed in call to always_inline '_mm_loadu_ps': target specific option mismatch
+ _mm_loadu_ps (float const *__P)
+ ^
+xmm_quantize_sub.c:65:18: error: called from here
+     const __m128 vec_fabs_mask = _mm_loadu_ps(&fabs_mask._float[0]);
+                  ^
+--- lame/libmp3lame/vector/xmm_quantize_sub.c.orig	2014-06-08 12:16:19.455468042 -0700
++++ lame/libmp3lame/vector/xmm_quantize_sub.c	2014-06-08 12:16:09.592356980 -0700
+@@ -35,6 +35,7 @@
+ #ifdef HAVE_XMMINTRIN_H
+ 
+ #include <xmmintrin.h>
++#pragma GCC target("sse")
+ 
+ typedef union {
+     int32_t _i_32[4]; /* unions are initialized by its first member */
+@@ -124,6 +125,7 @@
+ }
+ 
+ 
++#pragma GCC target("sse2")
+ void
+ fht_SSE2(FLOAT * fz, int n)
+ {



More information about the vlc-commits mailing list