summaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-08 12:43:53 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-08 12:43:53 +0200
commit1230afc0aaef07b03f09d3725f459df07b982de8 (patch)
treece0f127319285a010547bfb3695a9a634f778684 /src/Makefile
parent70266efd6fbe9a12a19cbec451eec536266ffb5e (diff)
downloadabaos-1230afc0aaef07b03f09d3725f459df07b982de8.tar.gz
abaos-1230afc0aaef07b03f09d3725f459df07b982de8.tar.bz2
added dedicated kernel entry to avoid address reordering under compiler optimization
affect the entry poin 0x8800 of kernel_main (now kernel_entry)
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Makefile b/src/Makefile
index 876376d..62909a1 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,6 +1,6 @@
CC := gcc
INCLUDES = -I. -Ilibc -Ihardware -Idrivers -Idrivers/hdi -Idrivers/hdi/ps2 -Idrivers/video -Ikernel -Igui
-CFLAGS := -std=c99 -m32 -ffreestanding -O0 -g -Wall -Werror $(INCLUDES)
+CFLAGS := -std=c99 -m32 -ffreestanding -O0 -g -Werror $(INCLUDES)
LD := ld
NASMFLAGS := -f elf32
NASM := nasm
@@ -33,8 +33,9 @@ kernel.bin: kernel.elf
kernel.sym: kernel.elf
$(OBJCOPY) --only-keep-debug kernel.elf kernel.sym
-kernel.elf: kernel/kernel.o kernel/kernel_asm.o kernel/console.o kernel/vgatext.o kernel/serial.o kernel/memorymanagement.o kernel/tasks.o hardware/port.o hardware/port_asm.o hardware/interrupts.o hardware/interrupts_asm.o hardware/pci.o drivers/driver.o drivers/hdi/ps2/keyboard.o drivers/hdi/ps2/mouse.o drivers/video/vga.o drivers/video/vga_font.o gui/widget.o gui/composite_widget.o gui/window.o gui/desktop.o gui/text_widget.o libc/string.o libc/stdlib.o libc/stdio.o libc/setjmp.o
+kernel.elf: kernel/entry.o kernel/kernel.o kernel/kernel_asm.o kernel/console.o kernel/vgatext.o kernel/serial.o kernel/memorymanagement.o kernel/tasks.o hardware/port.o hardware/port_asm.o hardware/interrupts.o hardware/interrupts_asm.o hardware/pci.o drivers/driver.o drivers/hdi/ps2/keyboard.o drivers/hdi/ps2/mouse.o drivers/video/vga.o drivers/video/vga_font.o gui/widget.o gui/composite_widget.o gui/window.o gui/desktop.o gui/text_widget.o libc/string.o libc/stdlib.o libc/stdio.o libc/setjmp.o
$(LD) -o kernel.elf -N -n -Ttext 0x8800 --oformat elf32-i386 \
+ kernel/entry.o \
kernel/kernel.o kernel/kernel_asm.o \
kernel/console.o kernel/vgatext.o kernel/serial.o \
kernel/memorymanagement.o kernel/tasks.o \
@@ -51,6 +52,9 @@ kernel.elf: kernel/kernel.o kernel/kernel_asm.o kernel/console.o kernel/vgatext.
magic.bin: boot/magic.asm
$(NASM) boot/magic.asm -DMAGIC='"$(MAGIC)"' -f bin -o magic.bin
+kernel/entry.o: kernel/entry.c
+ $(CC) $(CFLAGS) -c -o kernel/entry.o kernel/entry.c
+
kernel/kernel.o: kernel/kernel.c
$(CC) $(CFLAGS) -c -o kernel/kernel.o kernel/kernel.c