Message ID | ZTGc8S293uaTqHja@kernel.org (mailing list archive) |
---|---|
State | Handled Elsewhere |
Delegated to: | BPF |
Headers | show |
Series | [1/1] tools build: Fix llvm feature detection, still used by bpftool | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
bpf/vmtest-bpf-next-PR | success | PR summary |
bpf/vmtest-bpf-next-VM_Test-0 | success | Logs for ShellCheck |
bpf/vmtest-bpf-next-VM_Test-24 | success | Logs for test_verifier on aarch64 with gcc |
bpf/vmtest-bpf-next-VM_Test-17 | fail | Logs for test_progs_no_alu32 on x86_64 with llvm-16 |
bpf/vmtest-bpf-next-VM_Test-14 | success | Logs for test_progs_no_alu32 on aarch64 with gcc |
bpf/vmtest-bpf-next-VM_Test-26 | success | Logs for test_verifier on x86_64 with gcc |
bpf/vmtest-bpf-next-VM_Test-8 | success | Logs for test_maps on x86_64 with gcc |
bpf/vmtest-bpf-next-VM_Test-27 | success | Logs for test_verifier on x86_64 with llvm-16 |
bpf/vmtest-bpf-next-VM_Test-6 | success | Logs for test_maps on aarch64 with gcc |
bpf/vmtest-bpf-next-VM_Test-18 | success | Logs for test_progs_no_alu32_parallel on aarch64 with gcc |
bpf/vmtest-bpf-next-VM_Test-7 | success | Logs for test_maps on s390x with gcc |
bpf/vmtest-bpf-next-VM_Test-12 | success | Logs for test_progs on x86_64 with gcc |
bpf/vmtest-bpf-next-VM_Test-25 | success | Logs for test_verifier on s390x with gcc |
bpf/vmtest-bpf-next-VM_Test-16 | success | Logs for test_progs_no_alu32 on x86_64 with gcc |
bpf/vmtest-bpf-next-VM_Test-21 | success | Logs for test_progs_parallel on aarch64 with gcc |
bpf/vmtest-bpf-next-VM_Test-28 | success | Logs for veristat |
bpf/vmtest-bpf-next-VM_Test-19 | success | Logs for test_progs_no_alu32_parallel on x86_64 with gcc |
bpf/vmtest-bpf-next-VM_Test-1 | success | Logs for build for aarch64 with gcc |
bpf/vmtest-bpf-next-VM_Test-20 | success | Logs for test_progs_no_alu32_parallel on x86_64 with llvm-16 |
bpf/vmtest-bpf-next-VM_Test-23 | success | Logs for test_progs_parallel on x86_64 with llvm-16 |
bpf/vmtest-bpf-next-VM_Test-4 | success | Logs for build for x86_64 with llvm-16 |
bpf/vmtest-bpf-next-VM_Test-2 | success | Logs for build for s390x with gcc |
bpf/vmtest-bpf-next-VM_Test-5 | success | Logs for set-matrix |
bpf/vmtest-bpf-next-VM_Test-9 | success | Logs for test_maps on x86_64 with llvm-16 |
bpf/vmtest-bpf-next-VM_Test-22 | success | Logs for test_progs_parallel on x86_64 with gcc |
bpf/vmtest-bpf-next-VM_Test-13 | fail | Logs for test_progs on x86_64 with llvm-16 |
bpf/vmtest-bpf-next-VM_Test-15 | success | Logs for test_progs_no_alu32 on s390x with gcc |
bpf/vmtest-bpf-next-VM_Test-3 | success | Logs for build for x86_64 with gcc |
bpf/vmtest-bpf-next-VM_Test-10 | success | Logs for test_progs on aarch64 with gcc |
bpf/vmtest-bpf-next-VM_Test-11 | success | Logs for test_progs on s390x with gcc |
On Thu, Oct 19, 2023 at 2:17 PM Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > When removing the BPF event for perf a feature test that checks if the > llvm devel files are availabe was removed but that is also used by > bpftool. > > bpftool uses it to decide what kind of disassembly it will use: llvm or > binutils based. > > Removing the tools/build/feature/test-llvm.cpp file made bpftool to > always fallback to binutils disassembly, even with the llvm devel files > installed, fix it by restoring just that small test-llvm.cpp test file. > > Fixes: 56b11a2126bf2f42 ("perf bpf: Remove support for embedding clang for compiling BPF events (-e foo.c)") > Reported-by: Manu Bretelle <chantr4@gmail.com> > Cc: Adrian Hunter <adrian.hunter@intel.com> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > Cc: Andi Kleen <ak@linux.intel.com> > Cc: Andrii Nakryiko <andrii@kernel.org> > Cc: Anshuman Khandual <anshuman.khandual@arm.com> > Cc: Carsten Haitzler <carsten.haitzler@arm.com> > Cc: Eduard Zingerman <eddyz87@gmail.com> > Cc: Fangrui Song <maskray@google.com> > Cc: He Kuang <hekuang@huawei.com> > Cc: Ian Rogers <irogers@google.com> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: James Clark <james.clark@arm.com> > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Kan Liang <kan.liang@linux.intel.com> > Cc: Leo Yan <leo.yan@linaro.org> > Cc: llvm@lists.linux.dev > Cc: Madhavan Srinivasan <maddy@linux.ibm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Nathan Chancellor <nathan@kernel.org> > Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Quentin Monnet <quentin@isovalent.com> > Cc: Ravi Bangoria <ravi.bangoria@amd.com> > Cc: Rob Herring <robh@kernel.org> > Cc: Tiezhu Yang <yangtiezhu@loongson.cn> > Cc: Tom Rix <trix@redhat.com> > Cc: Wang Nan <wangnan0@huawei.com> > Cc: Wang ShaoBo <bobo.shaobowang@huawei.com> > Cc: Yang Jihong <yangjihong1@huawei.com> > Cc: Yonghong Song <yhs@fb.com> > Cc: YueHaibing <yuehaibing@huawei.com> > Link: https://lore.kernel.org/lkml/ZTGa0Ukt7QyxWcVy@kernel.org > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Sorry for the breakage. Reviewed-by: Ian Rogers <irogers@google.com> Thanks, Ian > --- > tools/build/feature/test-llvm.cpp | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > create mode 100644 tools/build/feature/test-llvm.cpp > > diff --git a/tools/build/feature/test-llvm.cpp b/tools/build/feature/test-llvm.cpp > new file mode 100644 > index 0000000000000000..88a3d1bdd9f6978e > --- /dev/null > +++ b/tools/build/feature/test-llvm.cpp > @@ -0,0 +1,14 @@ > +// SPDX-License-Identifier: GPL-2.0 > +#include "llvm/Support/ManagedStatic.h" > +#include "llvm/Support/raw_ostream.h" > +#define NUM_VERSION (((LLVM_VERSION_MAJOR) << 16) + (LLVM_VERSION_MINOR << 8) + LLVM_VERSION_PATCH) > + > +#if NUM_VERSION < 0x030900 > +# error "LLVM version too low" > +#endif > +int main() > +{ > + llvm::errs() << "Hello World!\n"; > + llvm::llvm_shutdown(); > + return 0; > +} > -- > 2.41.0 >
On 19/10/2023 22:17, Arnaldo Carvalho de Melo wrote: > When removing the BPF event for perf a feature test that checks if the > llvm devel files are availabe was removed but that is also used by > bpftool. > > bpftool uses it to decide what kind of disassembly it will use: llvm or > binutils based. > > Removing the tools/build/feature/test-llvm.cpp file made bpftool to > always fallback to binutils disassembly, even with the llvm devel files > installed, fix it by restoring just that small test-llvm.cpp test file. > > Fixes: 56b11a2126bf2f42 ("perf bpf: Remove support for embedding clang for compiling BPF events (-e foo.c)") > Reported-by: Manu Bretelle <chantr4@gmail.com> > Cc: Adrian Hunter <adrian.hunter@intel.com> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > Cc: Andi Kleen <ak@linux.intel.com> > Cc: Andrii Nakryiko <andrii@kernel.org> > Cc: Anshuman Khandual <anshuman.khandual@arm.com> > Cc: Carsten Haitzler <carsten.haitzler@arm.com> > Cc: Eduard Zingerman <eddyz87@gmail.com> > Cc: Fangrui Song <maskray@google.com> > Cc: He Kuang <hekuang@huawei.com> > Cc: Ian Rogers <irogers@google.com> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: James Clark <james.clark@arm.com> > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Kan Liang <kan.liang@linux.intel.com> > Cc: Leo Yan <leo.yan@linaro.org> > Cc: llvm@lists.linux.dev > Cc: Madhavan Srinivasan <maddy@linux.ibm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Nathan Chancellor <nathan@kernel.org> > Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Quentin Monnet <quentin@isovalent.com> > Cc: Ravi Bangoria <ravi.bangoria@amd.com> > Cc: Rob Herring <robh@kernel.org> > Cc: Tiezhu Yang <yangtiezhu@loongson.cn> > Cc: Tom Rix <trix@redhat.com> > Cc: Wang Nan <wangnan0@huawei.com> > Cc: Wang ShaoBo <bobo.shaobowang@huawei.com> > Cc: Yang Jihong <yangjihong1@huawei.com> > Cc: Yonghong Song <yhs@fb.com> > Cc: YueHaibing <yuehaibing@huawei.com> > Link: https://lore.kernel.org/lkml/ZTGa0Ukt7QyxWcVy@kernel.org > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > tools/build/feature/test-llvm.cpp | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > create mode 100644 tools/build/feature/test-llvm.cpp > > diff --git a/tools/build/feature/test-llvm.cpp b/tools/build/feature/test-llvm.cpp > new file mode 100644 > index 0000000000000000..88a3d1bdd9f6978e > --- /dev/null > +++ b/tools/build/feature/test-llvm.cpp > @@ -0,0 +1,14 @@ > +// SPDX-License-Identifier: GPL-2.0 > +#include "llvm/Support/ManagedStatic.h" > +#include "llvm/Support/raw_ostream.h" > +#define NUM_VERSION (((LLVM_VERSION_MAJOR) << 16) + (LLVM_VERSION_MINOR << 8) + LLVM_VERSION_PATCH) > + > +#if NUM_VERSION < 0x030900 > +# error "LLVM version too low" > +#endif > +int main() > +{ > + llvm::errs() << "Hello World!\n"; > + llvm::llvm_shutdown(); > + return 0; > +} Acked-by: Quentin Monnet <quentin@isovalent.com> Thanks Arnaldo, Manu!
On Thu, Oct 19, 2023 at 2:17 PM Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > When removing the BPF event for perf a feature test that checks if the > llvm devel files are availabe was removed but that is also used by > bpftool. > > bpftool uses it to decide what kind of disassembly it will use: llvm or > binutils based. > > Removing the tools/build/feature/test-llvm.cpp file made bpftool to > always fallback to binutils disassembly, even with the llvm devel files > installed, fix it by restoring just that small test-llvm.cpp test file. > > Fixes: 56b11a2126bf2f42 ("perf bpf: Remove support for embedding clang for compiling BPF events (-e foo.c)") Should we route this through the bpf-next tree to get the fix for bpftool into Github mirror ASAP? > Reported-by: Manu Bretelle <chantr4@gmail.com> > Cc: Adrian Hunter <adrian.hunter@intel.com> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > Cc: Andi Kleen <ak@linux.intel.com> > Cc: Andrii Nakryiko <andrii@kernel.org> > Cc: Anshuman Khandual <anshuman.khandual@arm.com> > Cc: Carsten Haitzler <carsten.haitzler@arm.com> > Cc: Eduard Zingerman <eddyz87@gmail.com> > Cc: Fangrui Song <maskray@google.com> > Cc: He Kuang <hekuang@huawei.com> > Cc: Ian Rogers <irogers@google.com> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: James Clark <james.clark@arm.com> > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Kan Liang <kan.liang@linux.intel.com> > Cc: Leo Yan <leo.yan@linaro.org> > Cc: llvm@lists.linux.dev > Cc: Madhavan Srinivasan <maddy@linux.ibm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Nathan Chancellor <nathan@kernel.org> > Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Quentin Monnet <quentin@isovalent.com> > Cc: Ravi Bangoria <ravi.bangoria@amd.com> > Cc: Rob Herring <robh@kernel.org> > Cc: Tiezhu Yang <yangtiezhu@loongson.cn> > Cc: Tom Rix <trix@redhat.com> > Cc: Wang Nan <wangnan0@huawei.com> > Cc: Wang ShaoBo <bobo.shaobowang@huawei.com> > Cc: Yang Jihong <yangjihong1@huawei.com> > Cc: Yonghong Song <yhs@fb.com> > Cc: YueHaibing <yuehaibing@huawei.com> > Link: https://lore.kernel.org/lkml/ZTGa0Ukt7QyxWcVy@kernel.org > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > tools/build/feature/test-llvm.cpp | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > create mode 100644 tools/build/feature/test-llvm.cpp > > diff --git a/tools/build/feature/test-llvm.cpp b/tools/build/feature/test-llvm.cpp > new file mode 100644 > index 0000000000000000..88a3d1bdd9f6978e > --- /dev/null > +++ b/tools/build/feature/test-llvm.cpp > @@ -0,0 +1,14 @@ > +// SPDX-License-Identifier: GPL-2.0 > +#include "llvm/Support/ManagedStatic.h" > +#include "llvm/Support/raw_ostream.h" > +#define NUM_VERSION (((LLVM_VERSION_MAJOR) << 16) + (LLVM_VERSION_MINOR << 8) + LLVM_VERSION_PATCH) > + > +#if NUM_VERSION < 0x030900 > +# error "LLVM version too low" > +#endif > +int main() > +{ > + llvm::errs() << "Hello World!\n"; > + llvm::llvm_shutdown(); > + return 0; > +} > -- > 2.41.0 >
On 19/10/2023 23:47, Andrii Nakryiko wrote: > On Thu, Oct 19, 2023 at 2:17 PM Arnaldo Carvalho de Melo > <acme@kernel.org> wrote: >> >> When removing the BPF event for perf a feature test that checks if the >> llvm devel files are availabe was removed but that is also used by >> bpftool. >> >> bpftool uses it to decide what kind of disassembly it will use: llvm or >> binutils based. >> >> Removing the tools/build/feature/test-llvm.cpp file made bpftool to >> always fallback to binutils disassembly, even with the llvm devel files >> installed, fix it by restoring just that small test-llvm.cpp test file. >> >> Fixes: 56b11a2126bf2f42 ("perf bpf: Remove support for embedding clang for compiling BPF events (-e foo.c)") > > Should we route this through the bpf-next tree to get the fix for > bpftool into Github mirror ASAP? It shouldn't be necessary. The GitHub mirror for bpftool uses its own feature detection mechanism, and is not affected here. This patch won't even make it to the mirror. Quentin
On Thu, Oct 19, 2023 at 06:17:37PM -0300, Arnaldo Carvalho de Melo wrote: > When removing the BPF event for perf a feature test that checks if the > llvm devel files are availabe was removed but that is also used by > bpftool. > > bpftool uses it to decide what kind of disassembly it will use: llvm or > binutils based. > > Removing the tools/build/feature/test-llvm.cpp file made bpftool to > always fallback to binutils disassembly, even with the llvm devel files > installed, fix it by restoring just that small test-llvm.cpp test file. > > Fixes: 56b11a2126bf2f42 ("perf bpf: Remove support for embedding clang for compiling BPF events (-e foo.c)") > Reported-by: Manu Bretelle <chantr4@gmail.com> > Cc: Adrian Hunter <adrian.hunter@intel.com> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > Cc: Andi Kleen <ak@linux.intel.com> > Cc: Andrii Nakryiko <andrii@kernel.org> > Cc: Anshuman Khandual <anshuman.khandual@arm.com> > Cc: Carsten Haitzler <carsten.haitzler@arm.com> > Cc: Eduard Zingerman <eddyz87@gmail.com> > Cc: Fangrui Song <maskray@google.com> > Cc: He Kuang <hekuang@huawei.com> > Cc: Ian Rogers <irogers@google.com> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: James Clark <james.clark@arm.com> > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Kan Liang <kan.liang@linux.intel.com> > Cc: Leo Yan <leo.yan@linaro.org> > Cc: llvm@lists.linux.dev > Cc: Madhavan Srinivasan <maddy@linux.ibm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Nathan Chancellor <nathan@kernel.org> > Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Quentin Monnet <quentin@isovalent.com> > Cc: Ravi Bangoria <ravi.bangoria@amd.com> > Cc: Rob Herring <robh@kernel.org> > Cc: Tiezhu Yang <yangtiezhu@loongson.cn> > Cc: Tom Rix <trix@redhat.com> > Cc: Wang Nan <wangnan0@huawei.com> > Cc: Wang ShaoBo <bobo.shaobowang@huawei.com> > Cc: Yang Jihong <yangjihong1@huawei.com> > Cc: Yonghong Song <yhs@fb.com> > Cc: YueHaibing <yuehaibing@huawei.com> > Link: https://lore.kernel.org/lkml/ZTGa0Ukt7QyxWcVy@kernel.org > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > tools/build/feature/test-llvm.cpp | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > create mode 100644 tools/build/feature/test-llvm.cpp > > diff --git a/tools/build/feature/test-llvm.cpp b/tools/build/feature/test-llvm.cpp > new file mode 100644 > index 0000000000000000..88a3d1bdd9f6978e > --- /dev/null > +++ b/tools/build/feature/test-llvm.cpp > @@ -0,0 +1,14 @@ > +// SPDX-License-Identifier: GPL-2.0 > +#include "llvm/Support/ManagedStatic.h" > +#include "llvm/Support/raw_ostream.h" > +#define NUM_VERSION (((LLVM_VERSION_MAJOR) << 16) + (LLVM_VERSION_MINOR << 8) + LLVM_VERSION_PATCH) > + > +#if NUM_VERSION < 0x030900 > +# error "LLVM version too low" > +#endif > +int main() > +{ > + llvm::errs() << "Hello World!\n"; > + llvm::llvm_shutdown(); > + return 0; > +} Thanks for the quick turnaround!
diff --git a/tools/build/feature/test-llvm.cpp b/tools/build/feature/test-llvm.cpp new file mode 100644 index 0000000000000000..88a3d1bdd9f6978e --- /dev/null +++ b/tools/build/feature/test-llvm.cpp @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "llvm/Support/ManagedStatic.h" +#include "llvm/Support/raw_ostream.h" +#define NUM_VERSION (((LLVM_VERSION_MAJOR) << 16) + (LLVM_VERSION_MINOR << 8) + LLVM_VERSION_PATCH) + +#if NUM_VERSION < 0x030900 +# error "LLVM version too low" +#endif +int main() +{ + llvm::errs() << "Hello World!\n"; + llvm::llvm_shutdown(); + return 0; +}
When removing the BPF event for perf a feature test that checks if the llvm devel files are availabe was removed but that is also used by bpftool. bpftool uses it to decide what kind of disassembly it will use: llvm or binutils based. Removing the tools/build/feature/test-llvm.cpp file made bpftool to always fallback to binutils disassembly, even with the llvm devel files installed, fix it by restoring just that small test-llvm.cpp test file. Fixes: 56b11a2126bf2f42 ("perf bpf: Remove support for embedding clang for compiling BPF events (-e foo.c)") Reported-by: Manu Bretelle <chantr4@gmail.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Andrii Nakryiko <andrii@kernel.org> Cc: Anshuman Khandual <anshuman.khandual@arm.com> Cc: Carsten Haitzler <carsten.haitzler@arm.com> Cc: Eduard Zingerman <eddyz87@gmail.com> Cc: Fangrui Song <maskray@google.com> Cc: He Kuang <hekuang@huawei.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@linaro.org> Cc: llvm@lists.linux.dev Cc: Madhavan Srinivasan <maddy@linux.ibm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Quentin Monnet <quentin@isovalent.com> Cc: Ravi Bangoria <ravi.bangoria@amd.com> Cc: Rob Herring <robh@kernel.org> Cc: Tiezhu Yang <yangtiezhu@loongson.cn> Cc: Tom Rix <trix@redhat.com> Cc: Wang Nan <wangnan0@huawei.com> Cc: Wang ShaoBo <bobo.shaobowang@huawei.com> Cc: Yang Jihong <yangjihong1@huawei.com> Cc: Yonghong Song <yhs@fb.com> Cc: YueHaibing <yuehaibing@huawei.com> Link: https://lore.kernel.org/lkml/ZTGa0Ukt7QyxWcVy@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/build/feature/test-llvm.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tools/build/feature/test-llvm.cpp