]> git.ipfire.org Git - thirdparty/glibc.git/blame - gmon/Makefile
tst-gmon: Build with -fno-omit-frame-pointer
[thirdparty/glibc.git] / gmon / Makefile
CommitLineData
bfff8b1b 1# Copyright (C) 1995-2017 Free Software Foundation, Inc.
11c981a9
RM
2# This file is part of the GNU C Library.
3
4# The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
11c981a9
RM
8
9# The GNU C Library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2 12# Lesser General Public License for more details.
11c981a9 13
41bdb6e2 14# You should have received a copy of the GNU Lesser General Public
59ba27a6
PE
15# License along with the GNU C Library; if not, see
16# <http://www.gnu.org/licenses/>.
11c981a9
RM
17
18#
19# Sub-makefile for gmon portion of the library.
20#
21subdir := gmon
22
a5f891ac
JM
23include ../Makeconfig
24
a341068d 25headers := sys/gmon.h sys/gmon_out.h sys/profil.h
7ed87317 26routines := gmon mcount profil sprofil prof-freq
0e043598 27
6014c65d 28tests = tst-sprofil tst-gmon
9f0d7b6d
UD
29ifeq ($(build-profile),yes)
30tests += tst-profile-static
31tests-static += tst-profile-static
32
33LDFLAGS-tst-profile-static = -profile
34endif
11c981a9 35
d99d7e26
RM
36# The mcount code won't work without a frame pointer.
37CFLAGS-mcount.c := -fno-omit-frame-pointer
38
0c251257 39CFLAGS-tst-gmon.c := -fno-omit-frame-pointer -pg
6014c65d
FW
40LDFLAGS-tst-gmon := $(no-pie-ldflag)
41CRT-tst-gmon := $(csu-objpfx)gcrt1.o
42tst-gmon-ENV := GMON_OUT_PREFIX=$(objpfx)tst-gmon.data
6b11a6ad 43ifeq ($(run-built-tests),yes)
6014c65d 44tests-special += $(objpfx)tst-gmon-gprof.out
6b11a6ad 45endif
6014c65d 46
d7d06f79
UD
47include ../Rules
48
d99d7e26 49# We cannot compile mcount.c with -pg because that would
6d52618b 50# create recursive calls. Just copy the normal static object.
92777700
RM
51# On systems where `profil' is not a system call, the same
52# problem exists for the internal functions in profil.c.
53
87a07a43 54noprof := mcount $(sysdep_noprof)
92777700 55ifeq (,$(filter profil,$(unix-syscalls)))
4c48b267 56noprof += profil sprofil
92777700
RM
57endif
58
40a55d20 59$(noprof:%=$(objpfx)%.op): %.op: %.o
d99d7e26
RM
60 rm -f $@
61 ln $< $@
6014c65d
FW
62
63# GMON_OUTPUT_PREFIX only sets the output prefix. The actual file
64# name contains the PID as well.
65$(objpfx)tst-gmon.out: clean-tst-gmon-data
66clean-tst-gmon-data:
67 rm -f $(objpfx)tst-gmon.data.*
68
69$(objpfx)tst-gmon-gprof.out: tst-gmon-gprof.sh $(objpfx)tst-gmon.out
70 $(SHELL) $< $(GPROF) $(objpfx)tst-gmon $(objpfx)tst-gmon.data.* > $@; \
71 $(evaluate-test)