12

He escrito un compilador para C que genera código de bytes. La razón de esto fue poder escribir aplicaciones para una plataforma integrada que se ejecuta en múltiples plataformas.Cómo escribir un enlazador

Tengo el compilador y el ensamblador.

Necesito escribir un enlazador, y estoy atascado.

El formato del objeto es uno personalizado, diseñado alrededor del intérprete de código de bytes, por lo que no puedo usar realmente ningún vinculador existente.

Mi mayor obstáculo es cómo organizar el código del objeto para generar el binario vinculado. La vinculación dinámica no es necesaria, en este momento. Necesito que la vinculación estática funcione primero.

Respuesta

4

I segundo el libro de Enlazadores y cargadores. Usted declara que su formato de objeto es personalizado. Si el formato está bajo su control, podría considerar usar el formato ELF con su bytecode como una nueva arquitectura de máquina, a la x86, SPARC, ARM, etc. Las fuentes de binutils de GNU son lo suficientemente maleables para permitirle incorporar su "arquitectura" .

12

Ian Lance Taylor, uno de los principales desarrolladores de gold linker (ahora parte de binutils), publicó una serie de blogs sobre cómo funcionan los enlazadores. Lo puedes encontrar here.