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
This commit is contained in:
parent
633b2f4dff
commit
5ab0f79748
5 changed files with 15 additions and 6 deletions
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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_ANALYZER_PCH=@COMPILER_PLUGINS_ANALYZER_PCH@
|
||||
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@
|
||||
|
|
10
configure.ac
10
configure.ac
|
@ -1223,6 +1223,11 @@ if test "$enable_compiler_plugins" = debug; then
|
|||
COMPILER_PLUGINS_DEBUG=TRUE
|
||||
fi
|
||||
|
||||
libo_FUZZ_ARG_ENABLE(compiler-plugins-analyzer-pch,
|
||||
AS_HELP_STRING([--disable-compiler-plugins-analyzer-pch],
|
||||
[Disable use of precompiled headers when running the Clang compiler plugin analyzer. Not
|
||||
relevant in the --disable-compiler-plugins case.]))
|
||||
|
||||
libo_FUZZ_ARG_ENABLE(ooenv,
|
||||
AS_HELP_STRING([--disable-ooenv],
|
||||
[Disable ooenv for the instdir installation.]))
|
||||
|
@ -7336,7 +7341,12 @@ else
|
|||
AC_MSG_ERROR([Compiler plugins are currently supported only with the Clang compiler.])
|
||||
fi
|
||||
fi
|
||||
COMPILER_PLUGINS_ANALYZER_PCH=
|
||||
if test "$enable_compiler_plugins_analyzer_pch" != no; then
|
||||
COMPILER_PLUGINS_ANALYZER_PCH=TRUE
|
||||
fi
|
||||
AC_SUBST(COMPILER_PLUGINS)
|
||||
AC_SUBST(COMPILER_PLUGINS_ANALYZER_PCH)
|
||||
AC_SUBST(COMPILER_PLUGINS_COM_IS_CLANG)
|
||||
AC_SUBST(COMPILER_PLUGINS_CXX)
|
||||
AC_SUBST(COMPILER_PLUGINS_CXXFLAGS)
|
||||
|
|
|
@ -2,4 +2,5 @@
|
|||
--enable-compiler-plugins
|
||||
COMPILER_PLUGINS_CXX=ccache g++ -std=c++11
|
||||
--enable-kf5
|
||||
--disable-compiler-plugins-analyzer-pch
|
||||
--disable-dependency-tracking
|
||||
|
|
Loading…
Reference in a new issue