* ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) @ 2022-08-22 23:28 Arnaldo Carvalho de Melo [not found] ` <CADo9pHhW9w+ciNbQr+7u4mezuQ1USyh0k2Wshy=wkdEcxRiDLA@mail.gmail.com> 2022-08-24 16:24 ` Nathan Chancellor 0 siblings, 2 replies; 16+ messages in thread From: Arnaldo Carvalho de Melo @ 2022-08-22 23:28 UTC (permalink / raw) To: dwarves Cc: Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa Hi, The v1.24 release of pahole and its friends is out, with faster BTF generation by parallelizing the encoding part in addition to the previoulsy parallelized DWARF loading, support for 64-bit BTF enumeration entries, signed BTF encoding of 'char', exclude/select DWARF loading based on the language that generated the objects, etc. Main git repo: git://git.kernel.org/pub/scm/devel/pahole/pahole.git Mirror git repo: https://github.com/acmel/dwarves.git tarball + gpg signature: https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.xz https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.bz2 https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.sign Thanks a lot to all the contributors and distro packagers, you're on the CC list, I appreciate a lot the work you put into these tools, Best Regards, BTF encoder: - Add support to BTF_KIND_ENUM64 to represent enumeration entries with more than 32 bits. - Support multithreaded encoding, in addition to DWARF multithreaded loading, speeding up the process. Selected just like DWARF multithreaded loading, using the 'pahole -j' option. - Encode 'char' type as signed. BTF Loader: - Add support to BTF_KIND_ENUM64. pahole: - Introduce --lang and --lang_exclude to specify the language the DWARF compile units were originated from to use or filter. Use case is to exclude Rust compile units while aspects of the DWARF generated for it get sorted out in a way that the kernel BPF verifier don't refuse loading the BTF generated from them. - Introduce --compile to generate compilable code in a similar fashion to: bpftool btf dump file vmlinux format c > vmlinux.h As with 'bpftool', this will notice type shadowing, i.e. multiple types with the same name and will disambiguate by adding a suffix. - Don't segfault when processing bogus files. ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <CADo9pHhW9w+ciNbQr+7u4mezuQ1USyh0k2Wshy=wkdEcxRiDLA@mail.gmail.com>]
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) [not found] ` <CADo9pHhW9w+ciNbQr+7u4mezuQ1USyh0k2Wshy=wkdEcxRiDLA@mail.gmail.com> @ 2022-08-24 14:32 ` Arnaldo Carvalho de Melo 2022-08-24 14:36 ` Luna Jernberg 0 siblings, 1 reply; 16+ messages in thread From: Arnaldo Carvalho de Melo @ 2022-08-24 14:32 UTC (permalink / raw) To: Luna Jernberg Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa Em Wed, Aug 24, 2022 at 03:23:29PM +0200, Luna Jernberg escreveu: > This package breaks on Arch Linux at the moment and if you are using Arch > its recommended that you downgrade to 1.23 Breaks in what sense? Can you please provide details? - Arnaldo > On Tue, Aug 23, 2022 at 1:59 AM Arnaldo Carvalho de Melo <acme@kernel.org> > wrote: > > > Hi, > > > > The v1.24 release of pahole and its friends is out, with faster > > BTF generation by parallelizing the encoding part in addition to the > > previoulsy parallelized DWARF loading, support for 64-bit BTF enumeration > > entries, signed BTF encoding of 'char', exclude/select DWARF loading > > based on the language that generated the objects, etc. > > > > Main git repo: > > > > git://git.kernel.org/pub/scm/devel/pahole/pahole.git > > > > Mirror git repo: > > > > https://github.com/acmel/dwarves.git > > > > tarball + gpg signature: > > > > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.xz > > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.bz2 > > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.sign > > > > Thanks a lot to all the contributors and distro packagers, you're > > on the > > CC list, I appreciate a lot the work you put into these tools, > > > > Best Regards, > > > > BTF encoder: > > > > - Add support to BTF_KIND_ENUM64 to represent enumeration entries with > > more than 32 bits. > > > > - Support multithreaded encoding, in addition to DWARF multithreaded > > loading, speeding up the process. > > > > Selected just like DWARF multithreaded loading, using the 'pahole -j' > > option. > > > > - Encode 'char' type as signed. > > > > BTF Loader: > > > > - Add support to BTF_KIND_ENUM64. > > > > pahole: > > > > - Introduce --lang and --lang_exclude to specify the language the > > DWARF compile units were originated from to use or filter. > > > > Use case is to exclude Rust compile units while aspects of the > > DWARF generated for it get sorted out in a way that the kernel > > BPF verifier don't refuse loading the BTF generated from them. > > > > - Introduce --compile to generate compilable code in a similar fashion to: > > > > bpftool btf dump file vmlinux format c > vmlinux.h > > > > As with 'bpftool', this will notice type shadowing, i.e. multiple types > > with the same name and will disambiguate by adding a suffix. > > > > - Don't segfault when processing bogus files. > > -- - Arnaldo ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 14:32 ` Arnaldo Carvalho de Melo @ 2022-08-24 14:36 ` Luna Jernberg 2022-08-24 14:37 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 16+ messages in thread From: Luna Jernberg @ 2022-08-24 14:36 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, droidbittin Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa The Nvidia driver breaks On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > Em Wed, Aug 24, 2022 at 03:23:29PM +0200, Luna Jernberg escreveu: >> This package breaks on Arch Linux at the moment and if you are using Arch >> its recommended that you downgrade to 1.23 > > Breaks in what sense? Can you please provide details? > > - Arnaldo > >> On Tue, Aug 23, 2022 at 1:59 AM Arnaldo Carvalho de Melo >> <acme@kernel.org> >> wrote: >> >> > Hi, >> > >> > The v1.24 release of pahole and its friends is out, with faster >> > BTF generation by parallelizing the encoding part in addition to the >> > previoulsy parallelized DWARF loading, support for 64-bit BTF >> > enumeration >> > entries, signed BTF encoding of 'char', exclude/select DWARF loading >> > based on the language that generated the objects, etc. >> > >> > Main git repo: >> > >> > git://git.kernel.org/pub/scm/devel/pahole/pahole.git >> > >> > Mirror git repo: >> > >> > https://github.com/acmel/dwarves.git >> > >> > tarball + gpg signature: >> > >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.xz >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.bz2 >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.sign >> > >> > Thanks a lot to all the contributors and distro packagers, >> > you're >> > on the >> > CC list, I appreciate a lot the work you put into these tools, >> > >> > Best Regards, >> > >> > BTF encoder: >> > >> > - Add support to BTF_KIND_ENUM64 to represent enumeration entries with >> > more than 32 bits. >> > >> > - Support multithreaded encoding, in addition to DWARF multithreaded >> > loading, speeding up the process. >> > >> > Selected just like DWARF multithreaded loading, using the 'pahole -j' >> > option. >> > >> > - Encode 'char' type as signed. >> > >> > BTF Loader: >> > >> > - Add support to BTF_KIND_ENUM64. >> > >> > pahole: >> > >> > - Introduce --lang and --lang_exclude to specify the language the >> > DWARF compile units were originated from to use or filter. >> > >> > Use case is to exclude Rust compile units while aspects of the >> > DWARF generated for it get sorted out in a way that the kernel >> > BPF verifier don't refuse loading the BTF generated from them. >> > >> > - Introduce --compile to generate compilable code in a similar fashion >> > to: >> > >> > bpftool btf dump file vmlinux format c > vmlinux.h >> > >> > As with 'bpftool', this will notice type shadowing, i.e. multiple >> > types >> > with the same name and will disambiguate by adding a suffix. >> > >> > - Don't segfault when processing bogus files. >> > > > -- > > - Arnaldo > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 14:36 ` Luna Jernberg @ 2022-08-24 14:37 ` Arnaldo Carvalho de Melo 2022-08-24 14:38 ` Luna Jernberg 0 siblings, 1 reply; 16+ messages in thread From: Arnaldo Carvalho de Melo @ 2022-08-24 14:37 UTC (permalink / raw) To: Luna Jernberg Cc: Arnaldo Carvalho de Melo, dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa Em Wed, Aug 24, 2022 at 04:36:18PM +0200, Luna Jernberg escreveu: > The Nvidia driver breaks How? What are the messages? Here is a test on an Archlinux container: [perfbuilder@758097c04011 dwarves-1.24]$ pahole --version v1.24 [perfbuilder@758097c04011 dwarves-1.24]$ cat /etc/os-release NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling VERSION_ID=TEMPLATE_VERSION_ID ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://bugs.archlinux.org/" LOGO=archlinux-logo [perfbuilder@758097c04011 dwarves-1.24]$ pahole list_head struct list_head { struct list_head * next; /* 0 8 */ struct list_head * prev; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; [perfbuilder@758097c04011 dwarves-1.24]$ pahole --sizes | sort -k2 -nr | head rcu_state 300608 7 cmp_data 290904 1 dec_data 274520 1 cpu_entry_area 241664 0 kvm 190016 6 pglist_data 173440 6 ZSTD_DCtx_s 161480 6 saved_cmdlines_buffer 131104 1 debug_store_buffers 131072 0 hid_parser 110848 1 [perfbuilder@758097c04011 dwarves-1.24]$ > On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > > Em Wed, Aug 24, 2022 at 03:23:29PM +0200, Luna Jernberg escreveu: > >> This package breaks on Arch Linux at the moment and if you are using Arch > >> its recommended that you downgrade to 1.23 > > > > Breaks in what sense? Can you please provide details? > > > > - Arnaldo > > > >> On Tue, Aug 23, 2022 at 1:59 AM Arnaldo Carvalho de Melo > >> <acme@kernel.org> > >> wrote: > >> > >> > Hi, > >> > > >> > The v1.24 release of pahole and its friends is out, with faster > >> > BTF generation by parallelizing the encoding part in addition to the > >> > previoulsy parallelized DWARF loading, support for 64-bit BTF > >> > enumeration > >> > entries, signed BTF encoding of 'char', exclude/select DWARF loading > >> > based on the language that generated the objects, etc. > >> > > >> > Main git repo: > >> > > >> > git://git.kernel.org/pub/scm/devel/pahole/pahole.git > >> > > >> > Mirror git repo: > >> > > >> > https://github.com/acmel/dwarves.git > >> > > >> > tarball + gpg signature: > >> > > >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.xz > >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.bz2 > >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.sign > >> > > >> > Thanks a lot to all the contributors and distro packagers, > >> > you're > >> > on the > >> > CC list, I appreciate a lot the work you put into these tools, > >> > > >> > Best Regards, > >> > > >> > BTF encoder: > >> > > >> > - Add support to BTF_KIND_ENUM64 to represent enumeration entries with > >> > more than 32 bits. > >> > > >> > - Support multithreaded encoding, in addition to DWARF multithreaded > >> > loading, speeding up the process. > >> > > >> > Selected just like DWARF multithreaded loading, using the 'pahole -j' > >> > option. > >> > > >> > - Encode 'char' type as signed. > >> > > >> > BTF Loader: > >> > > >> > - Add support to BTF_KIND_ENUM64. > >> > > >> > pahole: > >> > > >> > - Introduce --lang and --lang_exclude to specify the language the > >> > DWARF compile units were originated from to use or filter. > >> > > >> > Use case is to exclude Rust compile units while aspects of the > >> > DWARF generated for it get sorted out in a way that the kernel > >> > BPF verifier don't refuse loading the BTF generated from them. > >> > > >> > - Introduce --compile to generate compilable code in a similar fashion > >> > to: > >> > > >> > bpftool btf dump file vmlinux format c > vmlinux.h > >> > > >> > As with 'bpftool', this will notice type shadowing, i.e. multiple > >> > types > >> > with the same name and will disambiguate by adding a suffix. > >> > > >> > - Don't segfault when processing bogus files. > >> > > > > > -- > > > > - Arnaldo > > -- - Arnaldo ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 14:37 ` Arnaldo Carvalho de Melo @ 2022-08-24 14:38 ` Luna Jernberg 2022-08-24 22:50 ` Martin Reboredo 0 siblings, 1 reply; 16+ messages in thread From: Luna Jernberg @ 2022-08-24 14:38 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, droidbittin Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa https://forum.endeavouros.com/t/failed-to-start-load-kernel-modules-on-boot-after-system-update-nvidia/30584/17?u=sradjoker On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > Em Wed, Aug 24, 2022 at 04:36:18PM +0200, Luna Jernberg escreveu: >> The Nvidia driver breaks > > How? What are the messages? > > Here is a test on an Archlinux container: > > [perfbuilder@758097c04011 dwarves-1.24]$ pahole --version > v1.24 > [perfbuilder@758097c04011 dwarves-1.24]$ cat /etc/os-release > NAME="Arch Linux" > PRETTY_NAME="Arch Linux" > ID=arch > BUILD_ID=rolling > VERSION_ID=TEMPLATE_VERSION_ID > ANSI_COLOR="38;2;23;147;209" > HOME_URL="https://archlinux.org/" > DOCUMENTATION_URL="https://wiki.archlinux.org/" > SUPPORT_URL="https://bbs.archlinux.org/" > BUG_REPORT_URL="https://bugs.archlinux.org/" > LOGO=archlinux-logo > [perfbuilder@758097c04011 dwarves-1.24]$ pahole list_head > struct list_head { > struct list_head * next; /* 0 8 */ > struct list_head * prev; /* 8 8 */ > > /* size: 16, cachelines: 1, members: 2 */ > /* last cacheline: 16 bytes */ > }; > [perfbuilder@758097c04011 dwarves-1.24]$ pahole --sizes | sort -k2 -nr | > head > rcu_state 300608 7 > cmp_data 290904 1 > dec_data 274520 1 > cpu_entry_area 241664 0 > kvm 190016 6 > pglist_data 173440 6 > ZSTD_DCtx_s 161480 6 > saved_cmdlines_buffer 131104 1 > debug_store_buffers 131072 0 > hid_parser 110848 1 > [perfbuilder@758097c04011 dwarves-1.24]$ > >> On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: >> > Em Wed, Aug 24, 2022 at 03:23:29PM +0200, Luna Jernberg escreveu: >> >> This package breaks on Arch Linux at the moment and if you are using >> >> Arch >> >> its recommended that you downgrade to 1.23 >> > >> > Breaks in what sense? Can you please provide details? >> > >> > - Arnaldo >> > >> >> On Tue, Aug 23, 2022 at 1:59 AM Arnaldo Carvalho de Melo >> >> <acme@kernel.org> >> >> wrote: >> >> >> >> > Hi, >> >> > >> >> > The v1.24 release of pahole and its friends is out, with >> >> > faster >> >> > BTF generation by parallelizing the encoding part in addition to the >> >> > previoulsy parallelized DWARF loading, support for 64-bit BTF >> >> > enumeration >> >> > entries, signed BTF encoding of 'char', exclude/select DWARF loading >> >> > based on the language that generated the objects, etc. >> >> > >> >> > Main git repo: >> >> > >> >> > git://git.kernel.org/pub/scm/devel/pahole/pahole.git >> >> > >> >> > Mirror git repo: >> >> > >> >> > https://github.com/acmel/dwarves.git >> >> > >> >> > tarball + gpg signature: >> >> > >> >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.xz >> >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.bz2 >> >> > https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.sign >> >> > >> >> > Thanks a lot to all the contributors and distro packagers, >> >> > you're >> >> > on the >> >> > CC list, I appreciate a lot the work you put into these tools, >> >> > >> >> > Best Regards, >> >> > >> >> > BTF encoder: >> >> > >> >> > - Add support to BTF_KIND_ENUM64 to represent enumeration entries >> >> > with >> >> > more than 32 bits. >> >> > >> >> > - Support multithreaded encoding, in addition to DWARF multithreaded >> >> > loading, speeding up the process. >> >> > >> >> > Selected just like DWARF multithreaded loading, using the 'pahole >> >> > -j' >> >> > option. >> >> > >> >> > - Encode 'char' type as signed. >> >> > >> >> > BTF Loader: >> >> > >> >> > - Add support to BTF_KIND_ENUM64. >> >> > >> >> > pahole: >> >> > >> >> > - Introduce --lang and --lang_exclude to specify the language the >> >> > DWARF compile units were originated from to use or filter. >> >> > >> >> > Use case is to exclude Rust compile units while aspects of the >> >> > DWARF generated for it get sorted out in a way that the kernel >> >> > BPF verifier don't refuse loading the BTF generated from them. >> >> > >> >> > - Introduce --compile to generate compilable code in a similar >> >> > fashion >> >> > to: >> >> > >> >> > bpftool btf dump file vmlinux format c > vmlinux.h >> >> > >> >> > As with 'bpftool', this will notice type shadowing, i.e. multiple >> >> > types >> >> > with the same name and will disambiguate by adding a suffix. >> >> > >> >> > - Don't segfault when processing bogus files. >> >> > >> > >> > -- >> > >> > - Arnaldo >> > > > -- > > - Arnaldo > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 14:38 ` Luna Jernberg @ 2022-08-24 22:50 ` Martin Reboredo 2022-08-28 7:38 ` Jiri Olsa 0 siblings, 1 reply; 16+ messages in thread From: Martin Reboredo @ 2022-08-24 22:50 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, Luna Jernberg Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa On 8/24/22 11:38, Luna Jernberg wrote: > https://forum.endeavouros.com/t/failed-to-start-load-kernel-modules-on-boot-after-system-update-nvidia/30584/17?u=sradjoker > > On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: >> Em Wed, Aug 24, 2022 at 04:36:18PM +0200, Luna Jernberg escreveu: >>> The Nvidia driver breaks >> >> How? What are the messages? >> >> Here is a test on an Archlinux container: >> >> [perfbuilder@758097c04011 dwarves-1.24]$ pahole --version >> v1.24 >> [perfbuilder@758097c04011 dwarves-1.24]$ cat /etc/os-release >> NAME="Arch Linux" >> PRETTY_NAME="Arch Linux" >> ID=arch >> BUILD_ID=rolling >> VERSION_ID=TEMPLATE_VERSION_ID >> ANSI_COLOR="38;2;23;147;209" >> HOME_URL="https://archlinux.org/" >> DOCUMENTATION_URL="https://wiki.archlinux.org/" >> SUPPORT_URL="https://bbs.archlinux.org/" >> BUG_REPORT_URL="https://bugs.archlinux.org/" >> LOGO=archlinux-logo >> [perfbuilder@758097c04011 dwarves-1.24]$ pahole list_head >> struct list_head { >> struct list_head * next; /* 0 8 */ >> struct list_head * prev; /* 8 8 */ >> >> /* size: 16, cachelines: 1, members: 2 */ >> /* last cacheline: 16 bytes */ >> }; >> [perfbuilder@758097c04011 dwarves-1.24]$ pahole --sizes | sort -k2 -nr | >> head >> rcu_state 300608 7 >> cmp_data 290904 1 >> dec_data 274520 1 >> cpu_entry_area 241664 0 >> kvm 190016 6 >> pglist_data 173440 6 >> ZSTD_DCtx_s 161480 6 >> saved_cmdlines_buffer 131104 1 >> debug_store_buffers 131072 0 >> hid_parser 110848 1 >> [perfbuilder@758097c04011 dwarves-1.24]$ >> >>> On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: >>>> Em Wed, Aug 24, 2022 at 03:23:29PM +0200, Luna Jernberg escreveu: >>>>> This package breaks on Arch Linux at the moment and if you are using >>>>> Arch >>>>> its recommended that you downgrade to 1.23 >>>> >>>> Breaks in what sense? Can you please provide details? >>>> >>>> - Arnaldo >>>> >>>>> On Tue, Aug 23, 2022 at 1:59 AM Arnaldo Carvalho de Melo >>>>> <acme@kernel.org> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> The v1.24 release of pahole and its friends is out, with >>>>>> faster >>>>>> BTF generation by parallelizing the encoding part in addition to the >>>>>> previoulsy parallelized DWARF loading, support for 64-bit BTF >>>>>> enumeration >>>>>> entries, signed BTF encoding of 'char', exclude/select DWARF loading >>>>>> based on the language that generated the objects, etc. >>>>>> >>>>>> Main git repo: >>>>>> >>>>>> git://git.kernel.org/pub/scm/devel/pahole/pahole.git >>>>>> >>>>>> Mirror git repo: >>>>>> >>>>>> https://github.com/acmel/dwarves.git >>>>>> >>>>>> tarball + gpg signature: >>>>>> >>>>>> https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.xz >>>>>> https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.bz2 >>>>>> https://fedorapeople.org/~acme/dwarves/dwarves-1.24.tar.sign >>>>>> >>>>>> Thanks a lot to all the contributors and distro packagers, >>>>>> you're >>>>>> on the >>>>>> CC list, I appreciate a lot the work you put into these tools, >>>>>> >>>>>> Best Regards, >>>>>> >>>>>> BTF encoder: >>>>>> >>>>>> - Add support to BTF_KIND_ENUM64 to represent enumeration entries >>>>>> with >>>>>> more than 32 bits. >>>>>> >>>>>> - Support multithreaded encoding, in addition to DWARF multithreaded >>>>>> loading, speeding up the process. >>>>>> >>>>>> Selected just like DWARF multithreaded loading, using the 'pahole >>>>>> -j' >>>>>> option. >>>>>> >>>>>> - Encode 'char' type as signed. >>>>>> >>>>>> BTF Loader: >>>>>> >>>>>> - Add support to BTF_KIND_ENUM64. >>>>>> >>>>>> pahole: >>>>>> >>>>>> - Introduce --lang and --lang_exclude to specify the language the >>>>>> DWARF compile units were originated from to use or filter. >>>>>> >>>>>> Use case is to exclude Rust compile units while aspects of the >>>>>> DWARF generated for it get sorted out in a way that the kernel >>>>>> BPF verifier don't refuse loading the BTF generated from them. >>>>>> >>>>>> - Introduce --compile to generate compilable code in a similar >>>>>> fashion >>>>>> to: >>>>>> >>>>>> bpftool btf dump file vmlinux format c > vmlinux.h >>>>>> >>>>>> As with 'bpftool', this will notice type shadowing, i.e. multiple >>>>>> types >>>>>> with the same name and will disambiguate by adding a suffix. >>>>>> >>>>>> - Don't segfault when processing bogus files. >>>>>> >>>> >>>> -- >>>> >>>> - Arnaldo >>>> >> >> -- >> >> - Arnaldo >> Can you try a build of the kernel or the by passing the --skip_encoding_btf_enum64 to scripts/pahole-flags.sh? Here's a patch for either in tree scripts/pahole-flags.sh or /usr/lib/modules/5.19.3-arch1-1/build/scripts/pahole-flags.sh diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh index 0d99ef17e4a528..1f1f1d397c399a 100755 --- a/scripts/pahole-flags.sh +++ b/scripts/pahole-flags.sh @@ -19,5 +19,9 @@ fi if [ "${pahole_ver}" -ge "122" ]; then extra_paholeopt="${extra_paholeopt} -j" fi +if [ "${pahole_ver}" -ge "124" ]; then + # see PAHOLE_HAS_LANG_EXCLUDE + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_enum64" +fi echo ${extra_paholeopt} - Martin Rodriguez Reboredo ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 22:50 ` Martin Reboredo @ 2022-08-28 7:38 ` Jiri Olsa 2022-08-28 14:29 ` Martin Rodriguez Reboredo 0 siblings, 1 reply; 16+ messages in thread From: Jiri Olsa @ 2022-08-28 7:38 UTC (permalink / raw) To: Martin Reboredo Cc: Arnaldo Carvalho de Melo, Luna Jernberg, dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf On Wed, Aug 24, 2022 at 07:50:39PM -0300, Martin Reboredo wrote: > On 8/24/22 11:38, Luna Jernberg wrote: > > https://forum.endeavouros.com/t/failed-to-start-load-kernel-modules-on-boot-after-system-update-nvidia/30584/17?u=sradjoker > > > > On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > >> Em Wed, Aug 24, 2022 at 04:36:18PM +0200, Luna Jernberg escreveu: SNIP > > Can you try a build of the kernel or the by passing the > --skip_encoding_btf_enum64 to scripts/pahole-flags.sh? Martin, could you please send formal patch this? thanks, jirka > > Here's a patch for either in tree scripts/pahole-flags.sh or > /usr/lib/modules/5.19.3-arch1-1/build/scripts/pahole-flags.sh > > diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh > index 0d99ef17e4a528..1f1f1d397c399a 100755 > --- a/scripts/pahole-flags.sh > +++ b/scripts/pahole-flags.sh > @@ -19,5 +19,9 @@ fi > if [ "${pahole_ver}" -ge "122" ]; then > extra_paholeopt="${extra_paholeopt} -j" > fi > +if [ "${pahole_ver}" -ge "124" ]; then > + # see PAHOLE_HAS_LANG_EXCLUDE > + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_enum64" > +fi > > echo ${extra_paholeopt} > > - Martin Rodriguez Reboredo ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-28 7:38 ` Jiri Olsa @ 2022-08-28 14:29 ` Martin Rodriguez Reboredo 2022-08-28 17:01 ` Jiri Olsa 0 siblings, 1 reply; 16+ messages in thread From: Martin Rodriguez Reboredo @ 2022-08-28 14:29 UTC (permalink / raw) To: Jiri Olsa Cc: Arnaldo Carvalho de Melo, Luna Jernberg, dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf On 8/28/22 04:38, Jiri Olsa wrote: > On Wed, Aug 24, 2022 at 07:50:39PM -0300, Martin Reboredo wrote: >> On 8/24/22 11:38, Luna Jernberg wrote: >>> https://forum.endeavouros.com/t/failed-to-start-load-kernel-modules-on-boot-after-system-update-nvidia/30584/17?u=sradjoker >>> >>> On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: >>>> Em Wed, Aug 24, 2022 at 04:36:18PM +0200, Luna Jernberg escreveu: > > SNIP > >> >> Can you try a build of the kernel or the by passing the >> --skip_encoding_btf_enum64 to scripts/pahole-flags.sh? > > Martin, > could you please send formal patch this? > > thanks, > jirka Sure, sure! Though it might take a bit of time due to being my first contribution submitted by me (I've already contributed through the Rust patches though), I'll add Kconfig entries for this, one for the availability to skip the enum64 encoding and another for toggle the flag. Stay tuned. - Martin Rodriguez Reboredo ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-28 14:29 ` Martin Rodriguez Reboredo @ 2022-08-28 17:01 ` Jiri Olsa 0 siblings, 0 replies; 16+ messages in thread From: Jiri Olsa @ 2022-08-28 17:01 UTC (permalink / raw) To: Martin Rodriguez Reboredo Cc: Jiri Olsa, Arnaldo Carvalho de Melo, Luna Jernberg, dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf On Sun, Aug 28, 2022 at 11:29:35AM -0300, Martin Rodriguez Reboredo wrote: > On 8/28/22 04:38, Jiri Olsa wrote: > > On Wed, Aug 24, 2022 at 07:50:39PM -0300, Martin Reboredo wrote: > >> On 8/24/22 11:38, Luna Jernberg wrote: > >>> https://forum.endeavouros.com/t/failed-to-start-load-kernel-modules-on-boot-after-system-update-nvidia/30584/17?u=sradjoker > >>> > >>> On 8/24/22, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > >>>> Em Wed, Aug 24, 2022 at 04:36:18PM +0200, Luna Jernberg escreveu: > > > > SNIP > > > >> > >> Can you try a build of the kernel or the by passing the > >> --skip_encoding_btf_enum64 to scripts/pahole-flags.sh? > > > > Martin, > > could you please send formal patch this? > > > > thanks, > > jirka > > Sure, sure! Though it might take a bit of time due to being my first > contribution submitted by me (I've already contributed through the Rust > patches though), I'll add Kconfig entries for this, one for the > availability to skip the enum64 encoding and another for toggle the > flag. Stay tuned. hm, but we actually need that just for 5.15 or whatever stable version is using latest pahole but does not have support for enum64 please check Documentation/process/stable-kernel-rules.rst jirka ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-22 23:28 ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) Arnaldo Carvalho de Melo [not found] ` <CADo9pHhW9w+ciNbQr+7u4mezuQ1USyh0k2Wshy=wkdEcxRiDLA@mail.gmail.com> @ 2022-08-24 16:24 ` Nathan Chancellor 2022-08-24 17:15 ` Arnaldo Carvalho de Melo 1 sibling, 1 reply; 16+ messages in thread From: Nathan Chancellor @ 2022-08-24 16:24 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa Hi Arnaldo, On Mon, Aug 22, 2022 at 08:28:42PM -0300, Arnaldo Carvalho de Melo wrote: > Hi, > > The v1.24 release of pahole and its friends is out, with faster > BTF generation by parallelizing the encoding part in addition to the > previoulsy parallelized DWARF loading, support for 64-bit BTF enumeration > entries, signed BTF encoding of 'char', exclude/select DWARF loading > based on the language that generated the objects, etc. <snip> > - Introduce --lang and --lang_exclude to specify the language the > DWARF compile units were originated from to use or filter. This appears to break building pahole with older versions of libdw (?). I build container images with older versions of compilers for easy matrix testing and my gcc-5 and gcc-6 images (based off Ubuntu Xenial and Debian Stretch respectively) fail to build. $ podman run --rm -ti -v $TMP_FOLDER/dwarves-1.24.tar.xz:/tmp/dwarves-1.24.tar.xz:ro docker.io/ubuntu:xenial # apt update # apt install build-essential cmake libdw-dev libelf-dev xz-utils zlib1g-dev # cd $(mktemp -d) # tar -xJf /tmp/dwarves-1.24.tar.xz # mkdir build # cd build # cmake -DBUILD_SHARED_LIBS=OFF -D__LIB=lib ../dwarves-1.24 # make -j$(nproc) ... /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c: In function 'lang__str2int': /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) [DW_LANG_BLISS] = "bliss", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: error: 'DW_LANG_C_plus_plus_03' undeclared (first use in this function) [DW_LANG_C_plus_plus_03] = "c++03", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: error: 'DW_LANG_Dylan' undeclared (first use in this function) [DW_LANG_Dylan] = "dylan", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: error: 'DW_LANG_Julia' undeclared (first use in this function) [DW_LANG_Julia] = "julia", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: error: 'DW_LANG_Modula3' undeclared (first use in this function) [DW_LANG_Modula3] = "modula3", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: error: 'DW_LANG_OCaml' undeclared (first use in this function) [DW_LANG_OCaml] = "ocaml", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: error: 'DW_LANG_OpenCL' undeclared (first use in this function) [DW_LANG_OpenCL] = "opencl", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: error: 'DW_LANG_PLI' undeclared (first use in this function) [DW_LANG_PLI] = "pli", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: error: 'DW_LANG_RenderScript' undeclared (first use in this function) [DW_LANG_RenderScript] = "renderscript", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: error: 'DW_LANG_Rust' undeclared (first use in this function) [DW_LANG_Rust] = "rust", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: note: (near initialization for 'languages') /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: error: 'DW_LANG_Swift' undeclared (first use in this function) [DW_LANG_Swift] = "swift", ^ /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: error: array index in initializer not of integer type /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: note: (near initialization for 'languages') CMakeFiles/dwarves.dir/build.make:62: recipe for target 'CMakeFiles/dwarves.dir/dwarves.c.o' failed ... If there is any additional information I can provide or patches I can test, please let me know! Cheers, Nathan ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 16:24 ` Nathan Chancellor @ 2022-08-24 17:15 ` Arnaldo Carvalho de Melo 2022-08-24 17:55 ` Arnaldo Carvalho de Melo 2022-08-24 17:59 ` ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) Luna Jernberg 0 siblings, 2 replies; 16+ messages in thread From: Arnaldo Carvalho de Melo @ 2022-08-24 17:15 UTC (permalink / raw) To: Nathan Chancellor Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa Em Wed, Aug 24, 2022 at 09:24:49AM -0700, Nathan Chancellor escreveu: > Hi Arnaldo, > > On Mon, Aug 22, 2022 at 08:28:42PM -0300, Arnaldo Carvalho de Melo wrote: > > Hi, > > > > The v1.24 release of pahole and its friends is out, with faster > > BTF generation by parallelizing the encoding part in addition to the > > previoulsy parallelized DWARF loading, support for 64-bit BTF enumeration > > entries, signed BTF encoding of 'char', exclude/select DWARF loading > > based on the language that generated the objects, etc. > > <snip> > > > - Introduce --lang and --lang_exclude to specify the language the > > DWARF compile units were originated from to use or filter. > > This appears to break building pahole with older versions of libdw (?). > I build container images with older versions of compilers for easy > matrix testing and my gcc-5 and gcc-6 images (based off Ubuntu Xenial > and Debian Stretch respectively) fail to build. I do it for perf, should have done it for pahole :-\ So I'll have to come up with a patch that checks if those are defined and if not, define it :-\ Ooops, its an enumeration :-\ I'll have to check how to fix this, thanks for the report! Will rebuild it with the containers I have to see if there are other cases. - Arnaldo > $ podman run --rm -ti -v $TMP_FOLDER/dwarves-1.24.tar.xz:/tmp/dwarves-1.24.tar.xz:ro docker.io/ubuntu:xenial > # apt update > # apt install build-essential cmake libdw-dev libelf-dev xz-utils zlib1g-dev > # cd $(mktemp -d) > # tar -xJf /tmp/dwarves-1.24.tar.xz > # mkdir build > # cd build > # cmake -DBUILD_SHARED_LIBS=OFF -D__LIB=lib ../dwarves-1.24 > # make -j$(nproc) > ... > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c: In function 'lang__str2int': > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) > [DW_LANG_BLISS] = "bliss", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: error: 'DW_LANG_C_plus_plus_03' undeclared (first use in this function) > [DW_LANG_C_plus_plus_03] = "c++03", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: error: 'DW_LANG_Dylan' undeclared (first use in this function) > [DW_LANG_Dylan] = "dylan", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: error: 'DW_LANG_Julia' undeclared (first use in this function) > [DW_LANG_Julia] = "julia", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: error: 'DW_LANG_Modula3' undeclared (first use in this function) > [DW_LANG_Modula3] = "modula3", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: error: 'DW_LANG_OCaml' undeclared (first use in this function) > [DW_LANG_OCaml] = "ocaml", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: error: 'DW_LANG_OpenCL' undeclared (first use in this function) > [DW_LANG_OpenCL] = "opencl", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: error: 'DW_LANG_PLI' undeclared (first use in this function) > [DW_LANG_PLI] = "pli", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: error: 'DW_LANG_RenderScript' undeclared (first use in this function) > [DW_LANG_RenderScript] = "renderscript", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: error: 'DW_LANG_Rust' undeclared (first use in this function) > [DW_LANG_Rust] = "rust", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: note: (near initialization for 'languages') > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: error: 'DW_LANG_Swift' undeclared (first use in this function) > [DW_LANG_Swift] = "swift", > ^ > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: error: array index in initializer not of integer type > /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: note: (near initialization for 'languages') > CMakeFiles/dwarves.dir/build.make:62: recipe for target 'CMakeFiles/dwarves.dir/dwarves.c.o' failed > ... > > If there is any additional information I can provide or patches I can > test, please let me know! > > Cheers, > Nathan -- - Arnaldo ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 17:15 ` Arnaldo Carvalho de Melo @ 2022-08-24 17:55 ` Arnaldo Carvalho de Melo 2022-08-25 13:19 ` [PATCH] core: Conditionally define language encodings entries) Arnaldo Carvalho de Melo 2022-08-24 17:59 ` ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) Luna Jernberg 1 sibling, 1 reply; 16+ messages in thread From: Arnaldo Carvalho de Melo @ 2022-08-24 17:55 UTC (permalink / raw) To: Nathan Chancellor Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa Em Wed, Aug 24, 2022 at 02:15:36PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Wed, Aug 24, 2022 at 09:24:49AM -0700, Nathan Chancellor escreveu: > > Hi Arnaldo, > > > > On Mon, Aug 22, 2022 at 08:28:42PM -0300, Arnaldo Carvalho de Melo wrote: > > > Hi, > > > > > > The v1.24 release of pahole and its friends is out, with faster > > > BTF generation by parallelizing the encoding part in addition to the > > > previoulsy parallelized DWARF loading, support for 64-bit BTF enumeration > > > entries, signed BTF encoding of 'char', exclude/select DWARF loading > > > based on the language that generated the objects, etc. > > > > <snip> > > > > > - Introduce --lang and --lang_exclude to specify the language the > > > DWARF compile units were originated from to use or filter. > > > > This appears to break building pahole with older versions of libdw (?). > > I build container images with older versions of compilers for easy > > matrix testing and my gcc-5 and gcc-6 images (based off Ubuntu Xenial > > and Debian Stretch respectively) fail to build. > > I do it for perf, should have done it for pahole :-\ > > So I'll have to come up with a patch that checks if those are defined > and if not, define it :-\ Ooops, its an enumeration :-\ I'll have to > check how to fix this, thanks for the report! > > Will rebuild it with the containers I have to see if there are other > cases. Yeah, recent enough distros are all building ok, I'll try and add some fallback for old distros. [perfbuilder@five ~]$ export BUILD_TARBALL=http://192.168.86.14/pahole/dwarves-1.24.tar.xz [perfbuilder@five ~]$ export BUILD_CMD=buildcmd.sh [perfbuilder@five ~]$ time dm 1 3.86 almalinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) , clang version 12.0.1 (Red Hat 12.0.1-4.module_el8.5.0+1025+93159d6c) 2 3.97 almalinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 3 1.06 alpine:3.9 : FAIL gcc version 8.3.0 (Alpine 8.3.0) 4 0.96 alpine:3.10 : FAIL gcc version 8.3.0 (Alpine 8.3.0) 5 0.86 alpine:3.11 : FAIL gcc version 9.3.0 (Alpine 9.3.0) 6 4.77 alpine:3.12 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 10.0.0 (https://gitlab.alpinelinux.org/alpine/aports.git 7445adce501f8473efdb93b17b5eaf2f1445ed4c) 7 5.47 alpine:3.13 : Ok gcc (Alpine 10.2.1_pre1) 10.2.1 20201203 , Alpine clang version 10.0.1 8 5.57 alpine:3.14 : Ok gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424 , Alpine clang version 11.1.0 9 5.37 alpine:3.15 : Ok gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027 , Alpine clang version 12.0.1 10 5.67 alpine:3.16 : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 13.0.1 11 5.67 alpine:edge : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 14.0.6 12 2.96 alt:p8 : FAIL gcc version 5.3.1 20151207 (ALT p8 5.3.1-alt3.M80P.1) (GCC) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) [DW_LANG_BLISS] = "bliss", ^ /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in /git/dwarves-1.24/dwarves.c:2093:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2093:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2100:3: error: 'DW_LANG_C_plus_plus_03' undeclared (first use in this function) [DW_LANG_C_plus_plus_03] = "c++03", ^ /git/dwarves-1.24/dwarves.c:2100:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2100:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2105:3: error: 'DW_LANG_Dylan' undeclared (first use in this function) [DW_LANG_Dylan] = "dylan", ^ /git/dwarves-1.24/dwarves.c:2105:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2105:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2114:3: error: 'DW_LANG_Julia' undeclared (first use in this function) [DW_LANG_Julia] = "julia", ^ /git/dwarves-1.24/dwarves.c:2114:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2114:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2116:3: error: 'DW_LANG_Modula3' undeclared (first use in this function) [DW_LANG_Modula3] = "modula3", ^ /git/dwarves-1.24/dwarves.c:2116:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2116:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2119:3: error: 'DW_LANG_OCaml' undeclared (first use in this function) [DW_LANG_OCaml] = "ocaml", ^ /git/dwarves-1.24/dwarves.c:2119:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2119:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2120:3: error: 'DW_LANG_OpenCL' undeclared (first use in this function) [DW_LANG_OpenCL] = "opencl", ^ /git/dwarves-1.24/dwarves.c:2120:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2120:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2124:3: error: 'DW_LANG_RenderScript' undeclared (first use in this function) [DW_LANG_RenderScript] = "renderscript", ^ /git/dwarves-1.24/dwarves.c:2124:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2124:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2125:3: error: 'DW_LANG_Rust' undeclared (first use in this function) [DW_LANG_Rust] = "rust", ^ /git/dwarves-1.24/dwarves.c:2125:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2125:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2126:3: error: 'DW_LANG_Swift' undeclared (first use in this function) [DW_LANG_Swift] = "swift", ^ /git/dwarves-1.24/dwarves.c:2126:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2126:3: note: (near initialization for 'languages') make[2]: *** [CMakeFiles/dwarves.dir/dwarves.c.o] Error 1 13 4.07 alt:p9 : Ok x86_64-alt-linux-gcc (GCC) 8.4.1 20200305 (ALT p9 8.4.1-alt0.p9.1) , clang version 10.0.0 14 4.17 alt:p10 : Ok x86_64-alt-linux-gcc (GCC) 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt2) , clang version 11.0.1 15 4.17 alt:sisyphus : Ok x86_64-alt-linux-gcc (GCC) 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt1) , ALT Linux Team clang version 13.0.1 16 3.57 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-15) , clang version 11.1.0 (Amazon Linux 2 11.1.0-1.amzn2.0.2) 17 4.27 amazonlinux:devel : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.amzn2022) 18 4.87 archlinux:base : Ok gcc (GCC) 12.1.1 20220730 , clang version 14.0.6 19 3.77 centos:8 : Ok gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1) , clang version 11.0.1 (Red Hat 11.0.1-1.module_el8.4.0+966+2995ef20) 20 4.07 centos:stream : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-15) , clang version 14.0.0 (Red Hat 14.0.0-1.module_el8.7.0+1142+5343df54) 21 4.87 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 12.1.1 20220811 releases/gcc-12.1.0-341-g28a7b5df3b 22 3.36 debian:9 : FAIL gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) [DW_LANG_BLISS] = "bliss", ^~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in /git/dwarves-1.24/dwarves.c:2093:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2093:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2100:3: error: 'DW_LANG_C_plus_plus_03' undeclared (first use in this function) [DW_LANG_C_plus_plus_03] = "c++03", ^~~~~~~~~~~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2100:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2100:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2105:3: error: 'DW_LANG_Dylan' undeclared (first use in this function) [DW_LANG_Dylan] = "dylan", ^~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2105:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2105:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2114:3: error: 'DW_LANG_Julia' undeclared (first use in this function) [DW_LANG_Julia] = "julia", ^~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2114:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2114:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2116:3: error: 'DW_LANG_Modula3' undeclared (first use in this function) [DW_LANG_Modula3] = "modula3", ^~~~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2116:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2116:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2119:3: error: 'DW_LANG_OCaml' undeclared (first use in this function) [DW_LANG_OCaml] = "ocaml", ^~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2119:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2119:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2120:3: error: 'DW_LANG_OpenCL' undeclared (first use in this function) [DW_LANG_OpenCL] = "opencl", ^~~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2120:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2120:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2124:3: error: 'DW_LANG_RenderScript' undeclared (first use in this function) [DW_LANG_RenderScript] = "renderscript", ^~~~~~~~~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2124:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2124:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2125:3: error: 'DW_LANG_Rust' undeclared (first use in this function) [DW_LANG_Rust] = "rust", ^~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2125:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2125:3: note: (near initialization for 'languages') /git/dwarves-1.24/dwarves.c:2126:3: error: 'DW_LANG_Swift' undeclared (first use in this function) [DW_LANG_Swift] = "swift", ^~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2126:3: error: array index in initializer not of integer type /git/dwarves-1.24/dwarves.c:2126:3: note: (near initialization for 'languages') CMakeFiles/dwarves.dir/build.make:62: recipe for target 'CMakeFiles/dwarves.dir/dwarves.c.o' failed make[2]: *** [CMakeFiles/dwarves.dir/dwarves.c.o] Error 1 23 4.08 debian:10 : Ok gcc (Debian 8.3.0-6) 8.3.0 , Debian clang version 11.0.1-2~deb10u1 24 3.97 debian:11 : Ok gcc (Debian 10.2.1-6) 10.2.1 20210110 , Debian clang version 11.0.1-2 25 4.77 debian:experimental : Ok gcc (Debian 12.1.0-7) 12.1.0 , Debian clang version 14.0.6-2 26 3.06 fedora:22 : FAIL gcc version 5.3.1 20160406 (Red Hat 5.3.1-6) (GCC) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) [DW_LANG_BLISS] = "bliss", ^ /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in 27 3.06 fedora:24 : FAIL gcc version 6.3.1 20161221 (Red Hat 6.3.1-1) (GCC) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) [DW_LANG_BLISS] = "bliss", ^~~~~~~~~~~~~ /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in 28 3.17 fedora:25 : FAIL gcc version 6.4.1 20170727 (Red Hat 6.4.1-1) (GCC) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) [DW_LANG_BLISS] = "bliss", ^~~~~~~~~~~~~ 29 3.87 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) 30 3.57 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) 31 3.87 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) 32 3.97 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) 33 3.77 fedora:30 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) 34 3.97 fedora:31 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 9.0.1 (Fedora 9.0.1-4.fc31) 35 4.07 fedora:32 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 10.0.1 (Fedora 10.0.1-3.fc32) 36 3.97 fedora:33 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 11.0.0 (Fedora 11.0.0-3.fc33) 37 4.17 fedora:34 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.fc34) 38 3.97 fedora:35 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 13.0.0 (Fedora 13.0.0-3.fc35) 39 4.27 fedora:36 : Ok gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1) , clang version 14.0.0 (Fedora 14.0.0-1.fc36) 40 4.57 fedora:37 : Ok gcc (GCC) 12.1.1 20220628 (Red Hat 12.1.1-3) , clang version 14.0.5 (Fedora 14.0.5-6.fc37) 41 4.67 fedora:38 : Ok gcc (GCC) 12.1.1 20220810 (Red Hat 12.1.1-4) , clang version 14.0.5 (Fedora 14.0.5-6.fc38) 42 4.56 fedora:rawhide : Ok gcc (GCC) 12.1.1 20220810 (Red Hat 12.1.1-4) , clang version 14.0.5 (Fedora 14.0.5-6.fc38) 43 4.17 gentoo-stage3:latest : Ok gcc (Gentoo 11.2.0 p1) 11.2.0 , clang version 13.0.0 44 4.47 manjaro:base : Ok gcc (GCC) 11.1.0 , clang version 13.0.0 45 3.26 opensuse:15.0 : FAIL gcc version 7.4.1 20190905 [gcc-7-branch revision 275407] (SUSE Linux) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function); did you mean 'DW_LANG_PLI'? [DW_LANG_BLISS] = "bliss", ^~~~~~~~~~~~~ DW_LANG_PLI /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in 46 3.17 opensuse:15.1 : FAIL gcc version 7.5.0 (SUSE Linux) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function); did you mean 'DW_LANG_PLI'? [DW_LANG_BLISS] = "bliss", ^~~~~~~~~~~~~ DW_LANG_PLI /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in 47 3.16 opensuse:15.2 : FAIL gcc version 7.5.0 (SUSE Linux) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function); did you mean 'DW_LANG_PLI'? [DW_LANG_BLISS] = "bliss", ^~~~~~~~~~~~~ DW_LANG_PLI /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in 48 3.77 opensuse:15.3 : Ok gcc (SUSE Linux) 7.5.0 , clang version 11.0.1 49 3.96 opensuse:15.4 : Ok gcc (SUSE Linux) 7.5.0 , clang version 13.0.1 50 4.57 opensuse:tumbleweed : Ok gcc (SUSE Linux) 12.1.1 20220629 [revision 7811663964aa7e31c3939b859bbfa2e16919639f] , clang version 14.0.6 51 3.87 oraclelinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4.0.1) , clang version 12.0.1 (Red Hat 12.0.1-4.0.1.module+el8.5.0+20428+2b4ecd47) 52 3.97 oraclelinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9.4.0.2) , clang version 13.0.1 (Red Hat 13.0.1-1.0.1.el9) 53 3.97 rockylinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-10) , clang version 13.0.1 (Red Hat 13.0.1-2.module+el8.6.0+987+d36ea6a1) 54 4.17 rockylinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 55 3.06 ubuntu:16.04 : FAIL gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) /git/dwarves-1.24/dwarves.c: In function 'lang__str2int': /git/dwarves-1.24/dwarves.c:2093:3: error: 'DW_LANG_BLISS' undeclared (first use in this function) [DW_LANG_BLISS] = "bliss", ^ /git/dwarves-1.24/dwarves.c:2093:3: note: each undeclared identifier is reported only once for each function it appears in 56 3.77 ubuntu:18.04 : Ok gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 57 4.27 ubuntu:20.04 : Ok gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 58 4.17 ubuntu:21.04 : Ok gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0 , Ubuntu clang version 12.0.0-3ubuntu1~21.04.2 59 4.07 ubuntu:21.10 : Ok gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 , Ubuntu clang version 13.0.0-2 60 4.17 ubuntu:22.04 : Ok gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 , Ubuntu clang version 14.0.0-1ubuntu1 61 4.37 ubuntu:22.10 : Ok gcc (Ubuntu 11.3.0-5ubuntu1) 11.3.0 , Ubuntu clang version 14.0.6-2 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH] core: Conditionally define language encodings entries) 2022-08-24 17:55 ` Arnaldo Carvalho de Melo @ 2022-08-25 13:19 ` Arnaldo Carvalho de Melo 2022-08-25 14:58 ` Martin Rodriguez Reboredo 2022-08-25 16:12 ` Nathan Chancellor 0 siblings, 2 replies; 16+ messages in thread From: Arnaldo Carvalho de Melo @ 2022-08-25 13:19 UTC (permalink / raw) To: Nathan Chancellor Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, Luna Jernberg, bpf, Jiri Olsa Em Wed, Aug 24, 2022 at 02:55:03PM -0300, Arnaldo Carvalho de Melo escreveu: > Yeah, recent enough distros are all building ok, I'll try and add some > fallback for old distros. > Ok, now it builds everywhere: [perfbuilder@five ~]$ export BUILD_TARBALL=http://192.168.86.14/pahole/dwarves-1.25.tar.xz [perfbuilder@five ~]$ export BUILD_CMD=buildcmd.sh [perfbuilder@five ~]$ dm -X 1 4.07 almalinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) , clang version 12.0.1 (Red Hat 12.0.1-4.module_el8.5.0+1025+93159d6c) 2 4.07 almalinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 3 4.87 alpine:3.12 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 10.0.0 (https://gitlab.alpinelinux.org/alpine/aports.git 7445adce501f8473efdb93b17b5eaf2f1445ed4c) 4 5.47 alpine:3.13 : Ok gcc (Alpine 10.2.1_pre1) 10.2.1 20201203 , Alpine clang version 10.0.1 5 5.47 alpine:3.14 : Ok gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424 , Alpine clang version 11.1.0 6 5.27 alpine:3.15 : Ok gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027 , Alpine clang version 12.0.1 7 5.87 alpine:3.16 : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 13.0.1 8 5.68 alpine:edge : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 14.0.6 9 3.27 alt:p8 : Ok x86_64-alt-linux-gcc (GCC) 5.3.1 20151207 (ALT p8 5.3.1-alt3.M80P.1) 10 3.77 alt:p9 : Ok x86_64-alt-linux-gcc (GCC) 8.4.1 20200305 (ALT p9 8.4.1-alt0.p9.1) , clang version 10.0.0 11 4.17 alt:p10 : Ok x86_64-alt-linux-gcc (GCC) 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt2) , clang version 11.0.1 12 4.48 alt:sisyphus : Ok x86_64-alt-linux-gcc (GCC) 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt1) , ALT Linux Team clang version 13.0.1 13 3.77 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-15) , clang version 11.1.0 (Amazon Linux 2 11.1.0-1.amzn2.0.2) 14 4.07 amazonlinux:devel : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.amzn2022) 15 5.38 archlinux:base : Ok gcc (GCC) 12.1.1 20220730 , clang version 14.0.6 16 3.97 centos:8 : Ok gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1) , clang version 11.0.1 (Red Hat 11.0.1-1.module_el8.4.0+966+2995ef20) 17 4.17 centos:stream : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-15) , clang version 14.0.0 (Red Hat 14.0.0-1.module_el8.7.0+1142+5343df54) 18 4.67 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 12.1.1 20220811 releases/gcc-12.1.0-341-g28a7b5df3b 19 4.07 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 20 4.27 debian:10 : Ok gcc (Debian 8.3.0-6) 8.3.0 , Debian clang version 11.0.1-2~deb10u1 21 4.07 debian:11 : Ok gcc (Debian 10.2.1-6) 10.2.1 20210110 , Debian clang version 11.0.1-2 22 4.57 debian:experimental : Ok gcc (Debian 12.1.0-7) 12.1.0 , Debian clang version 14.0.6-2 23 3.57 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) 24 4.07 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) 25 3.87 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) 26 4.07 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) 27 3.67 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) 28 3.98 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) 29 3.87 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) 30 4.77 fedora:30 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) 31 4.07 fedora:31 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 9.0.1 (Fedora 9.0.1-4.fc31) 32 4.07 fedora:32 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 10.0.1 (Fedora 10.0.1-3.fc32) 33 3.97 fedora:33 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 11.0.0 (Fedora 11.0.0-3.fc33) 34 4.37 fedora:34 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.fc34) 35 4.07 fedora:35 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 13.0.0 (Fedora 13.0.0-3.fc35) 36 4.37 fedora:36 : Ok gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1) , clang version 14.0.0 (Fedora 14.0.0-1.fc36) 37 4.77 fedora:37 : Ok gcc (GCC) 12.1.1 20220628 (Red Hat 12.1.1-3) , clang version 14.0.5 (Fedora 14.0.5-6.fc37) 38 7.77 fedora:38 : Ok gcc (GCC) 12.1.1 20220810 (Red Hat 12.1.1-4) , clang version 14.0.5 (Fedora 14.0.5-6.fc38) 39 4.97 fedora:rawhide : Ok gcc (GCC) 12.1.1 20220810 (Red Hat 12.1.1-4) , clang version 14.0.5 (Fedora 14.0.5-6.fc38) 40 4.37 gentoo-stage3:latest : Ok gcc (Gentoo 11.2.0 p1) 11.2.0 , clang version 13.0.0 41 4.77 manjaro:base : Ok gcc (GCC) 11.1.0 , clang version 13.0.0 42 3.87 opensuse:15.0 : Ok gcc (SUSE Linux) 7.4.1 20190905 [gcc-7-branch revision 275407] 43 3.57 opensuse:15.1 : Ok gcc (SUSE Linux) 7.5.0 44 3.87 opensuse:15.2 : Ok gcc (SUSE Linux) 7.5.0 , clang version 9.0.1 45 5.31 opensuse:15.3 : Ok gcc (SUSE Linux) 7.5.0 , clang version 11.0.1 46 3.77 opensuse:15.4 : Ok gcc (SUSE Linux) 7.5.0 , clang version 13.0.1 47 4.68 opensuse:tumbleweed : Ok gcc (SUSE Linux) 12.1.1 20220629 [revision 7811663964aa7e31c3939b859bbfa2e16919639f] , clang version 14.0.6 48 4.27 oraclelinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4.0.1) , clang version 12.0.1 (Red Hat 12.0.1-4.0.1.module+el8.5.0+20428+2b4ecd47) 49 3.96 oraclelinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9.4.0.2) , clang version 13.0.1 (Red Hat 13.0.1-1.0.1.el9) 50 3.87 rockylinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-10) , clang version 13.0.1 (Red Hat 13.0.1-2.module+el8.6.0+987+d36ea6a1) 51 4.07 rockylinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 52 3.47 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609 53 3.57 ubuntu:18.04 : Ok gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 54 4.28 ubuntu:20.04 : Ok gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 55 4.17 ubuntu:21.04 : Ok gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0 , Ubuntu clang version 12.0.0-3ubuntu1~21.04.2 56 3.97 ubuntu:21.10 : Ok gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 , Ubuntu clang version 13.0.0-2 57 4.27 ubuntu:22.04 : Ok gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 , Ubuntu clang version 14.0.0-1ubuntu1 58 4.37 ubuntu:22.10 : Ok gcc (Ubuntu 11.3.0-5ubuntu1) 11.3.0 , Ubuntu clang version 14.0.6-2 [perfbuilder@five ~]$ With this patch: From c3eac0a3591a36f6590691a21434241d67a3fa89 Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo <acme@redhat.com> Date: Thu, 25 Aug 2022 10:01:49 -0300 Subject: [PATCH 1/1] core: Conditionally define language encodings It it defined in an enumeration on dwarf.h, so doing it here as defines doesn't clash with it and makes this file to build with older distros. Reported-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- dwarves.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/dwarves.c b/dwarves.c index db1dcf5904bc98fe..394a8155325484fc 100644 --- a/dwarves.c +++ b/dwarves.c @@ -2085,6 +2085,118 @@ int cus__load_file(struct cus *cus, struct conf_load *conf, #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) +#ifndef DW_LANG_C89 +#define DW_LANG_C89 0x0001 +#endif +#ifndef DW_LANG_C +#define DW_LANG_C 0x0002 +#endif +#ifndef DW_LANG_Ada83 +#define DW_LANG_Ada83 0x0003 +#endif +#ifndef DW_LANG_C_plus_plus +#define DW_LANG_C_plus_plus 0x0004 +#endif +#ifndef DW_LANG_Cobol74 +#define DW_LANG_Cobol74 0x0005 +#endif +#ifndef DW_LANG_Cobol85 +#define DW_LANG_Cobol85 0x0006 +#endif +#ifndef DW_LANG_Fortran77 +#define DW_LANG_Fortran77 0x0007 +#endif +#ifndef DW_LANG_Fortran90 +#define DW_LANG_Fortran90 0x0008 +#endif +#ifndef DW_LANG_Pascal83 +#define DW_LANG_Pascal83 0x0009 +#endif +#ifndef DW_LANG_Modula2 +#define DW_LANG_Modula2 0x000a +#endif +#ifndef DW_LANG_Java +#define DW_LANG_Java 0x000b +#endif +#ifndef DW_LANG_C99 +#define DW_LANG_C99 0x000c +#endif +#ifndef DW_LANG_Ada95 +#define DW_LANG_Ada95 0x000d +#endif +#ifndef DW_LANG_Fortran95 +#define DW_LANG_Fortran95 0x000e +#endif +#ifndef DW_LANG_PLI +#define DW_LANG_PLI 0x000f +#endif +#ifndef DW_LANG_ObjC +#define DW_LANG_ObjC 0x0010 +#endif +#ifndef DW_LANG_ObjC_plus_plus +#define DW_LANG_ObjC_plus_plus 0x0011 +#endif +#ifndef DW_LANG_UPC +#define DW_LANG_UPC 0x0012 +#endif +#ifndef DW_LANG_D +#define DW_LANG_D 0x0013 +#endif +#ifndef DW_LANG_Python +#define DW_LANG_Python 0x0014 +#endif +#ifndef DW_LANG_OpenCL +#define DW_LANG_OpenCL 0x0015 +#endif +#ifndef DW_LANG_Go +#define DW_LANG_Go 0x0016 +#endif +#ifndef DW_LANG_Modula3 +#define DW_LANG_Modula3 0x0017 +#endif +#ifndef DW_LANG_Haskell +#define DW_LANG_Haskell 0x0018 +#endif +#ifndef DW_LANG_C_plus_plus_03 +#define DW_LANG_C_plus_plus_03 0x0019 +#endif +#ifndef DW_LANG_C_plus_plus_11 +#define DW_LANG_C_plus_plus_11 0x001a +#endif +#ifndef DW_LANG_OCaml +#define DW_LANG_OCaml 0x001b +#endif +#ifndef DW_LANG_Rust +#define DW_LANG_Rust 0x001c +#endif +#ifndef DW_LANG_C11 +#define DW_LANG_C11 0x001d +#endif +#ifndef DW_LANG_Swift +#define DW_LANG_Swift 0x001e +#endif +#ifndef DW_LANG_Julia +#define DW_LANG_Julia 0x001f +#endif +#ifndef DW_LANG_Dylan +#define DW_LANG_Dylan 0x0020 +#endif +#ifndef DW_LANG_C_plus_plus_14 +#define DW_LANG_C_plus_plus_14 0x0021 +#endif +#ifndef DW_LANG_Fortran03 +#define DW_LANG_Fortran03 0x0022 +#endif +#ifndef DW_LANG_Fortran08 +#define DW_LANG_Fortran08 0x0023 +#endif +#ifndef DW_LANG_RenderScript +#define DW_LANG_RenderScript 0x0024 +#endif +#ifndef DW_LANG_BLISS +#define DW_LANG_BLISS 0x0025 +#endif + int lang__str2int(const char *lang) { static const char *languages[] = { -- 2.37.2 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH] core: Conditionally define language encodings entries) 2022-08-25 13:19 ` [PATCH] core: Conditionally define language encodings entries) Arnaldo Carvalho de Melo @ 2022-08-25 14:58 ` Martin Rodriguez Reboredo 2022-08-25 16:12 ` Nathan Chancellor 1 sibling, 0 replies; 16+ messages in thread From: Martin Rodriguez Reboredo @ 2022-08-25 14:58 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, Nathan Chancellor Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, Luna Jernberg, bpf, Jiri Olsa On 8/25/22 10:19, Arnaldo Carvalho de Melo wrote: > Em Wed, Aug 24, 2022 at 02:55:03PM -0300, Arnaldo Carvalho de Melo escreveu: >> Yeah, recent enough distros are all building ok, I'll try and add some >> fallback for old distros. >> > > Ok, now it builds everywhere: > > [...] > > With this patch: > > [...] Builds on Arch Linux on master. Acked-by: Martin Rodriguez Reboredo - Martin Rodriguez Reboredo ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] core: Conditionally define language encodings entries) 2022-08-25 13:19 ` [PATCH] core: Conditionally define language encodings entries) Arnaldo Carvalho de Melo 2022-08-25 14:58 ` Martin Rodriguez Reboredo @ 2022-08-25 16:12 ` Nathan Chancellor 1 sibling, 0 replies; 16+ messages in thread From: Nathan Chancellor @ 2022-08-25 16:12 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, Luna Jernberg, bpf, Jiri Olsa On Thu, Aug 25, 2022 at 10:19:08AM -0300, Arnaldo Carvalho de Melo wrote: > Em Wed, Aug 24, 2022 at 02:55:03PM -0300, Arnaldo Carvalho de Melo escreveu: > > Yeah, recent enough distros are all building ok, I'll try and add some > > fallback for old distros. > > > > Ok, now it builds everywhere: > > [perfbuilder@five ~]$ export BUILD_TARBALL=http://192.168.86.14/pahole/dwarves-1.25.tar.xz > [perfbuilder@five ~]$ export BUILD_CMD=buildcmd.sh > [perfbuilder@five ~]$ dm -X > 1 4.07 almalinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) , clang version 12.0.1 (Red Hat 12.0.1-4.module_el8.5.0+1025+93159d6c) > 2 4.07 almalinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) > 3 4.87 alpine:3.12 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 10.0.0 (https://gitlab.alpinelinux.org/alpine/aports.git 7445adce501f8473efdb93b17b5eaf2f1445ed4c) > 4 5.47 alpine:3.13 : Ok gcc (Alpine 10.2.1_pre1) 10.2.1 20201203 , Alpine clang version 10.0.1 > 5 5.47 alpine:3.14 : Ok gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424 , Alpine clang version 11.1.0 > 6 5.27 alpine:3.15 : Ok gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027 , Alpine clang version 12.0.1 > 7 5.87 alpine:3.16 : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 13.0.1 > 8 5.68 alpine:edge : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 14.0.6 > 9 3.27 alt:p8 : Ok x86_64-alt-linux-gcc (GCC) 5.3.1 20151207 (ALT p8 5.3.1-alt3.M80P.1) > 10 3.77 alt:p9 : Ok x86_64-alt-linux-gcc (GCC) 8.4.1 20200305 (ALT p9 8.4.1-alt0.p9.1) , clang version 10.0.0 > 11 4.17 alt:p10 : Ok x86_64-alt-linux-gcc (GCC) 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt2) , clang version 11.0.1 > 12 4.48 alt:sisyphus : Ok x86_64-alt-linux-gcc (GCC) 12.1.1 20220518 (ALT Sisyphus 12.1.1-alt1) , ALT Linux Team clang version 13.0.1 > 13 3.77 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-15) , clang version 11.1.0 (Amazon Linux 2 11.1.0-1.amzn2.0.2) > 14 4.07 amazonlinux:devel : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.amzn2022) > 15 5.38 archlinux:base : Ok gcc (GCC) 12.1.1 20220730 , clang version 14.0.6 > 16 3.97 centos:8 : Ok gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1) , clang version 11.0.1 (Red Hat 11.0.1-1.module_el8.4.0+966+2995ef20) > 17 4.17 centos:stream : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-15) , clang version 14.0.0 (Red Hat 14.0.0-1.module_el8.7.0+1142+5343df54) > 18 4.67 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 12.1.1 20220811 releases/gcc-12.1.0-341-g28a7b5df3b > 19 4.07 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 > 20 4.27 debian:10 : Ok gcc (Debian 8.3.0-6) 8.3.0 , Debian clang version 11.0.1-2~deb10u1 > 21 4.07 debian:11 : Ok gcc (Debian 10.2.1-6) 10.2.1 20210110 , Debian clang version 11.0.1-2 > 22 4.57 debian:experimental : Ok gcc (Debian 12.1.0-7) 12.1.0 , Debian clang version 14.0.6-2 > 23 3.57 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) > 24 4.07 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) > 25 3.87 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) > 26 4.07 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) > 27 3.67 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) > 28 3.98 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) > 29 3.87 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) > 30 4.77 fedora:30 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) > 31 4.07 fedora:31 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 9.0.1 (Fedora 9.0.1-4.fc31) > 32 4.07 fedora:32 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 10.0.1 (Fedora 10.0.1-3.fc32) > 33 3.97 fedora:33 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 11.0.0 (Fedora 11.0.0-3.fc33) > 34 4.37 fedora:34 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 12.0.1 (Fedora 12.0.1-1.fc34) > 35 4.07 fedora:35 : Ok gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2) , clang version 13.0.0 (Fedora 13.0.0-3.fc35) > 36 4.37 fedora:36 : Ok gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1) , clang version 14.0.0 (Fedora 14.0.0-1.fc36) > 37 4.77 fedora:37 : Ok gcc (GCC) 12.1.1 20220628 (Red Hat 12.1.1-3) , clang version 14.0.5 (Fedora 14.0.5-6.fc37) > 38 7.77 fedora:38 : Ok gcc (GCC) 12.1.1 20220810 (Red Hat 12.1.1-4) , clang version 14.0.5 (Fedora 14.0.5-6.fc38) > 39 4.97 fedora:rawhide : Ok gcc (GCC) 12.1.1 20220810 (Red Hat 12.1.1-4) , clang version 14.0.5 (Fedora 14.0.5-6.fc38) > 40 4.37 gentoo-stage3:latest : Ok gcc (Gentoo 11.2.0 p1) 11.2.0 , clang version 13.0.0 > 41 4.77 manjaro:base : Ok gcc (GCC) 11.1.0 , clang version 13.0.0 > 42 3.87 opensuse:15.0 : Ok gcc (SUSE Linux) 7.4.1 20190905 [gcc-7-branch revision 275407] > 43 3.57 opensuse:15.1 : Ok gcc (SUSE Linux) 7.5.0 > 44 3.87 opensuse:15.2 : Ok gcc (SUSE Linux) 7.5.0 , clang version 9.0.1 > 45 5.31 opensuse:15.3 : Ok gcc (SUSE Linux) 7.5.0 , clang version 11.0.1 > 46 3.77 opensuse:15.4 : Ok gcc (SUSE Linux) 7.5.0 , clang version 13.0.1 > 47 4.68 opensuse:tumbleweed : Ok gcc (SUSE Linux) 12.1.1 20220629 [revision 7811663964aa7e31c3939b859bbfa2e16919639f] , clang version 14.0.6 > 48 4.27 oraclelinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4.0.1) , clang version 12.0.1 (Red Hat 12.0.1-4.0.1.module+el8.5.0+20428+2b4ecd47) > 49 3.96 oraclelinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9.4.0.2) , clang version 13.0.1 (Red Hat 13.0.1-1.0.1.el9) > 50 3.87 rockylinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-10) , clang version 13.0.1 (Red Hat 13.0.1-2.module+el8.6.0+987+d36ea6a1) > 51 4.07 rockylinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) > 52 3.47 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609 > 53 3.57 ubuntu:18.04 : Ok gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 > 54 4.28 ubuntu:20.04 : Ok gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 > 55 4.17 ubuntu:21.04 : Ok gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0 , Ubuntu clang version 12.0.0-3ubuntu1~21.04.2 > 56 3.97 ubuntu:21.10 : Ok gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 , Ubuntu clang version 13.0.0-2 > 57 4.27 ubuntu:22.04 : Ok gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 , Ubuntu clang version 14.0.0-1ubuntu1 > 58 4.37 ubuntu:22.10 : Ok gcc (Ubuntu 11.3.0-5ubuntu1) 11.3.0 , Ubuntu clang version 14.0.6-2 > [perfbuilder@five ~]$ > > With this patch: > > From c3eac0a3591a36f6590691a21434241d67a3fa89 Mon Sep 17 00:00:00 2001 > From: Arnaldo Carvalho de Melo <acme@redhat.com> > Date: Thu, 25 Aug 2022 10:01:49 -0300 > Subject: [PATCH 1/1] core: Conditionally define language encodings > > It it defined in an enumeration on dwarf.h, so doing it here as defines > doesn't clash with it and makes this file to build with older distros. > > Reported-by: Nathan Chancellor <nathan@kernel.org> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Thank you for the quick fix, it passed all of my build tests as well: https://github.com/nathanchance/env/actions/runs/2927921590 Tested-by: Nathan Chancellor <nathan@kernel.org> > --- > dwarves.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 112 insertions(+) > > diff --git a/dwarves.c b/dwarves.c > index db1dcf5904bc98fe..394a8155325484fc 100644 > --- a/dwarves.c > +++ b/dwarves.c > @@ -2085,6 +2085,118 @@ int cus__load_file(struct cus *cus, struct conf_load *conf, > > #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) > > +#ifndef DW_LANG_C89 > +#define DW_LANG_C89 0x0001 > +#endif > +#ifndef DW_LANG_C > +#define DW_LANG_C 0x0002 > +#endif > +#ifndef DW_LANG_Ada83 > +#define DW_LANG_Ada83 0x0003 > +#endif > +#ifndef DW_LANG_C_plus_plus > +#define DW_LANG_C_plus_plus 0x0004 > +#endif > +#ifndef DW_LANG_Cobol74 > +#define DW_LANG_Cobol74 0x0005 > +#endif > +#ifndef DW_LANG_Cobol85 > +#define DW_LANG_Cobol85 0x0006 > +#endif > +#ifndef DW_LANG_Fortran77 > +#define DW_LANG_Fortran77 0x0007 > +#endif > +#ifndef DW_LANG_Fortran90 > +#define DW_LANG_Fortran90 0x0008 > +#endif > +#ifndef DW_LANG_Pascal83 > +#define DW_LANG_Pascal83 0x0009 > +#endif > +#ifndef DW_LANG_Modula2 > +#define DW_LANG_Modula2 0x000a > +#endif > +#ifndef DW_LANG_Java > +#define DW_LANG_Java 0x000b > +#endif > +#ifndef DW_LANG_C99 > +#define DW_LANG_C99 0x000c > +#endif > +#ifndef DW_LANG_Ada95 > +#define DW_LANG_Ada95 0x000d > +#endif > +#ifndef DW_LANG_Fortran95 > +#define DW_LANG_Fortran95 0x000e > +#endif > +#ifndef DW_LANG_PLI > +#define DW_LANG_PLI 0x000f > +#endif > +#ifndef DW_LANG_ObjC > +#define DW_LANG_ObjC 0x0010 > +#endif > +#ifndef DW_LANG_ObjC_plus_plus > +#define DW_LANG_ObjC_plus_plus 0x0011 > +#endif > +#ifndef DW_LANG_UPC > +#define DW_LANG_UPC 0x0012 > +#endif > +#ifndef DW_LANG_D > +#define DW_LANG_D 0x0013 > +#endif > +#ifndef DW_LANG_Python > +#define DW_LANG_Python 0x0014 > +#endif > +#ifndef DW_LANG_OpenCL > +#define DW_LANG_OpenCL 0x0015 > +#endif > +#ifndef DW_LANG_Go > +#define DW_LANG_Go 0x0016 > +#endif > +#ifndef DW_LANG_Modula3 > +#define DW_LANG_Modula3 0x0017 > +#endif > +#ifndef DW_LANG_Haskell > +#define DW_LANG_Haskell 0x0018 > +#endif > +#ifndef DW_LANG_C_plus_plus_03 > +#define DW_LANG_C_plus_plus_03 0x0019 > +#endif > +#ifndef DW_LANG_C_plus_plus_11 > +#define DW_LANG_C_plus_plus_11 0x001a > +#endif > +#ifndef DW_LANG_OCaml > +#define DW_LANG_OCaml 0x001b > +#endif > +#ifndef DW_LANG_Rust > +#define DW_LANG_Rust 0x001c > +#endif > +#ifndef DW_LANG_C11 > +#define DW_LANG_C11 0x001d > +#endif > +#ifndef DW_LANG_Swift > +#define DW_LANG_Swift 0x001e > +#endif > +#ifndef DW_LANG_Julia > +#define DW_LANG_Julia 0x001f > +#endif > +#ifndef DW_LANG_Dylan > +#define DW_LANG_Dylan 0x0020 > +#endif > +#ifndef DW_LANG_C_plus_plus_14 > +#define DW_LANG_C_plus_plus_14 0x0021 > +#endif > +#ifndef DW_LANG_Fortran03 > +#define DW_LANG_Fortran03 0x0022 > +#endif > +#ifndef DW_LANG_Fortran08 > +#define DW_LANG_Fortran08 0x0023 > +#endif > +#ifndef DW_LANG_RenderScript > +#define DW_LANG_RenderScript 0x0024 > +#endif > +#ifndef DW_LANG_BLISS > +#define DW_LANG_BLISS 0x0025 > +#endif > + > int lang__str2int(const char *lang) > { > static const char *languages[] = { > -- > 2.37.2 > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) 2022-08-24 17:15 ` Arnaldo Carvalho de Melo 2022-08-24 17:55 ` Arnaldo Carvalho de Melo @ 2022-08-24 17:59 ` Luna Jernberg 1 sibling, 0 replies; 16+ messages in thread From: Luna Jernberg @ 2022-08-24 17:59 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, droidbittin Cc: Nathan Chancellor, dwarves, Linux Kernel Mailing List, Alibek Omarov, Kornilios Kourtis, Kui-Feng Lee, Yonghong Song, bpf, Jiri Olsa Great :) On 8/24/22, Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Em Wed, Aug 24, 2022 at 09:24:49AM -0700, Nathan Chancellor escreveu: >> Hi Arnaldo, >> >> On Mon, Aug 22, 2022 at 08:28:42PM -0300, Arnaldo Carvalho de Melo wrote: >> > Hi, >> > >> > The v1.24 release of pahole and its friends is out, with faster >> > BTF generation by parallelizing the encoding part in addition to the >> > previoulsy parallelized DWARF loading, support for 64-bit BTF >> > enumeration >> > entries, signed BTF encoding of 'char', exclude/select DWARF loading >> > based on the language that generated the objects, etc. >> >> <snip> >> >> > - Introduce --lang and --lang_exclude to specify the language the >> > DWARF compile units were originated from to use or filter. >> >> This appears to break building pahole with older versions of libdw (?). >> I build container images with older versions of compilers for easy >> matrix testing and my gcc-5 and gcc-6 images (based off Ubuntu Xenial >> and Debian Stretch respectively) fail to build. > > I do it for perf, should have done it for pahole :-\ > > So I'll have to come up with a patch that checks if those are defined > and if not, define it :-\ Ooops, its an enumeration :-\ I'll have to > check how to fix this, thanks for the report! > > Will rebuild it with the containers I have to see if there are other > cases. > > - Arnaldo > >> $ podman run --rm -ti -v >> $TMP_FOLDER/dwarves-1.24.tar.xz:/tmp/dwarves-1.24.tar.xz:ro >> docker.io/ubuntu:xenial >> # apt update >> # apt install build-essential cmake libdw-dev libelf-dev xz-utils >> zlib1g-dev >> # cd $(mktemp -d) >> # tar -xJf /tmp/dwarves-1.24.tar.xz >> # mkdir build >> # cd build >> # cmake -DBUILD_SHARED_LIBS=OFF -D__LIB=lib ../dwarves-1.24 >> # make -j$(nproc) >> ... >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c: In function >> 'lang__str2int': >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: error: >> 'DW_LANG_BLISS' undeclared (first use in this function) >> [DW_LANG_BLISS] = "bliss", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: note: each >> undeclared identifier is reported only once for each function it appears >> in >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2093:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: error: >> 'DW_LANG_C_plus_plus_03' undeclared (first use in this function) >> [DW_LANG_C_plus_plus_03] = "c++03", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2100:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: error: >> 'DW_LANG_Dylan' undeclared (first use in this function) >> [DW_LANG_Dylan] = "dylan", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2105:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: error: >> 'DW_LANG_Julia' undeclared (first use in this function) >> [DW_LANG_Julia] = "julia", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2114:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: error: >> 'DW_LANG_Modula3' undeclared (first use in this function) >> [DW_LANG_Modula3] = "modula3", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2116:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: error: >> 'DW_LANG_OCaml' undeclared (first use in this function) >> [DW_LANG_OCaml] = "ocaml", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2119:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: error: >> 'DW_LANG_OpenCL' undeclared (first use in this function) >> [DW_LANG_OpenCL] = "opencl", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2120:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: error: >> 'DW_LANG_PLI' undeclared (first use in this function) >> [DW_LANG_PLI] = "pli", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2122:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: error: >> 'DW_LANG_RenderScript' undeclared (first use in this function) >> [DW_LANG_RenderScript] = "renderscript", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2124:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: error: >> 'DW_LANG_Rust' undeclared (first use in this function) >> [DW_LANG_Rust] = "rust", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2125:3: note: (near >> initialization for 'languages') >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: error: >> 'DW_LANG_Swift' undeclared (first use in this function) >> [DW_LANG_Swift] = "swift", >> ^ >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: error: array index >> in initializer not of integer type >> /tmp/tmp.pQ2GsHbGAx/dwarves-1.24/dwarves.c:2126:3: note: (near >> initialization for 'languages') >> CMakeFiles/dwarves.dir/build.make:62: recipe for target >> 'CMakeFiles/dwarves.dir/dwarves.c.o' failed >> ... >> >> If there is any additional information I can provide or patches I can >> test, please let me know! >> >> Cheers, >> Nathan > > -- > > - Arnaldo > ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2022-08-28 17:01 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-08-22 23:28 ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) Arnaldo Carvalho de Melo [not found] ` <CADo9pHhW9w+ciNbQr+7u4mezuQ1USyh0k2Wshy=wkdEcxRiDLA@mail.gmail.com> 2022-08-24 14:32 ` Arnaldo Carvalho de Melo 2022-08-24 14:36 ` Luna Jernberg 2022-08-24 14:37 ` Arnaldo Carvalho de Melo 2022-08-24 14:38 ` Luna Jernberg 2022-08-24 22:50 ` Martin Reboredo 2022-08-28 7:38 ` Jiri Olsa 2022-08-28 14:29 ` Martin Rodriguez Reboredo 2022-08-28 17:01 ` Jiri Olsa 2022-08-24 16:24 ` Nathan Chancellor 2022-08-24 17:15 ` Arnaldo Carvalho de Melo 2022-08-24 17:55 ` Arnaldo Carvalho de Melo 2022-08-25 13:19 ` [PATCH] core: Conditionally define language encodings entries) Arnaldo Carvalho de Melo 2022-08-25 14:58 ` Martin Rodriguez Reboredo 2022-08-25 16:12 ` Nathan Chancellor 2022-08-24 17:59 ` ANNOUNCE: pahole v1.24 (Faster BTF encoding, 64-bit BTF enum entries) Luna Jernberg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).