From 2119c7059e593c336a916ca542583b0da7222960 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 Sep 2000 08:14:03 +0000 Subject: Update. 2000-09-10 Ulrich Drepper * 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 . * sysdeps/i386/i486/bits/string.h: Pretty printing. --- sysdeps/generic/initfini.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) (limited to 'sysdeps/generic') diff --git a/sysdeps/generic/initfini.c b/sysdeps/generic/initfini.c index 4c43941..836d606 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*/"); -- cgit v1.1