/* Copyright (C) 2008 Emmanuel Varoquaux
This file is part of XOS.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see . */
#include "start.h"
#include "init.h"
#include
#include
void __attribute__ ((weak, visibility ("default"))) __libc_start(main_t main, int argc, char **argv, init_t executable_init, fini_t executable_fini, fini_t shared_objects_fini)
{
__libc_init(argc, argv, argv + (argc + 1));
if (shared_objects_fini)
atexit(shared_objects_fini);
atexit(__libc_fini);
if (executable_fini)
atexit(executable_fini);
if (executable_init)
executable_init(argc, argv, environ);
exit(main(argc, argv, environ));
}