On Fri, Feb 25, 2022 at 10:32:02AM +1000, Nicholas Piggin wrote: > Excerpts from Segher Boessenkool's message of February 25, 2022 3:12 am: > > On Thu, Feb 24, 2022 at 03:05:28PM +1000, Nicholas Piggin wrote: > >> + * gcc 10 started to emit a .machine directive at the beginning of generated > >> + * .s files, which overrides assembler -Wa,-m<cpu> options passed down. > >> + * Unclear if this behaviour will be reverted. > > > > It will not be reverted. If you need a certain .machine for some asm > > code, you should write just that! > > It should be reverted because it breaks old binutils which did not have > the workaround patch for this broken gcc behaviour. And it is just > unnecessary because -m option can already be used to do the same thing. > > Not that I expect gcc to revert it. Nothing will happen if you do not file a bug report. And do read the bug reporting instructions first please. > >> +#ifdef CONFIG_CC_IS_GCC > >> +#if (GCC_VERSION >= 100000) > >> +#if (CONFIG_AS_VERSION == 23800) > >> +asm(".machine any"); > >> +#endif > >> +#endif > >> +#endif > >> +#endif /* __ASSEMBLY__ */ > > > > Abusing toplevel asm like this is broken and you *will* end up with > > unhappiness all around. > > It actually unbreaks things and reduces my unhappiness. It is broken. You will need -fno-toplevel-reorder, and you really do not want that, if you *can* use it in the kernel even. > It's only done > for broken compiler versions and only where as does not have the > workaround for the breakage. What compiler versions? Please file a PR. Segher