нен работает по стандартам после `main` должно быть закрыте всего, что закрывается в `exit` ну терпите, crt увеличиласть на несколько байт обертка для `exit` в crt нужна т.к. `exit` импортируется. зачем вообще было держать бинарь `libc.obj/lib/crt0.o`, если абсолютно такой же лежит в `bin/lib/` всемсте `tcc`? Нет, зачем вообще тащить бинари в репку?
41 lines
613 B
C
41 lines
613 B
C
/* Copyright (C) 2021 Logaev Maxim (turbocat2001), GPLv2 */
|
|
|
|
#include <stdlib.h>
|
|
#include <sys/ksys.h>
|
|
#include "_mem.h"
|
|
|
|
static void __close_all()
|
|
{
|
|
|
|
}
|
|
|
|
static void __delete_all_tmp()
|
|
{
|
|
|
|
}
|
|
|
|
static void __free_all_mem()
|
|
{
|
|
struct mem_node* current_node = __mem_node;
|
|
|
|
while (current_node != NULL)
|
|
{
|
|
struct mem_node* tmp = current_node;
|
|
current_node = current_node->next;
|
|
|
|
free(GET_MEM_NODE_PTR(tmp));
|
|
}
|
|
}
|
|
|
|
void exit(int status)
|
|
{
|
|
_ksys_debug_puts("exit\n");
|
|
__run_atexit();
|
|
__close_all();
|
|
__delete_all_tmp();
|
|
__free_all_mem();
|
|
|
|
|
|
_exit(status);
|
|
}
|