On Wed, 25 Mar 2020 at 12:50, Mark Brown <broonie@xxxxxxxxxx> wrote: > > On Wed, Mar 25, 2020 at 12:45:11PM +0100, Ard Biesheuvel wrote: > > > I don't think this is the right fix. What is wrong with keeping these > > .cpu and .arch directives in the .S files, and simply make > > SYM_FUNC_START() expand to something that includes .arch_extension pac > > or .arch_extension bti when needed? That way, we only use > > .arch_extension when we know the assembler supports it (given that > > .arch_extension support itself should predate BTI or PAC support in > > GAS or Clang) > > Since BTI is a mandatory feature of v8.5 there is no BTI arch_extension, > you can only enable it by moving the base architecture to v8.5. You'd > need to use .arch and that feels likely to find us sharp edges to run > into. I think we should talk to the toolchain folks about this. Even if .arch_extension today does not support the 'bti' argument, it *is* most definitely an architecture extension, even it it is mandatory in v8.5 (given that v8.5 is itself an architecture extension).