summary refs log tree commit diff
path: root/csu/Makefile
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-09-26 20:59:38 +0000
committerRoland McGrath <roland@gnu.org>1995-09-26 20:59:38 +0000
commit11c981a96d93feccba7cfb717f72db5d32a83f52 (patch)
treec9e22c5e94375dff6d4334b552dd0dbc1d169efb /csu/Makefile
parente11c394911f221a862cbdec8aab4a363394711c6 (diff)
downloadglibc-11c981a96d93feccba7cfb717f72db5d32a83f52.tar.gz
glibc-11c981a96d93feccba7cfb717f72db5d32a83f52.tar.xz
glibc-11c981a96d93feccba7cfb717f72db5d32a83f52.zip
Tue Sep 26 16:50:17 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
	* gmon: New directory of profiling code, incorporated from
	4.4BSD-Lite and modified.
	* sysdeps/i386/machine-gmon.h: New file.
	* sysdeps/stub/machine-gmon.h: New file.
	* sysdeps/mach/hurd/profil.c: New file.
	* sysdeps/stub/profil.c: New file.
	* sysdeps/unix/bsd/profil.S: New file.
	* Makefile (subdirs): Add gmon.
	* csu/gmon-start.c: New file.
	* csu/Makefile (extra-objs): Add gmon-start.o,
	g$(start-installed-name).
	(install-lib, omit-deps): Add g$(start-installed-name).
	($(objpfx)g$(start-installed-name)): New target.
Diffstat (limited to 'csu/Makefile')
-rw-r--r--csu/Makefile25
1 files changed, 17 insertions, 8 deletions
diff --git a/csu/Makefile b/csu/Makefile
index 8f97624240..4fddba2f3a 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -20,18 +20,21 @@
 
 # This directory contains the C startup code (that which calls main).  This
 # consists of the startfile, built from start.c and installed as crt0.o
-# (traditionally) or crt1.o (for ELF); and some initialization code which
-# is in the C library itself.  In ELF we also install crti.o and crtn.o,
-# special "initializer" and "finalizer" files in used in the link to make
-# the .init and .fini sections work right; both these files are built (in
-# an arcane manner) from initfini.c.
+# (traditionally) or crt1.o (for ELF).  In ELF we also install crti.o and
+# crtn.o, special "initializer" and "finalizer" files in used in the link
+# to make the .init and .fini sections work right; both these files are
+# built (in an arcane manner) from initfini.c.
 
 subdir := csu
 
 csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
-extra-objs = start.o $(start-installed-name) $(csu-dummies)
-omit-deps = $(patsubst %.o,%,$(start-installed-name) $(csu-dummies))
-install-lib = $(start-installed-name) $(csu-dummies)
+extra-objs = start.o gmon-start.o \
+	     $(start-installed-name) g$(start-installed-name) \
+	     $(csu-dummies)
+omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
+		             $(csu-dummies))
+install-lib = $(start-installed-name) g$(start-installed-name) \
+	      $(csu-dummies)
 distribute = initfini.c
 
 all: # Make this the default target; it will be defined in Rules.
@@ -95,6 +98,12 @@ $(objpfx)$(start-installed-name): $(objpfx)start.o
 	ln $< $@
 endif
 
+# The profiling startfile is made by linking together the normal
+# startfile with gmon-start.o, which defines a constructor function
+# to turn on profiling code at startup.
+$(objpfx)g$(start-installed-name): $(objpfx)start.o $(objpfx)gmon-start.o
+	$(CC) -nostdlib -nostartfiles -r -o $@ $^
+
 # These extra files are sometimes expected by system standard linking
 # procedures, but we have nothing for them to do.  So compile empty files.
 $(addprefix $(objpfx),$(filter-out $(start-installed-name),$(csu-dummies))):