diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-09-10 08:14:03 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-09-10 08:14:03 +0000 |
commit | 2119c7059e593c336a916ca542583b0da7222960 (patch) | |
tree | f7fcd7084f895dead0ea43a76e2df0f316481cd9 /sysdeps/generic/initfini.c | |
parent | ada0ce8f414c34001e632c57af326458cc1917f4 (diff) | |
download | glibc-2119c7059e593c336a916ca542583b0da7222960.tar.gz glibc-2119c7059e593c336a916ca542583b0da7222960.tar.xz glibc-2119c7059e593c336a916ca542583b0da7222960.zip |
Update.
2000-09-10 Ulrich Drepper <drepper@redhat.com> * shlib-versions: Simplify libm entries. Correct a few Hurd entries. * sysdeps/generic/initfini.c: Rewrite slightly to get rid of the ugly GMON_WEAK_START hack. Patch by Philip Blundell <philb@gnu.org>. * sysdeps/i386/i486/bits/string.h: Pretty printing.
Diffstat (limited to 'sysdeps/generic/initfini.c')
-rw-r--r-- | sysdeps/generic/initfini.c | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/sysdeps/generic/initfini.c b/sysdeps/generic/initfini.c index 4c43941ad0..836d606cfd 100644 --- a/sysdeps/generic/initfini.c +++ b/sysdeps/generic/initfini.c @@ -61,6 +61,16 @@ asm ("\n/*@TESTS_END*/"); /* The beginning of _init: */ asm ("\n/*@_init_PROLOG_BEGINS*/"); +static void +call_gmon_start(void) +{ + extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/ + void (*gmon_start) (void) = __gmon_start__; + + if (gmon_start) + gmon_start (); +} + SECTION (".init"); void _init (void) @@ -71,15 +81,7 @@ _init (void) gcrt1.o to reference a symbol which would be defined by some library module which has a constructor; but then user code's constructors 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 - void (*gmon_start) (void) = __gmon_start__; - - if (gmon_start) - gmon_start (); -#endif + call_gmon_start (); asm ("ALIGN"); asm("END_INIT"); @@ -89,19 +91,6 @@ _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 - a default function we avoid the need to test whether the pointer is NULL, - which can be painful on some machines. */ - -void __attribute__ ((weak)) -__gmon_start__ (void) -{ - /* do nothing */ -} -#endif /* End of the _init epilog, beginning of the _fini prolog. */ asm ("\n/*@_init_EPILOG_ENDS*/"); |