Re: [PATCH 17/18] objtool: Remove --lto and --vmlinux

From: Josh Poimboeuf
Date: Thu Apr 14 2022 - 22:19:04 EST


On Thu, Apr 14, 2022 at 10:13:50AM +0200, Peter Zijlstra wrote:
> On Wed, Apr 13, 2022 at 04:19:52PM -0700, Josh Poimboeuf wrote:
>
> > @@ -131,6 +131,12 @@ static inline u32 reloc_hash(struct reloc *reloc)
> > return sec_offset_hash(reloc->sec, reloc->offset);
> > }
> >
> > +/* is it a whole archive (vmlinux.o or module)? */
> > +static inline bool is_linked_object(struct elf *elf)
> > +{
> > + return elf->num_files > 1;
> > +}
> > +
> > struct elf *elf_open_read(const char *name, int flags);
> > struct section *elf_create_section(struct elf *elf, const char *name, unsigned int sh_flags, size_t entsize, int nr);
>
> Ooh, nice... yes, that was the entire point of --lto.

Urgh, some kernel modules only have a single source file, which
obviously breaks this.

We might need an explicit --link option after all. But with different
semantics from --lto. It would just mean "is a linked object".

--
Josh