From 49114214cbfbe6332ec347fe2ee3639283340adf Mon Sep 17 00:00:00 2001 From: vmttmv Date: Sat, 25 Oct 2025 21:26:52 +0300 Subject: [PATCH] build: debug symbols for stage1 --- Makefile | 20 +++++++++++++------- bootloader/boot.asm | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 47a4c48..c2e7ed0 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,8 @@ IMG_SIZE = 1440k BUILD_DIR = build BOOT_SRC = bootloader/boot.asm -BOOT_BIN = $(BUILD_DIR)/boot.bin +BOOT_OBJ = $(BUILD_DIR)/boot.o +BOOT_ELF = $(BUILD_DIR)/boot.elf BOOT_IMG = $(BUILD_DIR)/boot.img KERNEL_SRC = kernel/kmain.c KERNEL_BIN = $(BUILD_DIR)/kernel.bin @@ -15,16 +16,17 @@ DISK_IMG = $(BUILD_DIR)/disk.img all: $(BOOT_IMG) $(KERNEL_BIN) $(DISK_IMG) -stage1: $(BOOT_IMG) - $(BUILD_DIR): mkdir -p $@ -$(BOOT_BIN): $(BOOT_SRC) | $(BUILD_DIR) - $(AS) -f bin -o $@ $< +$(BOOT_OBJ): $(BOOT_SRC) | $(BUILD_DIR) + $(AS) -f elf32 -g -F dwarf -o $@ $< -$(BOOT_IMG): $(BOOT_BIN) - cp $(BOOT_BIN) $@ +$(BOOT_ELF): $(BOOT_OBJ) + $(LD) -Ttext=0x7c00 -melf_i386 -o $@ $< + +$(BOOT_IMG): $(BOOT_ELF) + objcopy -O binary $< $@ truncate -s $(IMG_SIZE) $@ $(KERNEL_BIN): $(KERNEL_SRC) | $(BUILD_DIR) @@ -38,5 +40,9 @@ $(DISK_IMG): $(BOOT_IMG) $(KERNEL_BIN) run: $(DISK_IMG) $(QEMU) -drive file=$<,format=raw,if=floppy +.PHONY: stage1 clean + +stage1: $(BOOT_IMG) + clean: rm -rf $(BUILD_DIR) diff --git a/bootloader/boot.asm b/bootloader/boot.asm index 494eda9..cec2414 100644 --- a/bootloader/boot.asm +++ b/bootloader/boot.asm @@ -3,7 +3,7 @@ ; ============================================================================== [BITS 16] -[ORG 0x7C00] +; [ORG 0x7C00] start: cli ; Disable interrupts