[build] Address symbol visibility and DSO builds

Added an `API` macro in `j6/api.h` that expands to mark the given
declaration as a default-visible symbol. Also change `format` and
`vformat` to non-template functions, and make calls to `main`, `exit`,
and the library init functions in `_start` GOT-relative.
This commit is contained in:
Justin C. Miller
2023-08-26 19:30:26 -07:00
parent 646a534dfd
commit 8cbde13139
18 changed files with 66 additions and 30 deletions

View File

@@ -36,13 +36,13 @@ j6_find_first_handle(j6_object_type obj_type)
return j6_handle_invalid;
}
const j6_init_args *
const j6_init_args * API
j6_get_init_args()
{
return &init_args;
}
extern "C" void
extern "C" void API
__init_libj6(uint64_t arg0, uint64_t arg1)
{
init_args.args[0] = arg0;