commit sfml2 for openSUSE:Factory
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 - mlin@suse.com + +- 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
participants (1)
-
root@hilbert.suse.de