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