Domanda

Ho scritto un compilatore per C che emette codice byte. La ragione di ciò è stata quella di poter scrivere applicazioni per una piattaforma integrata che gira su più piattaforme.

Ho il compilatore e l'assemblatore.

Devo scrivere un linker e sono bloccato.

Il formato dell'oggetto è personalizzato, progettato attorno all'interprete del codice byte, quindi non posso davvero usare alcun linker esistente.

Il mio più grande ostacolo è come organizzare il codice oggetto per l'output del binario collegato. Il collegamento dinamico non è necessario, al momento. Devo prima far funzionare il collegamento statico.

È stato utile?

Soluzione

http://linker.iecc.com è l'unico libro che conosco su questo argomento.

Altri suggerimenti

Ian Lance Taylor, uno dei principali sviluppatori del gold linker (ora parte di binutils), ha pubblicato una serie di blog su come funzionano i linker. Puoi trovarlo qui .

Secondo il libro Linkers and Loaders. Dichiari che il tuo formato oggetto è personalizzato. Se il formato è sotto il tuo controllo, potresti considerare di utilizzare il formato ELF con il tuo bytecode come una nuova architettura macchina, come x86, SPARC, ARM, ecc. Le fonti binutils GNU sono sufficientemente malleabili per permetterti di incorporare la tua " architettura " ;.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top