linux-xiaomi-chiron/tools/build/feature
Sedat Dilek 211a741cd3 tools: Factor Clang, LLC and LLVM utils definitions
When dealing with BPF/BTF/pahole and DWARF v5 I wanted to build bpftool.

While looking into the source code I found duplicate assignments in misc tools
for the LLVM eco system, e.g. clang and llvm-objcopy.

Move the Clang, LLC and/or LLVM utils definitions to tools/scripts/Makefile.include
file and add missing includes where needed. Honestly, I was inspired by the commit
c8a950d0d3 ("tools: Factor HOSTCC, HOSTLD, HOSTAR definitions").

I tested with bpftool and perf on Debian/testing AMD64 and LLVM/Clang v11.1.0-rc1.

Build instructions:

[ make and make-options ]
MAKE="make V=1"
MAKE_OPTS="HOSTCC=clang HOSTCXX=clang++ HOSTLD=ld.lld CC=clang LD=ld.lld LLVM=1 LLVM_IAS=1"
MAKE_OPTS="$MAKE_OPTS PAHOLE=/opt/pahole/bin/pahole"

[ clean-up ]
$MAKE $MAKE_OPTS -C tools/ clean

[ bpftool ]
$MAKE $MAKE_OPTS -C tools/bpf/bpftool/

[ perf ]
PYTHON=python3 $MAKE $MAKE_OPTS -C tools/perf/

I was careful with respecting the user's wish to override custom compiler, linker,
GNU/binutils and/or LLVM utils settings.

Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@redhat.com> # tools/build and tools/perf
Link: https://lore.kernel.org/bpf/20210128015117.20515-1-sedat.dilek@gmail.com
2021-01-29 01:25:34 +01:00
..
.gitignore
Makefile
test-all.c
test-backtrace.c
test-bionic.c
test-bpf.c
test-clang-bpf-co-re.c
test-clang.cpp
test-compile.c
test-cplus-demangle.c
test-cxx.cpp
test-disassembler-four-args.c
test-dwarf.c
test-dwarf_getlocations.c
test-eventfd.c
test-file-handle.c
test-fortify-source.c
test-get_cpuid.c
test-get_current_dir_name.c
test-gettid.c
test-glibc.c
test-gtk2-infobar.c
test-gtk2.c
test-hello.c
test-jvmti-cmlr.c
test-jvmti.c
test-libaio.c
test-libaudit.c
test-libbabeltrace.c
test-libbfd-buildid.c
test-libbfd.c
test-libbpf.c
test-libcap.c
test-libcrypto.c
test-libdebuginfod.c
test-libdw-dwarf-unwind.c
test-libelf-gelf_getnote.c
test-libelf-getphdrnum.c
test-libelf-getshdrstrndx.c
test-libelf.c
test-libnuma.c
test-libopencsd.c
test-libperl.c
test-libpfm4.c
test-libpython-version.c
test-libpython.c
test-libslang-include-subdir.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.c
test-libunwind-x86_64.c
test-libunwind.c
test-libzstd.c
test-llvm-version.cpp
test-llvm.cpp
test-lzma.c
test-numa_num_possible_cpus.c
test-pthread-attr-setaffinity-np.c
test-pthread-barrier.c
test-reallocarray.c
test-sched_getcpu.c
test-sdt.c
test-setns.c
test-stackprotector-all.c
test-sync-compare-and-swap.c
test-timerfd.c
test-zlib.c