Kaydet (Commit) efe28895 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Remove broken rebuild of compilerplugins when CLANG_FULL_VERSION changed

Not all compilerplugins/clang/*.cxx depend on config_clang.h (e.g., check.cxx
doesn't), so this mechanism trying to rebuild compilerplugins once the
underlying Clang installation changes doesn't work reliably in practice (just
debugged through this with Miklos on IRC, and it wasn't the first time that
`make distclean` fixed compilerplugins for somebody after they upgraded their
Clang installation).  Removing the brittle mechanism shows that plugin.hxx
doesn't actually depend on config_clang.h.

(There's a second mechanism trying to rebuild compilerplugins once the
underlying Clang installation changes, namely

> # Clang most probably doesn't maintain binary compatibility, so rebuild when clang changes.
> $(CLANGOUTDIR)/clang-timestamp: $(CLANGDIR)/bin/clang$(CLANG_EXE_EXT)
>         $(QUIET)touch $@

in compilerplugins/Makefile-clang.mk, but that doesn't work reliably either, as
it depends on the newly installed clang executable being newer than our
clang-timestamp file, which will be the case for self-built Clang installations,
but not necessarily when updating e.g. a distro-provided Clang installation.)

Change-Id: Ie576f14356b3f0e55444375095c86aa851404bf3
Reviewed-on: https://gerrit.libreoffice.org/64623
Tested-by: Jenkins
Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
üst 23e32f46
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
#ifndef PLUGIN_H #ifndef PLUGIN_H
#define PLUGIN_H #define PLUGIN_H
#include <config_clang.h>
#include <clang/AST/ASTContext.h> #include <clang/AST/ASTContext.h>
#include <clang/AST/RecursiveASTVisitor.h> #include <clang/AST/RecursiveASTVisitor.h>
#include <clang/Basic/FileManager.h> #include <clang/Basic/FileManager.h>
......
...@@ -13,8 +13,4 @@ Settings related to Clang compiler plugins. ...@@ -13,8 +13,4 @@ Settings related to Clang compiler plugins.
#undef CLANG_VERSION #undef CLANG_VERSION
/* This is actually unused, but it should change whenever Clang changes,
thus causing update of this .h file and triggering rebuild of our Clang plugin. */
#undef CLANG_FULL_VERSION
#endif #endif
...@@ -3673,16 +3673,15 @@ if test "$COM_IS_CLANG" = TRUE; then ...@@ -3673,16 +3673,15 @@ if test "$COM_IS_CLANG" = TRUE; then
my_args="-E -P" my_args="-E -P"
fi fi
clang_version=`echo __clang_major__.__clang_minor__.__clang_patchlevel__ | $CC_PLAIN $my_args -` clang_version=`echo __clang_major__.__clang_minor__.__clang_patchlevel__ | $CC_PLAIN $my_args -`
CLANG_FULL_VERSION=`echo __clang_version__ | $CC_PLAIN $my_args -`
CLANGVER=`echo $clang_version \ CLANGVER=`echo $clang_version \
| $AWK -F. '{ print \$1*10000+(\$2<100?\$2:99)*100+(\$3<100?\$3:99) }'` | $AWK -F. '{ print \$1*10000+(\$2<100?\$2:99)*100+(\$3<100?\$3:99) }'`
if test "$CLANGVER" -ge 50002; then if test "$CLANGVER" -ge 50002; then
AC_MSG_RESULT([yes ($clang_version)]) AC_MSG_RESULT([yes ($clang_version)])
else else
CLANG_FULL_VERSION=`echo __clang_version__ | $CC_PLAIN $my_args -`
AC_MSG_ERROR(["$CLANG_FULL_VERSION" is too old or unrecognized, must be at least Clang 5.0.2]) AC_MSG_ERROR(["$CLANG_FULL_VERSION" is too old or unrecognized, must be at least Clang 5.0.2])
fi fi
AC_DEFINE_UNQUOTED(CLANG_VERSION,$CLANGVER) AC_DEFINE_UNQUOTED(CLANG_VERSION,$CLANGVER)
AC_DEFINE_UNQUOTED(CLANG_FULL_VERSION,$CLANG_FULL_VERSION)
fi fi
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment