summaryrefslogtreecommitdiffhomepage
path: root/crt/nt32/crt1.c
blob: 3b499156683be85dbba43a9c9c47fc2a0195b8a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "crtinit.h"

static const int __disabled = 0;
extern const int __hidden __crtopt_posix  __attribute((weak,alias("__disabled")));
extern const int __hidden __crtopt_dinga  __attribute((weak,alias("__disabled")));
extern const int __hidden __crtopt_ldso   __attribute((weak,alias("__disabled")));
extern const int __hidden __crtopt_vrfs   __attribute((weak,alias("__disabled")));

int  __hidden main();
void __hidden __libc_loader_init(void * __main, int flags);

void __hidden _start(void)
{
	const unsigned short fmode = 0x37f;

	__asm__ __volatile__ (
		"fldcw %0"
		: : "m" (*&fmode));

	__libc_loader_init(
		main,
		__crtopt_posix
			| __crtopt_dinga
			| __crtopt_ldso
			| __crtopt_vrfs);
}