From f5d99d6b2f9cbe5996d6717faa43a304f4416e2c Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 18 Sep 2019 11:32:56 +0300 Subject: [PATCH] [amd64] Stricter warnings for loader --- conf/make/amd64.mk | 19 +++++++++++++++++-- src/arch/amd64/loader/loader.c | 4 ++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/conf/make/amd64.mk b/conf/make/amd64.mk index d56c40b..9e606a9 100644 --- a/conf/make/amd64.mk +++ b/conf/make/amd64.mk @@ -49,7 +49,16 @@ loader_OBJS+=$(O)/arch/amd64/loader/boot.o \ $(O)/arch/amd64/loader/loader.o \ $(O)/arch/amd64/loader/util.o loader_LINKER=$(S)/arch/amd64/loader/link.ld -loader_CFLAGS=-ffreestanding -nostdlib -I. -Iinclude -m32 +loader_CFLAGS=-ffreestanding \ + -nostdlib \ + -I. \ + -Iinclude \ + -m32 \ + -Wall \ + -Wextra \ + -Wpedantic \ + -Wno-unused-argument \ + -Werror loader_LDFLAGS=-nostdlib -melf_i386 -T$(loader_LINKER) $(O)/loader.elf: $(loader_OBJS) $(loader_LINKER) @@ -64,7 +73,13 @@ $(O)/arch/amd64/loader/%.o: $(S)/arch/amd64/loader/%.c $(HEADERS) @printf " CC\t%s\n" $@ @$(CROSSCC) $(loader_CFLAGS) -c -o $@ $< +### Debugging and emulation QEMU_BIN?=qemu-system-x86_64 +QEMU_OPTS?=-nographic \ + -serial mon:stdio \ + -m 512 qemu: all - @$(QEMU_BIN) -kernel $(O)/loader.elf -initrd $(O)/kernel.elf -serial mon:stdio -m 512 + @$(QEMU_BIN) \ + -kernel $(O)/loader.elf \ + -initrd $(O)/kernel.elf $(QEMU_OPTS) diff --git a/src/arch/amd64/loader/loader.c b/src/arch/amd64/loader/loader.c index 61dc89f..8fffdad 100644 --- a/src/arch/amd64/loader/loader.c +++ b/src/arch/amd64/loader/loader.c @@ -88,9 +88,9 @@ void loader_main(uint32_t magic, struct multiboot_info *mb_info) { } // Setup loader_data - loader_data.multiboot_info_ptr = (uint64_t) mb_info; + loader_data.multiboot_info_ptr = (uintptr_t) mb_info; - struct multiboot_mod_list *mod_list = (struct multiboot_mod_list *) mb_info->mods_addr; + struct multiboot_mod_list *mod_list = (struct multiboot_mod_list *) (uintptr_t) mb_info->mods_addr; if (mb_info->mods_count != 1) { panic("Expected 1 module");