[Libreoffice-commits] core.git: compilerplugins/Makefile-clang.mk config_host.mk.in configure.ac
Stephan Bergmann (via logerrit)
logerrit at kemper.freedesktop.org
Fri Feb 14 18:25:10 UTC 2020
compilerplugins/Makefile-clang.mk | 8 ++++++++
config_host.mk.in | 1 +
configure.ac | 14 ++++++++++++++
3 files changed, 23 insertions(+)
New commits:
commit bce14e97a6dad7686643d094995433c77e4aee7e
Author: Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Fri Feb 14 16:28:53 2020 +0100
Commit: Stephan Bergmann <sbergman at redhat.com>
CommitDate: Fri Feb 14 19:24:32 2020 +0100
Prevent -Werror,-Wunknown-warning-option when building compilerplugins
...with --enable-werror (seen it fail with a local build against a locally
built Clang 5.0.2).
(bin/gen-boost-headers faces a similar dilemma with Clang needing to silence
-Wunknown-warning-option and GCC failing upon the silencing incantation. There,
we were able to hack around that with a preceding
#pragma GCC diagnostic ignored "-Wpragmas"
Here, the easiest approach appears to be a new COMPILER_PLUGINS_COM_IS_CLANG
analoguous to the existing COM_IS_CLANG.)
Change-Id: I9036261fdd238c8a020a1d88b4e75fd444f9e030
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88725
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
diff --git a/compilerplugins/Makefile-clang.mk b/compilerplugins/Makefile-clang.mk
index 543ec27aad44..266919cf02b8 100644
--- a/compilerplugins/Makefile-clang.mk
+++ b/compilerplugins/Makefile-clang.mk
@@ -101,6 +101,14 @@ CLANGWERROR :=
#TODO: /WX
else
CLANGWERROR := -Werror
+# When COMPILER_PLUGINS_CXXFLAGS (obtained via `llvm-config --cxxflags`) contains options like
+# -Wno-maybe-uninitialized that are targeting GCC (when LLVM was actually built with GCC), and
+# COMPILER_PLUGINS_CXX (defaulting to CXX) deonotes a Clang that does not understand those options,
+# it fails with -Werror,-Wunknown-warning-option, so we need -Wno-unknown-warning-option (but which
+# GCC does not understand) at least with -Werror:
+ifeq ($(COMPILER_PLUGINS_COM_IS_CLANG),TRUE)
+CLANGWERROR += -Wno-unknown-warning-option
+endif
endif
endif
diff --git a/config_host.mk.in b/config_host.mk.in
index 9dd4b72c421c..ef612734da3c 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -78,6 +78,7 @@ export COMMONS_LOGGING_JAR=@COMMONS_LOGGING_JAR@
export COMMONS_LOGGING_VERSION=@COMMONS_LOGGING_VERSION@
export COMPATH=@COMPATH@
export COMPILER_PLUGINS=@COMPILER_PLUGINS@
+export COMPILER_PLUGINS_COM_IS_CLANG=@COMPILER_PLUGINS_COM_IS_CLANG@
export COMPILER_PLUGINS_CXX=@COMPILER_PLUGINS_CXX@
export COMPILER_PLUGINS_CXXFLAGS=@COMPILER_PLUGINS_CXXFLAGS@
export COMPILER_PLUGINS_CXX_LINKFLAGS=@COMPILER_PLUGINS_CXX_LINKFLAGS@
diff --git a/configure.ac b/configure.ac
index 3fa8fc760e3f..e186f6d3eb73 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7218,6 +7218,7 @@ if test "$COM_IS_CLANG" != "TRUE"; then
fi
fi
+COMPILER_PLUGINS_COM_IS_CLANG=
if test "$COM_IS_CLANG" = "TRUE"; then
if test -n "$enable_compiler_plugins"; then
compiler_plugins="$enable_compiler_plugins"
@@ -7336,6 +7337,18 @@ if test "$COM_IS_CLANG" = "TRUE"; then
LDFLAGS=$save_LDFLAGS
LIBS="$save_LIBS"
AC_LANG_POP([C++])
+
+ AC_MSG_CHECKING([whether the compiler for building compilerplugins is actually Clang])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #ifndef __clang__
+ you lose
+ #endif
+ int foo=42;
+ ]])],
+ [AC_MSG_RESULT([yes])
+ COMPILER_PLUGINS_COM_IS_CLANG=TRUE],
+ [AC_MSG_RESULT([no])])
+ AC_SUBST(COMPILER_PLUGINS_COM_IS_CLANG)
fi
else
if test "$enable_compiler_plugins" = "yes"; then
@@ -7343,6 +7356,7 @@ else
fi
fi
AC_SUBST(COMPILER_PLUGINS)
+AC_SUBST(COMPILER_PLUGINS_COM_IS_CLANG)
AC_SUBST(COMPILER_PLUGINS_CXX)
AC_SUBST(COMPILER_PLUGINS_CXXFLAGS)
AC_SUBST(COMPILER_PLUGINS_CXX_LINKFLAGS)
More information about the Libreoffice-commits
mailing list