Le 29/03/2022 à 00:31, Joel Stanley a écrit : > On Mon, 29 Nov 2021 at 22:43, Christophe Leroy > <christophe.le...@csgroup.eu> wrote: >> >> >> >> Le 29/11/2021 à 18:43, Steven Rostedt a écrit : >>> On Fri, 26 Nov 2021 08:43:23 +0000 >>> LEROY Christophe <christophe.le...@csgroup.eu> wrote: >>> >>>> Le 24/11/2021 à 15:43, Christophe Leroy a écrit : >>>>> Looks like recent binutils (2.36 and over ?) may empty some section, >>>>> leading to failure like: >>>>> >>>>> Cannot find symbol for section 11: .text.unlikely. >>>>> kernel/kexec_file.o: failed >>>>> make[1]: *** [scripts/Makefile.build:287: kernel/kexec_file.o] Error >>>>> 1 >>>>> >>>>> In order to avoid that, ensure that the section has a content before >>>>> returning it's name in has_rel_mcount(). >>>> >>>> This patch doesn't work, on PPC32 I get the following message with this >>>> patch applied: >>>> >>>> [ 0.000000] ftrace: No functions to be traced? >>>> >>>> Without the patch I get: >>>> >>>> [ 0.000000] ftrace: allocating 22381 entries in 66 pages >>>> [ 0.000000] ftrace: allocated 66 pages with 2 groups >>> >>> Because of this report, I have not applied this patch (even though I was >>> about to push it to Linus). >>> >>> I'm pulling it from my queue until this gets resolved. >>> >> >> I have no idea on how to fix that for the moment. >> >> With GCC 10 (binutils 2.36) an objdump -x on kernel/kexec_file.o gives: >> >> 0000000000000000 l d .text.unlikely 0000000000000000 .text.unlikely >> 0000000000000000 w F .text.unlikely 0000000000000038 >> .arch_kexec_apply_relocations_add >> 0000000000000038 w F .text.unlikely 0000000000000038 >> .arch_kexec_apply_relocations >> >> >> With GCC 11 (binutils 2.37) the same gives: >> >> 0000000000000000 w F .text.unlikely 0000000000000038 >> .arch_kexec_apply_relocations_add >> 0000000000000038 w F .text.unlikely 0000000000000038 >> .arch_kexec_apply_relocations >> >> >> The problem is that recordmcount drops weak symbols, and it doesn't find >> any non-weak symbol in .text.unlikely >> >> Explication given at >> https://elixir.bootlin.com/linux/v5.16-rc2/source/scripts/recordmcount.h#L506 >> >> I have no idea on what to do. > > Did you end up finding a solution for this issue? >
Not really, my solution was to switch to the kernel compiler at https://mirrors.edge.kernel.org/pub/tools/crosstool/ which embeds binutils 2.36 But it looks like using objtool instead of recordmcount doesn't exhibit the problem. https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220318105140.43914-4...@linux.ibm.com/ Christophe