Era uma vez a época em que os sistemas linux embarcados eram fracos e limitados, com poucos recursos e demorava muito para compilar os programas no próprio alvo, para resolver isso usava-se a compilação cruzada, ou seja, em um PC x86 potente, de forma rápida e gerava-se o executável para o alvo definindo os paramentos do compilador.
Por exemplo, na decada de 80, um computador com MC68000 ou Z80, rodando CPM ou CPM-68k, compilava e executava os aplicativos no proprio sistema, digo isso por experiencia propria, eu usava um Apple com CPM80 e na epoca me servia bem, ninguem necessitava de usar um mainframe pra compilar e depois executar na plataforma alvo.
Hoje a meu ver o que limita os sistemas embarcados é a quantidade de RAM e a memoria de massa(HD), a maioria das placas com ARM possui pouca quantidade de memoria RAM e penso que o acesso da CPU a esta memoria não é tão eficiente como num processador CISC mais parrudo. Se um sistema possui pouca RAM nem vai conseguir direito executar um sistema operativo, imagine compilar algo.....
Também, com o tempo cada sistema operacional ficou tao volumoso que suga a cpu de todos os recursos, vide o windows..... A diferença de consumo de recursos do sistema em um computador com windows ou BSD é gritante, há varios benckmarks na internet mostrando a eficiencia do nucleo BSD que é superior a outros sistema operacionais.
O problema do Linux, é que qualquer um bota a mão, inclui o que quer e a coisa não roda 100%. Digo por experiencia, começei a usar o linux em 1996 por raiva da porcaria do windows, mas até hoje não fiquei satisfeito com o sistema principalmente com a execução de audio e video, cada distribuição linux tem uma vantagem e desvantagens, sempre tem um bug ou ineficiencia com o hardware e tem que fazer malabarismos pra coisa funcionar direito.
Não é só no caso de sistemas operacionais, por exemplo o StarOffice que usei no passado, era um aplicativo fechado de uma empresa alemã, que foi base para os aplicativos opensource office que conhecemos hoje. Na época o StarOffice tinha uma boa estabilidade, mas a turma do free, botou a mao e deixou a coisa sem rumo e sem eficiencia, tentam até hoje deixar compativel com o Office da MS. Hoje um openoffice alem de ser pesado para o SO, tá cheio de bugs....
Resumindo, tudo que é opensource pra mim funciona mais ou menos.
Agora, compilar no sistema alvo, dá sim, é só escolher o hardware apropriado. Se o sistema embarcado tá uma lesma com o uclinux, use o rtos, não deu certo, volte ao assembler.... ainda o sistema tá lento? Jogue a placa no lixo,procure na sucata um computador com z80 com CPM que vai funcionar mais rapido!
