summaryrefslogtreecommitdiff
path: root/kjarna_runtime
diff options
context:
space:
mode:
Diffstat (limited to 'kjarna_runtime')
-rw-r--r--kjarna_runtime/Makefile2
-rw-r--r--kjarna_runtime/main.c (renamed from kjarna_runtime/kc_main.c)0
-rw-r--r--kjarna_runtime/reloc_x86_64.c42
3 files changed, 1 insertions, 43 deletions
diff --git a/kjarna_runtime/Makefile b/kjarna_runtime/Makefile
index 855f479..be3cd90 100644
--- a/kjarna_runtime/Makefile
+++ b/kjarna_runtime/Makefile
@@ -17,7 +17,7 @@ LDSCRIPT := kc.ld
CRT_OBJS := start_x86_64.o dynamic_x86_64.o elf64.o
LIB_OBJS := memcmp.o memcpy.o memmove.o memset.o string.o
-APP_OBJS := kc_main.o
+APP_OBJS := main.o
OBJS := $(CRT_OBJS) $(LIB_OBJS) $(APP_OBJS)
diff --git a/kjarna_runtime/kc_main.c b/kjarna_runtime/main.c
index acfcdc1..acfcdc1 100644
--- a/kjarna_runtime/kc_main.c
+++ b/kjarna_runtime/main.c
diff --git a/kjarna_runtime/reloc_x86_64.c b/kjarna_runtime/reloc_x86_64.c
deleted file mode 100644
index 63dc6e7..0000000
--- a/kjarna_runtime/reloc_x86_64.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <kc.h>
-
-#define STARTCODE __attribute__((section(".text.start")))
-
-STARTCODE
-static void do_rela(void *base, Elf64_Rela *rela)
-{
- union
- {
- Elf_Byte word8;
- Elf64_Half word16;
- Elf64_Word word32;
- Elf64_Xword word64;
- }
- *fixup;
-
- switch (ELF64_R_TYPE(rela->r_info))
- {
- case R_X86_64_JUMP_SLOT:
- fixup = (void *)(rela->r_offset + (uintptr_t)base);
- fixup->word64 += (uintptr_t)base;
- break;
- case R_X86_64_RELATIVE:
- fixup = (void *)(rela->r_offset + (uintptr_t)base);
- fixup->word64 = (rela->r_addend + (uintptr_t)base);
- break;
- default:
- break;
- }
-}
-
-STARTCODE
-void kc_reloc(void *base, Elf64_Rela *entries, size_t size, size_t entsize)
-{
- // perform the actual relocation
-
- for (size_t i = 0; entries && (i < size / entsize); i++)
- {
- do_rela(base, &entries[i]);
- }
-}
-