Skip to content

compile_stub.sh

Assembles the low-level boot stub and splash screen objects.

Overview

compile_stub.sh uses NASM to assemble two assembly source files into ELF object files. These objects contain the initial boot entry point and an embedded splash-screen TGA image, both of which are linked into the final kernel binary.

Prerequisites

  • nasm must be available on the PATH.
  • The source files src/arch/x86/boot/stub.asm and src/boot/splash_tga.asm must exist.
  • The lib/ output directory must exist (created by compile.sh which clears it beforehand).

Inputs

File Description
src/arch/x86/boot/stub.asm x86 boot stub -- the kernel entry point before Pascal code takes over.
src/boot/splash_tga.asm Embeds a TGA splash screen image as a binary blob.

Outputs

File Description
lib/stub.o ELF object for the boot stub.
lib/splash_tga.o ELF object for the splash screen data.

Behavior

  1. Assembles stub.asm into lib/stub.o using NASM with the ELF output format (-f elf).
  2. Assembles splash_tga.asm into lib/splash_tga.o using the same format.

Notes

  • Both files are assembled as 32-bit ELF objects, consistent with the i386 target architecture.
  • stub.o is treated specially during linking: compile_link.sh places it first in the link order so that the boot entry point appears at the expected address.