[libj6] Move _init_libc to _init_libj6

As part of the move of jsix-specific code from libc to libj6, all the
library initialization is now libj6-specific, so move it all over.
This commit is contained in:
Justin C. Miller
2021-04-07 22:53:48 -07:00
parent 0ae489f49d
commit 55c9faaa79
5 changed files with 8 additions and 9 deletions

View File

@@ -64,6 +64,7 @@ ccflags = [
"-mcmodel=large",
"-D__ELF__",
"-D__JSIX__",
"-D_LIBCPP_HAS_THREAD_API_EXTERNAL",
"-isystem${source_root}/sysroot/include",
"-isystem${source_root}/src/libraries/libc/include",
"--sysroot='${source_root}/sysroot'"
@@ -113,6 +114,7 @@ ccflags = [
"-mcmodel=large",
"-D__ELF__",
"-D__JSIX__",
"-D_LIBCPP_HAS_THREAD_API_EXTERNAL",
"-isystem${source_root}/sysroot/include",
"-isystem${source_root}/src/libraries/libc/include",
"--sysroot='${source_root}/sysroot'"

View File

@@ -8,7 +8,7 @@ static struct j6_init_value *__initv = 0;
j6_handle_t __handle_sys = j6_handle_invalid;
j6_handle_t __handle_self = j6_handle_invalid;
void
extern "C" void
_get_init(size_t *initc, struct j6_init_value **initv)
{
if (!initc)
@@ -19,8 +19,8 @@ _get_init(size_t *initc, struct j6_init_value **initv)
*initv = __initv;
}
void
_init_libc(uint64_t *rsp)
extern "C" void
_init_libj6(uint64_t *rsp)
{
uint64_t argc = *rsp++;
rsp += argc;

View File

@@ -1,4 +1,4 @@
name = "j6"
kind = "lib"
includes = ["src/libraries/j6/include"]
sources = ["syscalls.s"]
sources = ["init.cpp", "syscalls.s"]

View File

@@ -1,17 +1,15 @@
extern main
extern exit
extern _init_libc
extern _init_libj6
global _start:function (_start.end - _start)
_start:
mov rbp, rsp
mov rdi, rsp
call _init_libc
call _init_libj6
pop rdi
mov rsi, rsp
call main
mov rdi, rax

View File

@@ -7,7 +7,6 @@ deps = ["j6"]
sources = [
"arch/x86_64/_Exit.s",
"arch/x86_64/crt0.s",
"arch/x86_64/init_libc.c",
"ctype/isalnum.c",
"ctype/isalpha.c",
"ctype/isblank.c",