diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2020-03-09 11:25:29 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2020-03-09 13:48:35 +0100 |
commit | 5ab0f79748cad1069cc0d0c9cd4b57ccb1e14408 (patch) | |
tree | a55ac52972424a190f0cbdf1504855a23ddca985 /compilerplugins | |
parent | 633b2f4dffedaf4a162a5fa92eeaeb509efab173 (diff) |
Add --disable-compiler-plugins-analyzer-pch for Jenkins/linux_clang_dbgutil_64
<https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/54883/> had been a
case I noticed of a "Gerrit Linux clang/dbgutil" build failing due to stale PCH
information:
[...]
> [build GEN] compilerplugins/clang/sharedvisitor/makeshared.plugininfo
> fatal error: file '/usr/include/asm-generic/errno.h' has been modified since the precompiled header '/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/compilerplugins/clang/sharedvisitor/clang.pch' was built
> note: please rebuild precompiled header '/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/compilerplugins/clang/sharedvisitor/clang.pch'
[...]
and this issue had apparently caused all those Gerrit Jenkins builds to fail for
at least a day. For unmaintained builds like those, I think it is better to
have a more robust setup, where stale PCH information cannot break the build.
Also, as those builds do not make compilerplugins.clean and rather share it
across builds, there should not be much of a performance impact when disabling
PCH in the analyzer.
(It turns out that compilerplugins/clang/sharedvisitor/analyzer.cxx would always
have enabled PCH, as compilerplugins/Makefile-clang.mk always passes in some
definition of LO_CLANG_USE_ANALYZER_PCH. Fixed that now.)
Change-Id: I7b8b24c1049c501634bd59c5fb482bec72427cf6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90211
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
Diffstat (limited to 'compilerplugins')
-rw-r--r-- | compilerplugins/Makefile-clang.mk | 7 | ||||
-rw-r--r-- | compilerplugins/clang/sharedvisitor/analyzer.cxx | 2 |
2 files changed, 3 insertions, 6 deletions
diff --git a/compilerplugins/Makefile-clang.mk b/compilerplugins/Makefile-clang.mk index 65cfa67cb1ec..9d6b46019344 100644 --- a/compilerplugins/Makefile-clang.mk +++ b/compilerplugins/Makefile-clang.mk @@ -47,9 +47,6 @@ endif # by gb_ENABLE_PCH like everywhere else, but unsetting this disables PCH. LO_CLANG_USE_PCH=1 -# Whether to use precompiled headers for the analyzer too. Does not apply to compiling sources. -LO_CLANG_USE_ANALYZER_PCH=1 - # The uninteresting rest. include $(SRCDIR)/solenv/gbuild/gbuild.mk @@ -275,7 +272,7 @@ $(CLANGOUTDIR)/sharedvisitor/analyzer$(CLANG_EXE_EXT): $(CLANGINDIR)/sharedvisit $(call gb_Output_announce,$(subst $(BUILDDIR)/,,$@),$(true),GEN,1) $(QUIET)$(COMPILER_PLUGINS_CXX) $(CLANGDEFS) $(CLANGCXXFLAGS) $(CLANGWERROR) $(CLANGINCLUDES) \ -I$(BUILDDIR)/config_host -DCLANGFLAGS='"$(CLANGTOOLDEFS)"' \ - -DLO_CLANG_USE_ANALYZER_PCH=$(LO_CLANG_USE_ANALYZER_PCH) \ + -DLO_CLANG_USE_ANALYZER_PCH=$(if $(COMPILER_PLUGINS_ANALYZER_PCH),1,0) \ -c $< -o $(CLANGOUTDIR)/sharedvisitor/analyzer.o -MMD -MT $@ -MP \ -MF $(CLANGOUTDIR)/sharedvisitor/analyzer.d $(QUIET)$(COMPILER_PLUGINS_CXX) $(CLANGDEFS) $(CLANGCXXFLAGS) $(CLANGOUTDIR)/sharedvisitor/analyzer.o \ @@ -342,7 +339,7 @@ endif endif -ifdef LO_CLANG_USE_ANALYZER_PCH +ifeq ($(COMPILER_PLUGINS_ANALYZER_PCH),TRUE) # the PCH for usage in sharedvisitor/analyzer # these are from the invocation in analyzer.cxx diff --git a/compilerplugins/clang/sharedvisitor/analyzer.cxx b/compilerplugins/clang/sharedvisitor/analyzer.cxx index 7c69e4a9381c..ea519abb0d95 100644 --- a/compilerplugins/clang/sharedvisitor/analyzer.cxx +++ b/compilerplugins/clang/sharedvisitor/analyzer.cxx @@ -273,7 +273,7 @@ int main(int argc, char** argv) args.end(), { // These must match LO_CLANG_ANALYZER_PCH_CXXFLAGS in Makefile-clang.mk . "-I" BUILDDIR "/config_host" // plugin sources use e.g. config_global.h -#ifdef LO_CLANG_USE_ANALYZER_PCH +#if LO_CLANG_USE_ANALYZER_PCH , "-include-pch", // use PCH with Clang headers to speed up parsing/analysing BUILDDIR "/compilerplugins/clang/sharedvisitor/clang.pch" |