Re: [PATCH v4 06/10] objtool: Handle unsorted table offset of rodata
From: Josh Poimboeuf
Date: Wed Nov 27 2024 - 19:10:26 EST
On Wed, Nov 27, 2024 at 03:01:33PM +0800, Tiezhu Yang wrote:
>
>
> On 11/27/2024 09:20 AM, Josh Poimboeuf wrote:
> > On Tue, Nov 26, 2024 at 09:28:19PM +0800, Tiezhu Yang wrote:
> > > > + /* Handle the special cases compiled with Clang on LoongArch */
> > > > + if (file->elf->ehdr.e_machine == EM_LOONGARCH &&
> > > > + reloc->sym->type == STT_SECTION && reloc != table &&
> > > > + reloc_offset(reloc) == reloc_offset(table) + rodata_table_size)
> > > > + break;
> > >
> > > I think it can be generic, like this:
> > >
> > > /* Check for the end of the table: */
> > > if (reloc != table && reloc == next_table)
> > > break;
> > >
> > > if (reloc != table &&
> > > reloc_offset(reloc) == reloc_offset(table) +
> > > rodata_table_size)
> > > break;
> > >
> > > What do you think?
> >
> > I'm not sure, this patch is hard to review because it uses
> > insn->table_size which doesn't get set until the next patch.
> >
> > Maybe this patch should come after patches 7 & 8, or maybe they should
> > be squashed?
>
> OK, I will squash the changes into patch #7.
I remembered Ard already solved a similar problem when he prototyped x86
jump table annotation. Can you pull this patch into your series:
https://lore.kernel.org/20241011170847.334429-12-ardb+git@xxxxxxxxxx
--
Josh