Messages in this thread | | | From | Andreas Schwab <> | Subject | Re: [PATCH v2] arch: fix broken BuildID for arm64 and riscv | Date | Thu, 05 Jan 2023 10:21:03 +0100 |
| |
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@kernel.org/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.
-- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."
| |