[Libreoffice-commits] core.git: external/firebird

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Mon Dec 7 09:25:32 UTC 2020


 external/firebird/ExternalProject_firebird.mk |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit e70168ec88642dc4940bf6cf7ae49a97afc84916
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Dec 7 09:35:25 2020 +0100
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Mon Dec 7 10:24:55 2020 +0100

    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 at redhat.com>

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) \


More information about the Libreoffice-commits mailing list