diff --git a/pthread_init.c b/pthread_init.c
index 316edfe11c642b5727d743016d718d377f21f564..f9192f7293d086836316f0afce8aedc16b018ec4 100644
--- a/pthread_init.c
+++ b/pthread_init.c
@@ -46,6 +46,8 @@
 #include "pthread.h"
 #include "implement.h"
 
+int (*pthread_init_ptr)(void) __attribute__ ((section (".init_array"))) = &pthread_init;
+
 int pthread_init(void)
 {
 
diff --git a/pthread_terminate.c b/pthread_terminate.c
index a58961296646c072ceff185fc547123cccd10d4d..1a7520d4025a5cd1220d290987aad37567019f53 100644
--- a/pthread_terminate.c
+++ b/pthread_terminate.c
@@ -46,6 +46,7 @@
 #include "pthread.h"
 #include "implement.h"
 
+void (*pthread_terminate_ptr)(void) __attribute__ ((section (".fini_array"))) = &pthread_terminate;
 
 void pthread_terminate(void)
 {