Re: [PATCH v2] arch: fix broken BuildID for arm64 and riscv

From: Masahiro Yamada
Date: Thu Jan 05 2023 - 08:54:54 EST


On Thu, Jan 5, 2023 at 6:27 PM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
>
> On Thu, 5 Jan 2023 at 10:21, Andreas Schwab <schwab@xxxxxxxxxxxxxx> wrote:
> >
> > On Jan 05 2023, Masahiro Yamada wrote:
> >
> > > I do not understand why 99cb0d917ffa affected this.
> > >
> > >
> > > I submitted a fix to shoot the error message "discarded section .exit.text"
> > >
> > > https://lore.kernel.org/all/20230105031306.1455409-1-masahiroy@xxxxxxxxxx/T/#u
> > >
> > > I do not understand the binutils commit either,
> > > but it might have made something good
> > > because EXIT_TEXT appears twice, in .exit.text, and /DISCARD/.
> >
> > I think the issue is that the introdution of a second /DISCARD/
> > directive early in script changes the order of evaluation of the other
> > /DISCARD/ directive when binutils < 2.36 is used, so that the missing
> > RUNTIME_DISCARD_EXIT started to become relevant. As long as /DISCARD/
> > only appears last, the effect of EXIT_TEXT inside it is always
> > overridden by its occurence in the .exit.exit output section directive.
> > When another /DISCARD/ occurs early (and binutils < 2.36 is used) the
> > effect of EXIT_TEXT inside the second /DISCARD/ (when merged with the
> > first) overrides its occurence in the .exit.text directive. The
> > binutils commit changed that because the new /DISCARD/ directive no
> > longer affects the order of evaluation of the rest of the directives.
> >
>
> Exactly. The binutils change mentions output section merging, which
> apparently applies to the /DISCARD/ pseudo section as well.
>
> However, powerpc was also affected by this, and I suggested another
> fix in the thread below
>
> https://lore.kernel.org/all/20230103014535.GA313835@xxxxxxxxxxxx/


Thanks for the pointer.

(and sorry, I did not notice that thread, and missed to reply promptly)


Your fix will work globally.
I left some comments in that thread.




--
Best Regards
Masahiro Yamada