diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2020-12-07 09:35:25 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2020-12-07 10:24:55 +0100 |
commit | e70168ec88642dc4940bf6cf7ae49a97afc84916 (patch) | |
tree | a283373e9ec9b2c706f9d36e59627bce6284f6e8 /external/firebird | |
parent | ec4daaea9012077246d4b935001848a8ab94f164 (diff) |
external/firebird: clang-cl needs -march=x86-64-v2 now
...to avoid
> C:/lo/core/workdir/UnpackedTarball/firebird/src/common/CRC32C.cpp(41,10): error: always_inline function '_mm_crc32_u8' requires target feature 'sse4.2', but would be inlined into function 'CRC32C' that is compiled without support for 'sse4.2'
> return _mm_crc32_u8(hash_value, *value);
> ^
etc.
With <https://github.com/FirebirdSQL/firebird/commit/
52d9a05a0f3d811a9de7f15956ee9286d5711648> "Backport from master", that code
appeared on the B3_0_Release branch only after R3_0_1, so was not present in our
Firebird-3.0.0.32483-0.tar.bz2 before 86744f03992213af162df6954313c9f9e44e3a0a
"firebird: update to 3.0.7".
This is apparently about the SSE4.2 CRC32 instruction. Not sure how this works
in the MSVC build, whether it implicitly generates code targeting SSE4.2
(<https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-160>
"/arch (x64)" does not mention any switch to explicitly enable it), or whether
its _mm_crc32_u* intrinsics would be smart enough to generate code that also
works when SSE4.2 is not available at runtime.
Change-Id: I893733eb079e6c0eb8b685a55ce09e1fdcd2eda2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107334
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'external/firebird')
-rw-r--r-- | external/firebird/ExternalProject_firebird.mk | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/external/firebird/ExternalProject_firebird.mk b/external/firebird/ExternalProject_firebird.mk index 95663a508928..0a1706031746 100644 --- a/external/firebird/ExternalProject_firebird.mk +++ b/external/firebird/ExternalProject_firebird.mk @@ -47,6 +47,7 @@ $(call gb_ExternalProject_get_state_target,firebird,build): && export CXXFLAGS=" \ $(BOOST_CXXFLAGS) \ $(if $(filter MSC,$(COM)),$(if $(MSVC_USE_DEBUG_RUNTIME),-DMSVC_USE_DEBUG_RUNTIME)) \ + $(if $(filter MSC-TRUE-X86_64,$(COM)-$(COM_IS_CLANG)-$(CPUNAME)),-march=x86-64-v2) \ $(if $(HAVE_GCC_FNO_SIZED_DEALLOCATION),-fno-sized-deallocation -fno-delete-null-pointer-checks) \ $(CXXFLAGS_CXX11) \ $(if $(filter TRUE,$(COM_IS_CLANG)), -Wno-c++11-narrowing) \ |