Use string type with -release compilation flag to avoid undefined reference to __assert
This commit is contained in:
parent
1944a3450e
commit
04356c74e5
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
|||||||
.PHONY: kernel
|
.PHONY: kernel
|
||||||
kernel:
|
kernel:
|
||||||
./i686-elf-gcc/bin/i686-elf-gcc -c -o boot.o -ffreestanding boot.S
|
./i686-elf-gcc/bin/i686-elf-gcc -c -o boot.o -ffreestanding boot.S
|
||||||
ldc2 -march=x86 -mcpu=i686 --betterC -c -of=kernel_main.o kernel_main.d
|
ldc2 -march=x86 -mcpu=i686 --betterC -release -c -of=kernel_main.o kernel_main.d
|
||||||
./i686-elf-gcc/bin/i686-elf-gcc -o kernel.elf -ffreestanding -nostdlib -T link.ld boot.o kernel_main.o
|
./i686-elf-gcc/bin/i686-elf-gcc -o kernel.elf -ffreestanding -nostdlib -T link.ld boot.o kernel_main.o
|
||||||
|
|
||||||
.PHONY: image
|
.PHONY: image
|
||||||
|
@ -2,7 +2,7 @@ extern (C) void mykernel_main() {
|
|||||||
write("Hello from D!");
|
write("Hello from D!");
|
||||||
}
|
}
|
||||||
|
|
||||||
void write(immutable(char) * message) {
|
void write(string message) {
|
||||||
ubyte * vidmem = cast(ubyte *) 0xB8000u;
|
ubyte * vidmem = cast(ubyte *) 0xB8000u;
|
||||||
for (size_t i = 0u; message[i] != '\0'; i++) {
|
for (size_t i = 0u; message[i] != '\0'; i++) {
|
||||||
vidmem[i * 2] = message[i];
|
vidmem[i * 2] = message[i];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user