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

Wangnan (F)
2015-06-11T07:37:06Z

On 2015/6/11 15:19, Namhyung Kim wrote:
> Hi Wang,
>
> On Wed, Jun 10, 2015 at 08:06:17AM +0800, Wangnan (F) wrote:
>> On 2015/6/10 5:48, Alexei Starovoitov wrote:
>>> Once clang integration is complete. One can pull
>>> upsteam llvm and clang and just use 'clang -O2 -c -march=bpf file.c'
>>>
>> Good news, so llc part should be removed.
>>
>> Next version I'd like to use following config options:
>>
>> [llvm]
>> clang-bpf-cmd-template = "$CLANG_EXEC $CLANG_OPTIONS -c $CLANG_SOURCE
>> -emit-llvm -O2 -o - | /path/to/llc -march=bpf -filetype=obj -o -"
>> clang-path = "/path/to/clang"
>> clang-opt = ""
>>
>> And the default template should be:
>>
>> $CLANG_EXEC $CLANG_OPTIONS -c "$CLANG_SOURCE" -emit-llvm -O2 -o -
> Did you mean this?
>
> $CLANG_EXEC $CLANG_OPTIONS -O2 -c "$BPF_SOURCE" -march=bpf -o -

Thank you for this notice.

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.

> Thanks,
> Namhyung
>
>
>> Then with environment variable tricks we make it work with popen.
>>
>> By this way we can get rid of llc in perf side, and make it work even before
>> clang
>> integration is complete.
>>
>> Thank you.