From 5dfac4879ce5f34503ae7537eefd3fc48d6fa750 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Wed, 25 Aug 2021 23:47:08 +0300 Subject: libfdt seems to work At least as far as reading memory info, cool. One issue I have is that .(ro)data is apparently accessed by absolute addresses, so I need to know at which address the kernel is going to be loaded. I would prefer completely position independent code, but if that's not possible then eh. --- Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index d7f02c1..5097ff0 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ DO != echo > deps.mk -CFLAGS = -fno-pie -ggdb3 -ffreestanding -nostdlib +CFLAGS = -fno-pie -ggdb3 -ffreestanding -nostdlib -std=c11 -Wall -Wextra -mcmodel=medany DEPFLAGS = -MT $@ -MMD -MP -MF $@.d all: apos.bin @@ -23,9 +23,11 @@ CLEANUP_CMD := include arch/$(ARCH)/source.mk -INCLUDE_FLAGS := -Iinclude -Iarch/$(ARCH)/include $(USE_FDT:y=-Idtc/libfdt) +INCLUDE_FLAGS := -I include -I arch/$(ARCH)/include\ + -include config.h -include arch/$(ARCH)/config.h COMPILE = $(CROSS_COMPILE)$(CC) $(CFLAGS) $(DEPFLAGS) $(INCLUDE_FLAGS) +GENELF = $(CROSS_COMPILE)$(CC) $(CFLAGS) $(INCLUDE_FLAGS) GENLINK = $(CROSS_COMPILE)$(CPP) $(DEPFLAGS) $(INCLUDE_FLAGS) STRIPLINK = sed -n '/^[^\#]/p' @@ -45,10 +47,10 @@ apos.bin: kernel.elf init.elf cat init.bin kernel.bin > $@ kernel.elf: $(KERNEL_OBJECTS) $(KERNEL_LD) - $(COMPILE) -T$(KERNEL_LD) $(KERNEL_OBJECTS) -o $@ + $(GENELF) -T $(KERNEL_LD) $(KERNEL_OBJECTS) -o $@ init.elf: $(INIT_OBJECTS) $(INIT_LD) - $(COMPILE) -T$(INIT_LD) $(INIT_OBJECTS) -o $@ + $(GENELF) -T $(INIT_LD) $(INIT_OBJECTS) -o $@ clean: $(CLEANUP_CMD) -- cgit v1.3