aboutsummaryrefslogtreecommitdiff
path: root/csu/initfini.c
diff options
context:
space:
mode:
Diffstat (limited to 'csu/initfini.c')
-rw-r--r--csu/initfini.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/csu/initfini.c b/csu/initfini.c
index 1f74f20..c68a5cf 100644
--- a/csu/initfini.c
+++ b/csu/initfini.c
@@ -73,7 +73,12 @@ _init (void)
would come first, and not be profiled. */
extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/
+#ifndef WEAK_GMON_START
__gmon_start__ ();
+#else
+ if (__gmon_start__)
+ __gmon_start__ ();
+#endif
asm ("ALIGN");
asm("END_INIT");
@@ -83,6 +88,7 @@ _init (void)
SECTION(".init");
}
asm ("END_INIT");
+#ifndef WEAK_GMON_START
SECTION(".text");
/* This version of __gmon_start__ is used if no other is found. By providing
@@ -94,6 +100,7 @@ __gmon_start__ (void)
{
/* do nothing */
}
+#endif
/* End of the _init epilog, beginning of the _fini prolog. */
asm ("\n/*@_init_EPILOG_ENDS*/");