On 2021-02-10 21:57 -0500, Jean-Marc Pigeon wrote: > Bonjour Xi (hello the list), > > On Thu, 2021-02-11 at 10:51 +0800, Xi Ruoyao wrote: > > On 2021-02-10 22:47 +0100, Pierre Labastie wrote: > > > On Wed, 2021-02-10 at 21:03 +0000, Ken Moffat wrote: > > > > On Wed, Feb 10, 2021 at 08:49:56PM +0000, Ken Moffat wrote: > > > > > > > > > > > > Looks like I need to change the Frame pointer unwinder to the > > > > > > ORC unwinder to have the same config as you. > > > > > > > > > > > > > > > > The benefits of the ORC unwinder are mentioned at > > > > > https://www.kernel.org/doc/html/latest/x86/orc-unwinder.html > > > > > > > > > > It has been around for quite some time, but I probably picked > > > > > it > > > > > up when it first appeared (test an -rc kernel, pick up new > > > > > options > > > > > which might be useful). I guess that old configs from before > > > > > its > > > > > introduction still default to the old unwinder. > > > > > > > > > In fact it caused trouble about 3 years ago, there are links to > > > > the > > > > -dev archive from around January 2018 when elfutils was still in > > > > BLFS, and at that time LFS had to use the frame pointer. So when > > > > libelf arrived in LFS I started to use it (or use it again, not > > > > sure > > > > which). > > > > > > > > > > I managed to compile objtool with -g, to recompile apic.c to apic.o > > > (because it gets erased when objtool fails), and to run the objtool > > > command on it under gdb. The segfault is esay to understand: > > > > > > Program received signal SIGSEGV, Segmentation fault. > > > 0x0000000000412f71 in elf_rebuild_rela_reloc_section (sec=0xe22b10, > > > nr=16) > > > at elf.c:883 > > > 883 relocs[idx].r_info = GELF_R_INFO(reloc- > > > > sym- > > > > idx, reloc->type); > > > > > > and the reloc struct is: > > > (gdb) p *reloc > > > $2 = {list = {next = 0xe23240, prev = 0xe23160}, hash = {next = > > > 0x0, > > > pprev = 0xe23250}, {rela = {r_offset = 0, r_info = 0, r_addend > > > = > > > 0}, > > > rel = {r_offset = 0, r_info = 0}}, sec = 0xe22b10, sym = 0x0, > > > offset = 48, > > > type = 2, addend = 467, idx = 0, jump_table_start = false} > > > > > > So reloc->sym is zero, and reloc->sym->idx is a null dereference... > > > > > > Now to understand why reloc->sym is zero is more complicated... > > > > I can reproduce it too with Ken's config and just "make > > arch/x86/kernel/apic/apic.o". > > > > I seen a strange warning in build: > > > > > Warning: Kernel ABI header at 'tools/arch/x86/lib/insn.c' differs > > > from latest > > > version at 'arch/x86/lib/insn.c' > > > > Not sure if it causes the segfault. I'll try 5.10.15 and if it's not > > fixed I'll > > report it as a kernel bug. > do you confirm it is binutil-2.36.1 related or > is it a kernel only problem?
I can't confirm or disconfirm. It's beyond my knowledge. But I decided to report it to the kernel bugzilla. If kernel dev thinks it's a binutils bug they can report to binutils anyway. And, this issue seems "fixed" in 5.11-rc7 so I think the kernel dev may have some idea of it. -- Xi Ruoyao <xry...@mengyan1223.wang> School of Aerospace Science and Technology, Xidian University -- http://lists.linuxfromscratch.org/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page Do not top post on this list. A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? http://en.wikipedia.org/wiki/Posting_style