summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2020-12-07 09:35:25 +0100
committerStephan Bergmann <sbergman@redhat.com>2020-12-07 10:24:55 +0100
commite70168ec88642dc4940bf6cf7ae49a97afc84916 (patch)
treea283373e9ec9b2c706f9d36e59627bce6284f6e8 /external
parentec4daaea9012077246d4b935001848a8ab94f164 (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')
-rw-r--r--external/firebird/ExternalProject_firebird.mk1
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) \