Re: [RFC PATCH v6 24/32] perf record: Compile scriptlets if pass '.c' to --event

Alexei Starovoitov
2015-06-11T17:43:09Z

On 6/11/15 12:35 AM, Wangnan (F) wrote:
> Now I'm trying this:
>
> "$CLANG_EXEC $CLANG_OPTIONS $KERNEL_INC_OPTIONS "
> "-Wno-unused-value -Wno-pointer-sign "
> "-working-directory $WORKING_DIR "
> " -c \"$CLANG_SOURCE\" -march=bpf -O2 -o -"
>
> WORKING_DIR is appended because we will get relative include directory
> using the
> Makefile trick.

clang bpf support is in.
so please pull the latest llvm and clang, rebuild and you should
be able to use:
clang -O2 -target bpf -c file.c
Just like any other arch use -S to generate .s and so on.
Old style 'clang -emit-llvm -o - | llc -march=bpf' is fine too.

To build llvm/clang do:
git clone https://github.com/llvm-mirror/llvm.git
git clone https://github.com/llvm-mirror/clang.git llvm/tools/clang
mkdir llvm/build/
cd llvm/build/
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD="X86;BPF" \
-DCMAKE_INSTALL_PREFIX=/opt/local/llvm
make -j
sudo make install