diff options
Diffstat (limited to 'libgcc/libgcov-interface.c')
-rw-r--r-- | libgcc/libgcov-interface.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libgcc/libgcov-interface.c b/libgcc/libgcov-interface.c index f73666c..76d3f97 100644 --- a/libgcc/libgcov-interface.c +++ b/libgcc/libgcov-interface.c @@ -42,6 +42,12 @@ void __gcov_dump (void) {} #else + +/* Some functions we want to bind in this dynamic object, but have an + overridable global alias. */ +#define STRONG_ALIAS(src,dst) \ + extern __typeof (src) dst __attribute__((alias (#src))) + extern __gthread_mutex_t __gcov_flush_mx ATTRIBUTE_HIDDEN; extern __gthread_mutex_t __gcov_flush_mx ATTRIBUTE_HIDDEN; @@ -77,7 +83,7 @@ __gcov_flush (void) __gthread_mutex_lock (&__gcov_flush_mx); __gcov_dump_one (&__gcov_root); - __gcov_reset (); + __gcov_reset_int (); __gthread_mutex_unlock (&__gcov_flush_mx); } @@ -121,12 +127,14 @@ gcov_clear (const struct gcov_info *list) in order to collect profile in region of interest. */ void -__gcov_reset (void) +__gcov_reset_int (void) { gcov_clear (__gcov_root.list); __gcov_root.dumped = 0; } +STRONG_ALIAS (__gcov_reset_int, __gcov_reset); + #endif /* L_gcov_reset */ #ifdef L_gcov_dump |