Como escrever um ligador
-
05-07-2019 - |
Pergunta
Eu escrevi um compilador para C que o código saídas byte. A razão para isso era para ser capaz de aplicações de gravação para uma plataforma incorporado que é executado em várias plataformas.
Eu tenho o compilador e montador.
Eu preciso escrever um ligador, e estou preso.
O formato de objeto é um costume, projetado em torno do intérprete do código byte, então eu realmente não posso usar quaisquer ligadores existentes.
O meu maior obstáculo é a forma de organizar o código objeto para a saída do binário ligado. A vinculação dinâmica não é necessário, neste momento. Eu preciso para obter estática ligando trabalhando em primeiro lugar.
Solução
http://linker.iecc.com é o único livro que eu sei sobre este assunto.
Outras dicas
Ian Lance Taylor, um dos principais desenvolvedores do vinculador ouro (agora parte do binutils), postou uma série de blogs sobre como ligadores trabalho. Você pode encontrá-lo aqui .
Eu segundo o livro dos ligadores e carregados. Você afirma que o formato de objeto é um costume. Se o formato está sob seu controle, você poderia pensar em usar o formato ELF com o seu bytecode como uma nova arquitetura da máquina, a la x86, SPARC, ARM, etc. O GNU binutils fontes são suficientemente maleável para permitir que você incorporar a sua "arquitetura" .