Ao criar o toolchain em si, você precisa configurar quais recursos serão suportados. Você pode criar um compilador "slim", suportando apenas os recursos necessários para o destino desejado.
Mas você também pode suportar tudo que a plataforma ARM tem a oferecer e obter um compilador desajeitado.
Para os recursos em si, você deve diferir entre diferentes tipos:
- Sinalizadores de otimização como
-mcpu
não são necessários, eles são apenas para otimizar o código para um determinado processador ARM - O recurso
fpu
do seu núcleo ARM, por outro lado, deve estar disponível para usar o fpu. - Seu
float=hard
depende do sistema operacional, não do processador: ele permite passar flutuadores para funções em registros flutuantes, o que pode ser um grande aumento de velocidade porque a transferência entre registros ARM e registros flutuantes é lenta. Mas, para a ligação, o sistema precisa concordar com isso. - O suporte para o polegar também é opcional. Você pode usar tanto se o núcleo suportar isso, mas hoje em dia seria estúpido não deixar o compilador escolher o modo miniatura.