Por que alguns projetos incorporados evitam a compilação cruzada?

5

Como estou entrando em sistemas embarcados, notei que alguns projetos (Arch Arm e OpenBSD, por exemplo) desaprovam a compilação cruzada. Qual é o raciocínio para isso? Um binário compilado de alguma forma é diferente de um compilado nativamente?

O OpenBSD sugere que a construção do hardware garante que o sistema seja totalmente funcional (e também de auto-hospedagem) e isso faz todo o sentido. Mas as pessoas realmente desenvolvem e compilam drivers de kernel no hardware para o qual estão desenvolvendo? Parece muito demorado.

Do FAQ do OpenBSD:

"Ferramentas de compilação cruzada estão no sistema, para uso por desenvolvedores criando uma nova plataforma. No entanto, elas não são mantidas para uso geral."

- link

Verificarei se posso procurar o log do IRC onde um desenvolvedor do ArchLinux Arm me disse que eles não cruzam a compilação, embora pareçam ter atualizado suas informações sobre a compilação cruzada com o DistCC: link

    
por tpaul 24.02.2014 / 15:22
fonte

1 resposta

1

Para projetos como Arch Linux ARM e OpenBSD que estão tentando construir e manter um ambiente de usuário interativo e complexo, uma strong preferência por fazer "construções nativas" (na terminologia do OpenBSD) força os desenvolvedores a " comer o seu próprio dogfood "e minimiza o problema MxN de manter geradores de código M em N ambientes.

Para um projeto de sistemas embarcados com um ambiente de destino e código de aplicativo sob o controle de um pequeno grupo de desenvolvedores, esse raciocínio não se aplica.

    
por 01.05.2014 / 22:22
fonte