about summary refs log tree commit diff
path: root/gmon
diff options
context:
space:
mode:
Diffstat (limited to 'gmon')
-rw-r--r--gmon/Makefile2
-rw-r--r--gmon/mcount.c30
2 files changed, 5 insertions, 27 deletions
diff --git a/gmon/Makefile b/gmon/Makefile
index 8fd25c6258..2a5bb5f16b 100644
--- a/gmon/Makefile
+++ b/gmon/Makefile
@@ -22,7 +22,7 @@
 subdir	:= gmon
 
 headers	:= sys/gmon.h
-
+distribute := machine-gmon.h
 routines := gmon mcount profil
 
 include ../Rules
diff --git a/gmon/mcount.c b/gmon/mcount.c
index ac3584d4a5..ea60afcfb2 100644
--- a/gmon/mcount.c
+++ b/gmon/mcount.c
@@ -38,6 +38,10 @@ static char sccsid[] = "@(#)mcount.c	8.1 (Berkeley) 6/4/93";
 #include <sys/param.h>
 #include <sys/gmon.h>
 
+/* This file provides the machine-dependent definitions of the _MCOUNT_DECL
+   and MCOUNT macros.  */
+#include "machine-gmon.h"
+
 /*
  * mcount is called on entry to each function compiled with the profiling
  * switch set.  _mcount(), which is declared in a machine-dependent way
@@ -53,33 +57,9 @@ static char sccsid[] = "@(#)mcount.c	8.1 (Berkeley) 6/4/93";
  * both frompcindex and frompc.  Any reasonable, modern compiler will
  * perform this optimization.
  */
-#if 0
 _MCOUNT_DECL(frompc, selfpc)	/* _mcount; may be static, inline, etc */
 	register u_long frompc, selfpc;
-#endif
-
-/* GCC version 2 gives us a perfect magical function to get
-   just the information we need:
-     void *__builtin_return_address (unsigned int N)
-   returns the return address of the frame N frames up.  */
-
-#if __GNUC__ < 2
- #error "This file uses __builtin_return_address, a GCC 2 extension."
-#endif
-
-#include <sysdep.h>
-#ifndef NO_UNDERSCORES
-/* The asm symbols for C functions are `_function'.
-   The canonical name for the counter function is `mcount', no _.  */
-void _mcount (void) asm ("mcount");
-#endif
-
-void
-_mcount (void)
 {
-	register u_long selfpc = (u_long) __builtin_return_address (0);
-	register u_long frompc = (u_long) __builtin_return_address (1);
-
 	register u_short *frompcindex;
 	register struct tostruct *top, *prevtop;
 	register struct gmonparam *p;
@@ -195,10 +175,8 @@ overflow:
 	return;
 }
 
-#if 0				/* Obsolete with __builtin_return_address.  */
 /*
  * Actual definition of mcount function.  Defined in <machine/profile.h>,
  * which is included by <sys/gmon.h>.
  */
 MCOUNT
-#endif