Hello community,

here is the log from the commit of package sfml2 for openSUSE:Factory checked 
in at 2017-06-30 18:42:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sfml2 (Old)
 and      /work/SRC/openSUSE:Factory/.sfml2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sfml2"

Fri Jun 30 18:42:04 2017 rev:7 rq:507268 version:2.4.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/sfml2/sfml2.changes      2017-03-03 
17:43:51.462872735 +0100
+++ /work/SRC/openSUSE:Factory/.sfml2.new/sfml2.changes 2017-06-30 
18:43:25.429170803 +0200
@@ -1,0 +2,7 @@
+Thu Jun 29 13:07:59 UTC 2017 - [email protected]
+
+- Add dont-try-to-runtime-detect-sse2-on-gcc.diff from stb upstream
+  * Give up trying to runtime-detect SSE2 on GCC, this fixes build
+    failure in 42.3
+
+-------------------------------------------------------------------

New:
----
  dont-try-to-runtime-detect-sse2-on-gcc.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ sfml2.spec ++++++
--- /var/tmp/diff_new_pack.NtoZkK/_old  2017-06-30 18:43:26.828973912 +0200
+++ /var/tmp/diff_new_pack.NtoZkK/_new  2017-06-30 18:43:26.828973912 +0200
@@ -26,6 +26,9 @@
 Url:            http://www.sfml-dev.org/
 Source0:        
https://github.com/SFML/SFML/archive/%{version}/SFML-%{version}.tar.gz
 Source1:        baselibs.conf
+# PATCH-FIX-UPSTREAM Give up trying to runtime-detect SSE2 on GCC - patch is
+# from stb upstream commit 3e175448 and 7a694bdc
+Patch0:         dont-try-to-runtime-detect-sse2-on-gcc.diff
 BuildRequires:  cmake
 BuildRequires:  dos2unix
 BuildRequires:  doxygen
@@ -94,7 +97,8 @@
 
 %prep
 %setup -q -n SFML-%{version}
-dos2unix license.txt
+%patch0 -p1
+dos2unix --keepdate license.txt
 
 %build
 %cmake -DSFML_BUILD_DOC=TRUE \

++++++ dont-try-to-runtime-detect-sse2-on-gcc.diff ++++++
Index: SFML-2.3.2/extlibs/headers/stb_image/stb_image.h
===================================================================
--- SFML-2.3.2.orig/extlibs/headers/stb_image/stb_image.h
+++ SFML-2.3.2/extlibs/headers/stb_image/stb_image.h
@@ -624,15 +624,18 @@ typedef unsigned char validate_uint32[si
 #define STBI_FREE(p)       free(p)
 #endif
 
-#if defined(__GNUC__) && !defined(__SSE2__) && !defined(STBI_NO_SIMD)
+#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && 
!defined(STBI_NO_SIMD)
 // gcc doesn't support sse2 intrinsics unless you compile with -msse2,
-// (but compiling with -msse2 allows the compiler to use SSE2 everywhere;
-// this is just broken and gcc are jerks for not fixing it properly
-// http://www.virtualdub.org/blog/pivot/entry.php?id=363 )
+//which in turn means it gets to use SSE2 everywhere. This is unfortunate,
+// but previous attempts to provide the SSE2 functions with runtime
+// detection caused numerous issues. The way architecture extensions are
+// exposed in GCC/Clang is, sadly, not really suited for one-file libs.
+// New behavior: if compiled with -msse2, we use SSE2 without any
+// detection; if not, we don't use it at all.
 #define STBI_NO_SIMD
 #endif
 
-#if !defined(STBI_NO_SIMD) && (defined(__x86_64__) || defined(_M_X64) || 
defined(__i386) || defined(_M_IX86))
+#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || 
defined(STBI__X64_TARGET))
 #define STBI_SSE2
 #include <emmintrin.h>
 
@@ -671,14 +674,10 @@ static int stbi__sse2_available()
 
 static int stbi__sse2_available()
 {
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 // GCC 4.8 
or later
-   // GCC 4.8+ has a nice way to do this
-   return __builtin_cpu_supports("sse2");
-#else
-   // portable way to do this, preferably without using GCC inline ASM?
-   // just bail for now.
-   return 0;
-#endif
+    // If we're even attempting to compile this on GCC/Clang, that means
+    // -msse2 is on, which means the compiler is allowed to use SSE2
+    // instructions at will, and so are we.
+    return 1;
 }
 #endif
 #endif

Reply via email to