O que você está falando é conhecido como inicializando um compilador .
Geralmente isso é feito pela compilação cruzada do compilador em outra máquina para a arquitetura de destino. Você pode encontrar algumas informações aqui e aqui . Não é um processo trivial, no entanto. Se o seu alvo não é arquitetura que o GCC já suporta, então você tem um lote de trabalho pela frente.