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