kolibrios-fun/contrib/sdk/sources/newlib/crt/crt3.c
Sergey Semyonov (Serge) b3031965cc sdk: update Makefiles
git-svn-id: svn://kolibrios.org@4866 a494cfbc-eb01-0410-851d-a64ba20cac60
2014-04-21 17:06:44 +00:00

66 lines
1.3 KiB
C

/*
* crt1.c
* This file has no copyright assigned and is placed in the Public Domain.
* This file is a part of the mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER within the package.
*
* Source code for the startup proceedures used by all programs. This code
* is compiled to make crt1.o, which should be located in the library path.
*
*/
/* Hide the declaration of _fmode with dllimport attribute in stdlib.h to
avoid problems with older GCC. */
#include <newlib.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
/*
typedef void (*ctp)();
static void __do_global_ctors ()
{
extern int __CTOR_LIST__;
int *c = &__CTOR_LIST__;
c++;
while (*c)
{
ctp d = (ctp)*c;
(d)();
c++;
}
}
*/
void *load_libc();
//void __main (){};
void* get_entry_point(void *raw);
void _pei386_runtime_relocator (void){};
void __attribute__((noreturn))
__crt_startup (void)
{
struct app_hdr *header;
void *img;
void __attribute__((noreturn)) (*entry)(void *img);
// _pei386_runtime_relocator();
img = load_libc();
if(img == NULL)
{
asm ("int $0x40" ::"a"(-1));
};
entry = get_entry_point(img);
entry(img);
}