Re: [PATCH 02/18] objtool: Support data symbol printing

From: Peter Zijlstra
Date: Thu Apr 14 2022 - 11:58:30 EST


On Thu, Apr 14, 2022 at 08:21:48AM -0700, Josh Poimboeuf wrote:
> On Thu, Apr 14, 2022 at 09:05:47AM +0200, Peter Zijlstra wrote:
> > On Wed, Apr 13, 2022 at 04:19:37PM -0700, Josh Poimboeuf wrote:
> >
> > > @@ -34,8 +37,8 @@ static inline char *offstr(struct section *sec, unsigned long offset)
> > >
> > > str = malloc(strlen(name) + 20);
> > >
> > > - if (func)
> > > - sprintf(str, "%s()+0x%lx", name, name_off);
> > > + if (sym)
> > > + sprintf(str, "%s%s+0x%lx", name, is_text ? "()" : "", name_off);
> > > else
> > > sprintf(str, "%s+0x%lx", name, name_off);
> >
> > So I like the patch, except that "()" thing is something where we differ
> > from the kernel's %ps format and I've cursed it a number of times
> > because I then have to manually edit (iow remove) things when pasting it
> > in various scripts etc..
>
> Oh, hm, that's true. I can remove them if you prefer.

Yeah, I think taking it out is best, easier if we're consistent with %ps
for everybody.

> > That said, it totally makes sense to differentiate between a text and
> > data symbol this way :/
>
> Yes, but if we're keeping the "Add sec+offset to warnings" patch then
> that distinction is already (kind of) being made by showing the data
> section name. And the data symbol warnings should be rare.

Yes, I'd not seen that yet, what's that for? The Changelog alludes to
something, but I don't think it actually does get used later.