Sun Feb 18 14:08:04 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>

* csu/initfini.c (_init): Remove bogus volatile declarations and
	extra variable, take the address of __gmon_start__ only implicitly
	to avoid the test being optimized out.
This commit is contained in:
Roland McGrath 1996-02-19 23:25:15 +00:00
parent bfc04a9ff1
commit 0ddc0d1604
2 changed files with 9 additions and 6 deletions

View File

@ -1,3 +1,9 @@
Sun Feb 18 14:08:04 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* csu/initfini.c (_init): Remove bogus volatile declarations and
extra variable, take the address of __gmon_start__ only implicitly
to avoid the test being optimized out.
Sun Feb 18 15:08:10 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> Sun Feb 18 15:08:10 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/posix/utimes.c (__utimes): There are 1000000 usecs in a * sysdeps/posix/utimes.c (__utimes): There are 1000000 usecs in a

View File

@ -70,13 +70,10 @@ _init (void)
gcrt1.o to reference a symbol which would be defined by some library gcrt1.o to reference a symbol which would be defined by some library
module which has a constructor; but then user code's constructors module which has a constructor; but then user code's constructors
would come first, and not be profiled. */ would come first, and not be profiled. */
extern volatile void __gmon_start__ (void) __attribute__ ((weak)); extern void __gmon_start__ (void) __attribute__ ((weak));
/* This volatile variable is necessary to avoid GCC optimizing
out the test. */
register volatile void (*g) (void) = &__gmon_start__;
weak_symbol (__gmon_start__) weak_symbol (__gmon_start__)
if (g) if (__gmon_start__)
(*g) (); __gmon_start__ ();
/* End the here document containing the .init prologue code. /* End the here document containing the .init prologue code.
Then fetch the .section directive just written and append that Then fetch the .section directive just written and append that