| 
									
										
										
										
											2019-02-22 09:21:54 +01:00
										 |  |  | #include <assert.h>
 | 
					
						
							| 
									
										
										
										
											2018-10-31 02:09:11 +01:00
										 |  |  | #include <stdio.h>
 | 
					
						
							| 
									
										
										
										
											2019-02-22 09:21:54 +01:00
										 |  |  | #include <stdlib.h>
 | 
					
						
							| 
									
										
										
										
											2018-10-22 14:06:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-15 12:30:48 +01:00
										 |  |  | extern "C" { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int main(int, char**); | 
					
						
							| 
									
										
										
										
											2018-10-22 14:06:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-25 12:06:00 +02:00
										 |  |  | int errno; | 
					
						
							| 
									
										
										
										
											2018-10-31 17:50:43 +01:00
										 |  |  | char** environ; | 
					
						
							| 
									
										
										
										
											2019-02-26 15:57:59 +01:00
										 |  |  | //bool __environ_is_malloced;
 | 
					
						
							| 
									
										
										
										
											2018-10-31 17:50:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-27 12:48:21 +01:00
										 |  |  | void __libc_init() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     void __malloc_init(); | 
					
						
							|  |  |  |     __malloc_init(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void __stdio_init(); | 
					
						
							|  |  |  |     __stdio_init(); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2018-10-25 12:06:00 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-22 01:55:22 +01:00
										 |  |  | int _start(int argc, char** argv, char** env) | 
					
						
							| 
									
										
										
										
											2018-10-22 14:06:22 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2019-02-22 01:55:22 +01:00
										 |  |  |     environ = env; | 
					
						
							| 
									
										
										
										
											2019-02-26 15:57:59 +01:00
										 |  |  |     //__environ_is_malloced = false;
 | 
					
						
							| 
									
										
										
										
											2018-10-31 02:09:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-27 12:48:21 +01:00
										 |  |  |     __libc_init(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     extern void _init(); | 
					
						
							|  |  |  |     _init(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     extern void (*__init_array_start[])(int, char**, char**) __attribute__((visibility("hidden"))); | 
					
						
							|  |  |  |     extern void (*__init_array_end[])(int, char**, char**) __attribute__((visibility("hidden"))); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const size_t size = __init_array_end - __init_array_start; | 
					
						
							|  |  |  |     for (size_t i = 0; i < size; i++) | 
					
						
							|  |  |  |         (*__init_array_start[i])(argc, argv, env); | 
					
						
							| 
									
										
										
										
											2018-11-08 11:37:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-22 01:55:22 +01:00
										 |  |  |     int status = main(argc, argv); | 
					
						
							| 
									
										
										
										
											2018-10-31 17:50:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-10 00:56:10 +01:00
										 |  |  |     fflush(stdout); | 
					
						
							|  |  |  |     fflush(stderr); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-22 09:21:54 +01:00
										 |  |  |     exit(status); | 
					
						
							| 
									
										
										
										
											2018-10-22 14:06:22 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return 20150614; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2019-02-10 11:07:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-15 12:30:48 +01:00
										 |  |  | [[noreturn]] void __cxa_pure_virtual() | 
					
						
							| 
									
										
										
										
											2019-02-10 11:07:13 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2019-04-23 21:52:02 +02:00
										 |  |  |     ASSERT_NOT_REACHED(); | 
					
						
							| 
									
										
										
										
											2019-02-10 11:07:13 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2019-02-15 12:30:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-27 12:48:21 +01:00
										 |  |  | void __cxa_atexit() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-15 12:30:48 +01:00
										 |  |  | } |