On Tue, Jun 17, 2025 at 2:27 AM Petr Pavlu <petr.pa...@suse.com> wrote: > > On 6/10/25 6:22 PM, Casey Chen wrote: > > The empty MOD_CODETAG_SECTIONS() macro added an incomplete .data > > section in module linker script, which caused symbol lookup tools > > like gdb to misinterpret symbol addresses e.g., __ib_process_cq > > incorrectly mapping to unrelated functions like below. > > > > (gdb) disas __ib_process_cq > > Dump of assembler code for function trace_event_fields_cq_schedule: > > > > Removing the empty section restores proper symbol resolution and > > layout, ensuring .data placement behaves as expected. > > The patch looks ok me, but I'm somewhat confused about the problem. > I think a linker should not add an empty output section if it doesn't > contain anything, or if .data actually contains something then the extra > dummy definition should be also harmless?
I also assumed so but apparently this is not entirely harmless. > > This also reminds me of my previous related fix "codetag: Avoid unused > alloc_tags sections/symbols" [1] which fell through the cracks. I can > rebase it on top of this patch. > > [1] https://lore.kernel.org/all/20250313143002.9118-1-petr.pa...@suse.com/ Yes please. > > -- > Thanks, > Petr