forked from Minki/linux
a940cad331
Cancel builtin llvm and clang support when LLVM version is less than 3.9.0: following commits uses newer API. Since Clang/LLVM's API is not guaranteed to be stable, add a test-llvm-version.cpp feature checker, issue warning if LLVM found in compiling environment is not tested yet. Committer Notes: Testing it: Environment: $ cat /etc/fedora-release Fedora release 25 (Twenty Five) $ rpm -q llvm-devel clang-devel llvm-devel-3.8.0-1.fc25.x86_64 clang-devel-3.8.0-2.fc25.x86_64 $ Before: $ make -k LIBCLANGLLVM=1 O=/tmp/build/perf -C tools/perf install-bin make: Entering directory '/home/acme/git/linux/tools/perf' BUILD: Doing 'make -j4' parallel build Warning: tools/include/uapi/linux/bpf.h differs from kernel Warning: tools/arch/arm/include/uapi/asm/kvm.h differs from kernel INSTALL GTK UI LINK /tmp/build/perf/perf /tmp/build/perf/libperf.a(libperf-in.o): In function `perf::createCompilerInvocation(llvm::SmallVector<char const*, 16u>, llvm::StringRef&, clang::DiagnosticsEngine&)': /home/acme/git/linux/tools/perf/util/c++/clang.cpp:56: undefined reference to `clang::tooling::newInvocation(clang::DiagnosticsEngine*, llvm::SmallVector<char const*, 16u> const&)' /tmp/build/perf/libperf.a(libperf-in.o): In function `perf::getModuleFromSource(llvm::SmallVector<char const*, 16u>, llvm::StringRef, llvm::IntrusiveRefCntPtr<clang::vfs::FileSystem>)': /home/acme/git/linux/tools/perf/util/c++/clang.cpp:68: undefined reference to `clang::CompilerInstance::CompilerInstance(std::shared_ptr<clang::PCHContainerOperations>, bool)' /home/acme/git/linux/tools/perf/util/c++/clang.cpp:69: undefined reference to `clang::CompilerInstance::createDiagnostics(clang::DiagnosticConsumer*, bool)' <SNIP> After: Makefile.config:807: No suitable libLLVM found, disabling builtin clang and llvm support. Please install llvm-dev(el) (>= 3.9.0) Updating the environment to a locally built LLVM 4.0 + clang 3.9 (forgot to git pull, duh) combo, all works as expected, it is properly detected and built into the resulting perf binary. Signed-off-by: Wang Nan <wangnan0@huawei.com> Reported-and-Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Alexei Starovoitov <ast@fb.com> Cc: He Kuang <hekuang@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Joe Stringer <joe@ovn.org> Cc: Zefan Li <lizefan@huawei.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/20161206072230.7651-1-wangnan0@huawei.com [ Change the warning message a bit (add 'suitable' and 'builtin'), clarifying it, see committer notes above ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile | ||
test-all.c | ||
test-backtrace.c | ||
test-bionic.c | ||
test-bpf.c | ||
test-clang.cpp | ||
test-compile.c | ||
test-cplus-demangle.c | ||
test-cxx.cpp | ||
test-dwarf_getlocations.c | ||
test-dwarf.c | ||
test-fortify-source.c | ||
test-get_cpuid.c | ||
test-glibc.c | ||
test-gtk2-infobar.c | ||
test-gtk2.c | ||
test-hello.c | ||
test-jvmti.c | ||
test-libaudit.c | ||
test-libbabeltrace.c | ||
test-libbfd.c | ||
test-libcrypto.c | ||
test-libdw-dwarf-unwind.c | ||
test-libelf-gelf_getnote.c | ||
test-libelf-getphdrnum.c | ||
test-libelf-getshdrstrndx.c | ||
test-libelf-mmap.c | ||
test-libelf.c | ||
test-libnuma.c | ||
test-libperl.c | ||
test-libpython-version.c | ||
test-libpython.c | ||
test-libslang.c | ||
test-libunwind-aarch64.c | ||
test-libunwind-arm.c | ||
test-libunwind-debug-frame-aarch64.c | ||
test-libunwind-debug-frame-arm.c | ||
test-libunwind-debug-frame.c | ||
test-libunwind-x86_64.c | ||
test-libunwind-x86.c | ||
test-libunwind.c | ||
test-llvm-version.cpp | ||
test-llvm.cpp | ||
test-lzma.c | ||
test-numa_num_possible_cpus.c | ||
test-pthread-attr-setaffinity-np.c | ||
test-sdt.c | ||
test-stackprotector-all.c | ||
test-sync-compare-and-swap.c | ||
test-timerfd.c | ||
test-zlib.c |