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

From: Wangnan (F)
Date: Thu Jun 11 2015 - 03:37:09 EST




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.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/