Eu escrevi algum código assembly arm64 seguindo a convenção de chamada AAPCS64.
Agora eu gostaria de integrar esse código em um projeto C/C++ construído com PAC e BTI habilitados. Eu notei o problema pela primeira vez quando o linker me disse que estava faltando a GNU_PROPERTY_AARCH64_FEATURE_1_BTI
propriedade:
ld: error: md5block_arm64.o: -z bti-report: file does not have GNU_PROPERTY_AARCH64_FEATURE_1_BTI property
Embora seja trivial apenas definir essa propriedade, estou ciente de que provavelmente preciso alterar partes do meu código para torná-las compatíveis com PAC/BTI. Quais são as alterações necessárias para isso? Estou interessado em uma resposta geral que possa ser usada como um guia para adaptar qualquer código, daí a falta de código a ser adaptado nesta questão.