Migrated loader to Clang/LLVM... but still using LD from binutils.

master
q3k 2013-06-18 10:18:09 +02:00
parent a13cbc2fb1
commit 381321a2ba
3 changed files with 22 additions and 14 deletions

View File

@ -12,16 +12,15 @@
default: emulate-nohdd
SHELL:=/bin/bash
TARGET:=i586-elf
CC:=$(TARGET)-gcc
CC:=clang
AS:=nasm
LD:=$(TARGET)-ld
LD:=ld
# -O2 sets -foptimize-sibling-calls which breaks code...
CFLAGS:=-Wall -Werror -nostdlib -nostartfiles -nodefaultlibs -std=c99 -g
CFLAGS+=-I ./include -Wno-packed-bitfield-compat -O2 -fno-optimize-sibling-calls
CFLAGS+= -fno-builtin
LFLAGS:=-nostdlib -nostartfiles -nodefaultlibs
CFLAGS:=-Wall -Werror -nostdlib -std=c99 -g -ffreestanding
CFLAGS+=-I ./include -O2 -fno-optimize-sibling-calls
CFLAGS+= -fno-builtin -nostdinc -target i586-elf
LFLAGS:=-nostdlib -nostartfiles -nodefaultlibs -m elf_i386
.PHONY: all clean loader.bin emulate hdd.img
@ -45,17 +44,17 @@ Loader: $(OBJ_ALL)
loader.bin: Loader
@echo "[i] Linking loader.bin..."
@$(LD) -T src/loader.ld -o loader.bin $(OBJ_ALL)
@$(LD) $(LFLAGS) -T src/loader.ld -o loader.bin $(OBJ_ALL)
emulate-nohdd-debug: loader.bin
@echo "[i] Starting GDB..."
@gnome-terminal -x /bin/bash -c "gdb"
@echo "[i] Starting QEmu..."
@qemu --no-kvm -kernel loader.bin -S -gdb tcp::1234
@qemu-system-x86_64 --no-kvm -kernel loader.bin -S -gdb tcp::1234
emulate-nohdd: loader.bin
@echo "[i] Starting QEMU..."
@qemu --no-kvm -kernel loader.bin
@qemu-system-x86_64 --no-kvm -kernel loader.bin
clean:
@rm -Rf obj

View File

@ -9,6 +9,11 @@ SECTIONS
_start = .;
.mboot :
{
*(.mboot)
}
.text :
{
*(.text)

View File

@ -18,11 +18,11 @@ CHECKSUM equ -(MAGIC + FLAGS)
; Other constants
STACKSIZE equ 0x1000
; #############################################################################
; ############################## text segment #################################
; #############################################################################
; ##############################################################################
; ############################## mboot segment #################################
; ##############################################################################
section .text
section .mboot
align 4
; Multiboot header
@ -31,6 +31,10 @@ MultiBootHeader:
dd FLAGS
dd CHECKSUM
; #############################################################################
; ############################## text segment #################################
; #############################################################################
; GDTR
GDTR:
dw 5*8-1