• Sedat Dilek's avatar
    tools: Factor Clang, LLC and LLVM utils definitions · 211a741c
    Sedat Dilek authored
    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
    c8a950d0 ("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: default avatarSedat Dilek <sedat.dilek@gmail.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Acked-by: default avatarAndrii 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
    211a741c
Makefile.include 4.42 KB