[Libreoffice-commits] core.git: external/mariadb-connector-c

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Sep 11 20:59:46 UTC 2018


 external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk |    1 
 external/mariadb-connector-c/clang-cl.patch.0                       |   11 ++++++++++
 2 files changed, 12 insertions(+)

New commits:
commit 65ed581fc1cca7052665e53a149f78b06b44970a
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Tue Sep 11 16:26:52 2018 +0200
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Tue Sep 11 22:59:24 2018 +0200

    clang-cl: Don't define "const" away in external/mariadb-connector-c
    
    Mimicing MSCV, clang-cl doesn't predefine __STDC__
    (InitializeStandardPredefinedMacros in clang/lib/Frontend/InitPreprocessor.cpp)
    when LangOpts.MSVCCompat aka -fms-compatibility is set, which it is by default
    for clang-cl (Clang::ConstructJob in clang/lib/Driver/ToolChains/Clang.cpp).
    
    But clang-cl still needs to be called with /FIIntrin.h to preload declarations
    of intrinsics from the Clang-provided Intrin.h, some of which like
    
      unsigned char _bittest(long const *, long);
    
    both make use of "const" (which isn't defined away because the file is loaded so
    early) and are duplicated in the system-provided winnt.h---where the "const"
    /is/ defined away when that header is included later, causing "conflicting
    types" errors.
    
    ("Real" MSVC also runs into the #if defining "const" away, but it seems it
    happens to not have bad consequences there.)
    
    Change-Id: Ice92a059330bd945f8a3d9e5fa1635a01d08ad8b
    Reviewed-on: https://gerrit.libreoffice.org/60321
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
index 4318dbfa7aae..71af2847a5b2 100644
--- a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
+++ b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
@@ -31,6 +31,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,mariadb-connector-c,\
     $(if $(filter MSC,$(COM)),external/mariadb-connector-c/mariadb-msvc.patch.1) \
     external/mariadb-connector-c/mariadb-inline.patch.1 \
     external/mariadb-connector-c/mariadb-CONC-104.patch.1 \
+    external/mariadb-connector-c/clang-cl.patch.0 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/mariadb-connector-c/clang-cl.patch.0 b/external/mariadb-connector-c/clang-cl.patch.0
new file mode 100644
index 000000000000..7a886e67cf7c
--- /dev/null
+++ b/external/mariadb-connector-c/clang-cl.patch.0
@@ -0,0 +1,11 @@
+--- libmariadb/getopt.c
++++ libmariadb/getopt.c
+@@ -38,7 +38,7 @@
+ #include <config.h>
+ #endif
+ 
+-#if (!defined (__STDC__) || !__STDC__) && !defined(MSDOS) && !defined(OS2)
++#if (!defined (__STDC__) || !__STDC__) && !defined(MSDOS) && !defined(OS2) && !(defined _MSC_VER && defined __clang__)
+ /* This is a separate conditional since some stdc systems
+    reject `defined (const)'.  */
+ #ifndef const


More information about the Libreoffice-commits mailing list