Re: [PATCH] tools build: Fix clang detection with clang >= 8.0

From: Nick Desaulniers
Date: Wed Aug 14 2019 - 16:47:30 EST


On Mon, Aug 12, 2019 at 10:07 PM Matthew Dawson <matthew@xxxxxxxxxxxxx> wrote:
>
> The 8.0 release of clang/llvm moved the VirtualFileSystem.h header
> to from clang to llvm. This change causes a compile error, causing
> perf to not detect clang/llvm.
>
> Fix by including the right header for the different versions of llvm,
> using the older header for llvm < 8, and the new header for llvm >= 8.
>
> Signed-off-by: Matthew Dawson <matthew@xxxxxxxxxxxxx>

Specifically the header was moved in svn revision r344140.
llvmorg-8.0.0 was tagged off of r356365, while llvmorg-7.0.0 is tagged
off of r342383.
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

> ---
> tools/build/feature/test-clang.cpp | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tools/build/feature/test-clang.cpp b/tools/build/feature/test-clang.cpp
> index a2b3f092d2f0..313ef1568880 100644
> --- a/tools/build/feature/test-clang.cpp
> +++ b/tools/build/feature/test-clang.cpp
> @@ -1,10 +1,14 @@
> // SPDX-License-Identifier: GPL-2.0
> -#include "clang/Basic/VirtualFileSystem.h"
> #include "clang/Driver/Driver.h"
> #include "clang/Frontend/TextDiagnosticPrinter.h"
> #include "llvm/ADT/IntrusiveRefCntPtr.h"
> #include "llvm/Support/ManagedStatic.h"
> #include "llvm/Support/raw_ostream.h"
> +#if LLVM_VERSION_MAJOR >= 8
> +#include "llvm/Support/VirtualFileSystem.h"
> +#else
> +#include "clang/Basic/VirtualFileSystem.h"
> +#endif

--
Thanks,
~Nick Desaulniers