diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2020-02-05 23:26:19 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2020-02-06 09:53:29 +0100 |
commit | 46e53c0360a38f620cf8c86fd0a3dc46c8238e0e (patch) | |
tree | 44144459762957bee4df958e4750f653068e009a /external | |
parent | 11d4e93acfab8772238e383feb01d01c01901a9e (diff) |
Revert "upgrade to latest glm"
This reverts commit 494092dc0c2f6fd04dbd973d6f76f1df720dbcf7. For reasons that
are still unclear, it appears to be the cause for CppunitTest_vcl_pdfexport
often (but not always) failing in Windows debug buidls, both --disable-64-bit
and --enable-64-bit. At least the 32 bit builds seem to all fail with
> Assertion failed: false && "out of range", file ...\include\tools/bigint.hxx, line 146
Change-Id: I472a83fa709e79f7a6bf00b118c041cbc7500e6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88069
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'external')
-rw-r--r-- | external/glm/UnpackedTarball_glm.mk | 3 | ||||
-rw-r--r-- | external/glm/Wshadow-patch-fix.patch | 11 | ||||
-rw-r--r-- | external/glm/Wsign-compare.patch.0 | 20 | ||||
-rw-r--r-- | external/glm/Wunused-parameter.patch | 18 | ||||
-rw-r--r-- | external/glm/c++20.patch.0 | 22 | ||||
-rw-r--r-- | external/glm/clang-cl.patch.0 | 42 |
6 files changed, 93 insertions, 23 deletions
diff --git a/external/glm/UnpackedTarball_glm.mk b/external/glm/UnpackedTarball_glm.mk index 934621eac841..940d12372b94 100644 --- a/external/glm/UnpackedTarball_glm.mk +++ b/external/glm/UnpackedTarball_glm.mk @@ -16,6 +16,9 @@ $(eval $(call gb_UnpackedTarball_set_patchflags,glm,$(if $(filter MSC,$(COM)),-- $(eval $(call gb_UnpackedTarball_set_patchlevel,glm,1)) $(eval $(call gb_UnpackedTarball_add_patches,glm, \ + external/glm/Wshadow-patch-fix.patch \ + external/glm/Wsign-compare.patch.0 \ + external/glm/Wunused-parameter.patch \ external/glm/clang-cl.patch.0 \ external/glm/c++20.patch.0 \ )) diff --git a/external/glm/Wshadow-patch-fix.patch b/external/glm/Wshadow-patch-fix.patch new file mode 100644 index 000000000000..3c25f40bda51 --- /dev/null +++ b/external/glm/Wshadow-patch-fix.patch @@ -0,0 +1,11 @@ +--- a/glm/core/type_vec4.hpp ++++ b/glm/core/type_vec4.hpp +@@ -185,7 +185,7 @@ + template <int E0, int E1>
+ GLM_FUNC_DECL tvec4(T const & x_, glm::detail::swizzle<2, T, tvec2<T>, E0, E1, -1, -2> const & v, T const & w_)
+ {
+- *this = tvec4<T>(x_, v(), w);
++ *this = tvec4<T>(x_, v(), w_);
+ }
+
+ template <int E0, int E1>
diff --git a/external/glm/Wsign-compare.patch.0 b/external/glm/Wsign-compare.patch.0 new file mode 100644 index 000000000000..ef97121ff97f --- /dev/null +++ b/external/glm/Wsign-compare.patch.0 @@ -0,0 +1,20 @@ +--- glm/gtx/bit.inl ++++ glm/gtx/bit.inl +@@ -576,7 +576,7 @@ + assert(ToBit <= sizeof(genIUType) * std::size_t(8));
+
+ genIUType Result = Value;
+- for(std::size_t i = 0; i <= ToBit; ++i)
++ for(int i = 0; i <= ToBit; ++i)
+ Result |= (1 << i);
+ return Result;
+ }
+@@ -593,7 +593,7 @@ + assert(ToBit <= sizeof(genIUType) * std::size_t(8));
+
+ genIUType Result = Value;
+- for(std::size_t i = 0; i <= ToBit; ++i)
++ for(int i = 0; i <= ToBit; ++i)
+ Result &= ~(1 << i);
+ return Result;
+ }
diff --git a/external/glm/Wunused-parameter.patch b/external/glm/Wunused-parameter.patch new file mode 100644 index 000000000000..de1239702679 --- /dev/null +++ b/external/glm/Wunused-parameter.patch @@ -0,0 +1,18 @@ +--- glm/glm/gtx/bit.inl ++++ glm/glm/gtx/bit.inl +@@ -572,6 +572,7 @@ + int const & ToBit
+ )
+ {
++ (void) FromBit;
+ assert(FromBit <= ToBit);
+ assert(ToBit <= sizeof(genIUType) * std::size_t(8));
+
+@@ -589,6 +589,7 @@ + int const & ToBit
+ )
+ {
++ (void) FromBit;
+ assert(FromBit <= ToBit);
+ assert(ToBit <= sizeof(genIUType) * std::size_t(8));
+
diff --git a/external/glm/c++20.patch.0 b/external/glm/c++20.patch.0 index 34a40b5ef4c6..559adde48946 100644 --- a/external/glm/c++20.patch.0 +++ b/external/glm/c++20.patch.0 @@ -1,11 +1,11 @@ ---- glm/detail/type_half.inl -+++ glm/detail/type_half.inl -@@ -6,7 +6,7 @@ - volatile float f = 1e10; - - for(int i = 0; i < 10; ++i) -- f *= f; // this will overflow before the for loop terminates -+ f = f * f; // this will overflow before the for loop terminates - return f; - } - +--- glm/core/type_half.inl ++++ glm/core/type_half.inl +@@ -40,7 +40,7 @@ + volatile float f = 1e10;
+
+ for(int i = 0; i < 10; ++i)
+- f *= f; // this will overflow before
++ f = f * f; // this will overflow before
+ // the forloop terminates
+ return f;
+ }
diff --git a/external/glm/clang-cl.patch.0 b/external/glm/clang-cl.patch.0 index 44713a1968c5..edbc30b2408b 100644 --- a/external/glm/clang-cl.patch.0 +++ b/external/glm/clang-cl.patch.0 @@ -1,14 +1,32 @@ # "#pragma intrinsic" not (yet?) handled in the "if (LangOpts.MicrosoftExt)" # block in Preprocessor::RegisterBuiltinPragmas in Clang's lib/Lex/Pragma.cpp: ---- glm/detail/func_integer.inl -+++ glm/detail/func_integer.inl -@@ -3,7 +3,9 @@ - #include "_vectorize.hpp" - #if(GLM_ARCH & GLM_ARCH_X86 && GLM_COMPILER & GLM_COMPILER_VC) - # include <intrin.h> -+#if !defined __clang__^M - # pragma intrinsic(_BitScanReverse) -+#endif - #endif//(GLM_ARCH & GLM_ARCH_X86 && GLM_COMPILER & GLM_COMPILER_VC) - #include <limits> - +--- glm/core/func_integer.inl ++++ glm/core/func_integer.inl +@@ -29,7 +29,9 @@ + #if(GLM_ARCH != GLM_ARCH_PURE)
+ #if(GLM_COMPILER & GLM_COMPILER_VC)
+ # include <intrin.h>
++#if !defined __clang__
+ # pragma intrinsic(_BitScanReverse)
++#endif
+ #endif//(GLM_COMPILER & GLM_COMPILER_VC)
+ #endif//(GLM_ARCH != GLM_ARCH_PURE)
+
+ +# Fix check for availability of C++11 static_assert (it apparently should be +# conditional on GLM_LANG_CXX11 instead of GLM_LANG_CXX0X, but just don't care +# to try to fix that mess, and use __cplusplus value instead; unconditionally +# using C++11 static_assert would fail in external/libgltf, which uses +# external/glm but does not -std=c++11); falling back to BOOST_STATIC_ASSERT +# would cause unnecessary warnings with clang-cl: +--- glm/core/setup.hpp ++++ glm/core/setup.hpp +@@ -628,7 +628,7 @@ + ///////////////////////////////////////////////////////////////////////////////////////////////////
+ // Static assert
+
+-#if(GLM_LANG == GLM_LANG_CXX0X)
++#if __cplusplus >= 201103L
+ # define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
+ #elif(defined(BOOST_STATIC_ASSERT))
+ # define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)
|