Fixed linker and switched it to use clang directly instead of lld.
This commit is contained in:
parent
c05bcbec88
commit
7faa974542
50
linker.ld
50
linker.ld
@ -1,32 +1,30 @@
|
|||||||
OUTPUT_FORMAT(elf32-i386)
|
/* http://wiki.osdev.org/Bare_Bones#Linking_the_Kernel */
|
||||||
ENTRY (start)
|
ENTRY(_start)
|
||||||
|
|
||||||
SECTIONS{
|
SECTIONS
|
||||||
. = 0x00100000;
|
{
|
||||||
|
. = 1M;
|
||||||
|
|
||||||
.text :{
|
.text BLOCK(4K) : ALIGN(4K)
|
||||||
code = .; _code = .; __code = .;
|
{
|
||||||
*(.text)
|
*(.multiboot)
|
||||||
*(.rodata)
|
*(.text)
|
||||||
}
|
}
|
||||||
|
|
||||||
.rodata ALIGN (0x1000) : {
|
.rodata BLOCK(4K) : ALIGN(4K)
|
||||||
*(.rodata)
|
{
|
||||||
}
|
*(.rodata)
|
||||||
|
}
|
||||||
|
|
||||||
.data ALIGN (0x1000) : {
|
.data BLOCK(4K) : ALIGN(4K)
|
||||||
data = .; _data = .; __data = .;
|
{
|
||||||
*(.data)
|
*(.data)
|
||||||
start_ctors = .; *(.ctors) end_ctors = .;
|
}
|
||||||
start_dtors = .; *(.dtors) end_dtors = .;
|
|
||||||
}
|
.bss BLOCK(4K) : ALIGN(4K)
|
||||||
|
{
|
||||||
|
*(COMMON)
|
||||||
|
*(.bss)
|
||||||
|
}
|
||||||
|
|
||||||
.bss : {
|
|
||||||
sbss = .;
|
|
||||||
bss = .; _bss = .; __bss = .;
|
|
||||||
*(COMMON)
|
|
||||||
*(.bss)
|
|
||||||
ebss = .;
|
|
||||||
}
|
|
||||||
end = .; _end = .; __end = .;
|
|
||||||
}
|
}
|
||||||
|
2
makefile
2
makefile
@ -1,7 +1,7 @@
|
|||||||
all: kernel
|
all: kernel
|
||||||
|
|
||||||
kernel: bootloader
|
kernel: bootloader
|
||||||
nim cc --cc:clang --clang.linkerexe=ld.lld --gc:none --deadCodeElim:on --cpu:i386 --os:standalone --passC:"-ffreestanding -nostdlib --target=i686-pc-none-elf -march=i686" --passL:"-m elf_i386 -T linker.ld boot.o" kernel.nim
|
nim cc --cc:clang --clang.linkerexe=clang --gc:none --deadCodeElim:on -d:StandaloneHeapSize=4096 --cpu:i386 --os:standalone --passC:"-ffreestanding -nostdlib --target=i686-pc-none-elf -march=i686" --passL:"-target i386 -nostdlib -T linker.ld boot.o" kernel.nim
|
||||||
|
|
||||||
bootloader:
|
bootloader:
|
||||||
nasm -felf32 boot.s -o boot.o
|
nasm -felf32 boot.s -o boot.o
|
||||||
|
Loading…
Reference in New Issue
Block a user