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.
+#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's only done for broken compiler versions and only where as does not have the workaround for the breakage.
Thanks, Nick