Message ID | 20160428122053.16807.93143.stgit@firesoul (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2016/04/28 02:20PM, Jesper Dangaard Brouer wrote: > It is practical to be-able-to redefine the location of the LLVM > command 'llc', because not all distros have a LLVM version with bpf > target support. Thus, it is sometimes required to compile LLVM from > source, and sometimes it is not desired to overwrite the distros > default LLVM version. > > This feature was removed with 128d1514be35 ("samples/bpf: Use llc in > PATH, rather than a hardcoded value"). > > Add this features back. Note that it is possible to redefine the LLC > on the make command like: > > make samples/bpf/ LLC=~/git/llvm/build/bin/llc I don't have an objection to this patch, but you didn't explain why/how this approach is better than just doing: PATH=~/git/llvm/build/bin make samples/bpf/ - Naveen -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 28 Apr 2016 18:51:33 +0530 "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> wrote: > > Add this features back. Note that it is possible to redefine the LLC > > on the make command like: > > > > make samples/bpf/ LLC=~/git/llvm/build/bin/llc > > I don't have an objection to this patch, but you didn't explain why/how > this approach is better than just doing: > PATH=~/git/llvm/build/bin make samples/bpf/ It is almost the same. There is always another way to do the same. I explicitly use this to test different combinations of LLC and CLANG, in-order to validate Alexei's claim that older versions of CLANG could still work with a newer version of LLC. Thus, one use-case you approach cannot cover ;-) And clang seems to install a clang-3.9, which my solution also covers by explicitly specifying CLANG=clang-3.9, if several avail clang's are in the PATH.
On 2016/04/28 04:40PM, Jesper Dangaard Brouer wrote: > On Thu, 28 Apr 2016 18:51:33 +0530 > "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> wrote: > > > > Add this features back. Note that it is possible to redefine the LLC > > > on the make command like: > > > > > > make samples/bpf/ LLC=~/git/llvm/build/bin/llc > > > > I don't have an objection to this patch, but you didn't explain why/how > > this approach is better than just doing: > > PATH=~/git/llvm/build/bin make samples/bpf/ > > It is almost the same. There is always another way to do the same. > > I explicitly use this to test different combinations of LLC and CLANG, > in-order to validate Alexei's claim that older versions of CLANG could > still work with a newer version of LLC. Thus, one use-case you > approach cannot cover ;-) > > And clang seems to install a clang-3.9, which my solution also covers > by explicitly specifying CLANG=clang-3.9, if several avail clang's are > in the PATH. Ah, so a very niche use-case. Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> - Naveen -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile index 744dd7a16144..5bae9536f100 100644 --- a/samples/bpf/Makefile +++ b/samples/bpf/Makefile @@ -81,10 +81,14 @@ HOSTLOADLIBES_spintest += -lelf HOSTLOADLIBES_map_perf_test += -lelf -lrt HOSTLOADLIBES_test_overhead += -lelf -lrt +# Allows pointing LLC to a LLVM backend with bpf support, redefine on cmdline: +# make samples/bpf/ LLC=~/git/llvm/build/bin/llc +LLC ?= llc + # asm/sysreg.h - inline assembly used by it is incompatible with llvm. # But, there is no easy way to fix it, so just exclude it since it is # useless for BPF samples. $(obj)/%.o: $(src)/%.c clang $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(EXTRA_CFLAGS) \ -D__KERNEL__ -D__ASM_SYSREG_H -Wno-unused-value -Wno-pointer-sign \ - -O2 -emit-llvm -c $< -o -| llc -march=bpf -filetype=obj -o $@ + -O2 -emit-llvm -c $< -o -| $(LLC) -march=bpf -filetype=obj -o $@