]> Chaos Git - corbenik/ctrulib.git/commitdiff
Initialize light primitive system if needed
authorfincs <fincs.alt1@gmail.com>
Tue, 29 Sep 2015 22:35:01 +0000 (00:35 +0200)
committerfincs <fincs.alt1@gmail.com>
Tue, 29 Sep 2015 22:35:01 +0000 (00:35 +0200)
libctru/source/system/ctru_exit.c
libctru/source/system/initSystem.c

index a65cc4eac8417291db8394e9c4ce11a4e1ca3c16..41c5acd1bb5dfa41327628ba7786229591d5d1b5 100644 (file)
@@ -11,6 +11,8 @@ void __appExit();
 
 void __libc_fini_array(void);
 
+Result __sync_fini(void) __attribute__((weak));
+
 void __attribute__((weak)) __attribute__((noreturn)) __libctru_exit(int rc)
 {
        u32 tmp=0;
@@ -24,6 +26,9 @@ void __attribute__((weak)) __attribute__((noreturn)) __libctru_exit(int rc)
        // Close some handles
        __destroy_handle_list();
 
+       if (__sync_fini)
+               __sync_fini();
+
        // Jump to the loader if it provided a callback
        if (__system_retAddr)
                __system_retAddr();
index b0cde6cf9731c4f6f5937dc7b3bc44d85e7b72e4..98c5837e2126ab87cadf817dc11de5edfef22581 100644 (file)
@@ -18,6 +18,8 @@ void __appInit();
 void __ctru_exit(int rc);
 int __libctru_gtod(struct _reent *ptr, struct timeval *tp, struct timezone *tz);
 
+Result __sync_init(void) __attribute__((weak));
+
 void __attribute__((weak)) __libctru_init(void (*retAddr)(void))
 {
 
@@ -27,6 +29,9 @@ void __attribute__((weak)) __libctru_init(void (*retAddr)(void))
 
        __system_retAddr = __service_ptr ? retAddr : NULL;
 
+       if (__sync_init)
+               __sync_init();
+
        __system_allocateHeaps();
 
        // Build argc/argv if present