Pergunta

Estou compilando newlib para um bespoke PowerPC plataforma sem OS. Leitura de informações na net eu percebo que eu preciso para implementar funções stub em um subdiretório <newplatform> de libgloss.

A minha confusão é a forma como isso vai ser pego quando eu compilar newlib. É a última parte do argumento --target para configure por exemplo powerpc-ibm-<newplatform>?

Se este for o caso, então eu acho que eu deveria usar o mesmo --target ao compilar binutils e gcc?

Obrigado

Foi útil?

Solução

Eu portado newlib e GCC mim também. E eu lembro que eu não tenho que fazer muita coisa para tornar o trabalho newlib (portar GCC, gás e libbfd foi a maioria do trabalho).

Apenas teve que ajustar alguns arquivos sobre números de ponto flutuante, desligue algumas bandeiras POSIX / SomeOtherStandard que o fizeram não utilizar algumas funções mais sofisticadas e código de suporte de gravação para longjmp / setjmp que a carga eo estado loja de registo para os buffers de salto. Mas certamente você tem que dizer que o alvo usando --target para que ele usa a máquina sub-diretório de direita e outros enfeites. Eu me lembro que eu tinha para adicionar pequeno código para configure.sub para torná-lo saber sobre o meu destino e imprimir o trible configuração completa (cpu-fabricante-os ou similar). Só descobri que eu tinha para editar um arquivo chamado configure.host também, que define algumas opções para o seu alvo (por exemplo, se um sistemas de operação alças sinais aumentou raise, ou se a própria newlib deve simular manipulação).

neste blog de Anthony Green como uma diretriz, onde ele descreve a portabilidade do GCC, newlib e binutils. Eu acho que é uma grande fonte quando você tem que fazê-lo sozinho. Um divertido ler de qualquer maneira. Levou um total de 2 meses para compilar e executar alguns programas divertidos C que só precisa de free-standing C (com funções de leitura / gravação fictícios que escreveu para o simulador terminal).

Então, eu acho que a quantidade de trabalho é certamente manejável. O que me fez quase louco era scripts de construção de libgloss. Eu certamente foi perdido naqueles magias autoconf :) De qualquer forma, desejo-lhe boa sorte! :)

Outras dicas

Verifique para fora Portando newlib .

Citação:

Eu decidi que depois de uma semana incrivelmente difícil de tentar obter newlib portado para o meu próprio sistema operacional que eu iria escrever um tutorial que descreve os requisitos para portar newlib e como realmente fazê-lo. Eu estou supondo que você já pode carregar binários de algum lugar e que esses binários são compilados código C. Eu também assumir que tem uma configuração de interface syscall já. Porque esperar? Vamos começar rachando!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top