From 11c981a96d93feccba7cfb717f72db5d32a83f52 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 26 Sep 1995 20:59:38 +0000 Subject: Tue Sep 26 16:50:17 1995 Roland McGrath * 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. --- csu/Makefile | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'csu/Makefile') 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))): -- cgit v1.2.3