This commit is contained in:
nub31
2025-06-26 13:59:02 +02:00
parent d88f5566c6
commit 9f20e71740
4 changed files with 22 additions and 8 deletions

View File

@@ -1 +1,2 @@
*.o
*.o
out

View File

@@ -1,5 +1,15 @@
x86_64:
gcc -nostdlib -ffreestanding -c platform/x86_64.s runtime.c
CC = gcc
CFLAGS = -nostdlib -ffreestanding -Wall -Werror -Wextra
x64: runtime.o x64.o
mkdir -p out
ar rcs out/libruntime.a runtime.o x64.o
runtime.o: runtime/runtime.c
$(CC) $(CFLAGS) -c runtime/runtime.c -o runtime.o
x64.o: runtime.o platform/x64.s
$(CC) $(CFLAGS) -c platform/x64.s -o x64.o
clean:
rm runtime.o
rm -r out runtime.o x64.o

View File

@@ -4,9 +4,12 @@
.globl nub_write_string
# void nub_write_string(const char* str)
nub_write_string:
mov rsi, rdi
mov rdi, 1
push rdi
call nub_cstring_length
mov rdx, rax
pop rsi
mov rax, 1
mov rdi, 1
syscall
.text

View File

@@ -45,11 +45,11 @@ void nub_panic_oom()
nub_exit(NUB_PANIC_ERROR_CODE);
}
extern int main();
extern uint64_t main();
__attribute__((noreturn)) void _start()
{
int exit_code = main();
uint64_t exit_code = main();
nub_exit(exit_code);
__builtin_unreachable();
}