1
Lowlevel-Coding / Re: C-Kernel aus dem Tutorial -> No Multiboot header.
« am: 15. June 2010, 18:54 »
Ich bin blöd -.-
Danke für die Lösung meines peinlichen Problems^^.
Danke für die Lösung meines peinlichen Problems^^.
11. May 2025, 05:20
Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.
//#include "console.h"
void init(void)
{
//kprintf("Hello World!\n...");
}
$ mbchk kernel
kernel: No Multiboot header.
.section .multiboot
#define MB_MAGIC 0x1badb002
#define MB_FLAGS 0x0
#define MB_CHECKSUM -(MB_MAGIC + MB_FLAGS)
.align 4
.int MB_MAGIC
.int MB_FLAGS
.int MB_CHECKSUM
.section .text
.extern init
.global _start
_start:
mov $kernel_stack, %esp
call init
jmp .
.section .bss
.space 8192
kernel_stack:
SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))
CC = gcc
LD = ld
ASFLAGS = -m32
CFLAGS = -m32 -Wall -g -fno-stack-protector -nostdinc -I include -std=c99
LDFLAGS = -melf_i386 -Tkernel.ld --nmagic
kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^
clean:
rm $(OBJS)
.PHONY: clean
Ich habe den C Standard auf c99 gesetzt und das ld Kommando um "--nmagic" erweitert weil ich in einem anderen Thread gelesen habe dass es etwas nützen soll was in meinem Fall leider auch nicht funktioniert hat.