Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I have written a compiler for C that outputs byte code. The reason for this was to be able to write applications for an embedded platform that runs on multiple platforms.

I have the compiler and the assembler.

I need to write a linker, and am stuck.

The object format is a custom one, designed around the byte code interpreter, so I cant really use any existing linkers.

My biggest hurdle is how to organize the object code to output the linked binary. Dynamic linking is not necessary, at this time. I need to get static linking working first.

share|improve this question

3 Answers

up vote 13 down vote accepted

http://linker.iecc.com is the only book I know about this subject.

share|improve this answer
 
Awesome book, to be honest. –  dirkgently Oct 21 '09 at 20:21

Ian Lance Taylor, one of the main developers on the gold linker(now part of binutils), posted a series of blogs on how linkers work. You can find it here.

share|improve this answer

I second the Linkers and Loaders book. You state that your object format is a custom one. If the format is under your control, you could consider using the ELF format with your bytecode as a new machine architecture, a la x86, SPARC, ARM, etc. The GNU binutils sources are sufficiently malleable to allow you to incorporate your "architecture".

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.