https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101393
--- Comment #11 from Alan Modra <amodra at gmail dot com> --- Preserving certain -m gas options goes back to this patch: https://sourceware.org/pipermail/binutils/2008-January/054935.html Given the number of ppc micros around with differing functional units, it is quite reasonable that we have assembly options to say "this base cpu" plus "this extra functionality". Whether you think it was wise to allow those "extra functionality" options to be specified before the "base cpu" option is another matter, but it has been that way for a long time. I'm not inclined to change that since it would very likely break some projects, and I happen to think that it is entirely reasonable to expect that "-maltivec -mppc64" for example is the same as "-mppc64 -maltivec". In any case sticky options are a side issue here. The real issue is that emitted .machine is wrong. Note that I'm not vetoing assembler changes. It might be a good idea to reset all sticky options on processing any .machine directive for example, and I'm happy with the idea of -mno-vsx etc. options for the assembler.