[CRIU] [PATCH] Add ability to compile program with gprof output
Andrew Vagin
avagin at parallels.com
Tue Feb 18 05:05:19 PST 2014
On Fri, Feb 07, 2014 at 08:46:45PM +0400, Cyrill Gorcunov wrote:
> To be able to profile CRIU with gprof support we need a special flag
> passed to the compiler and linker. But same time we can't build parasite
> code with prof support because it'll call for mcount() service routine
> for which we don't have any stub yet (and even if we had there are
> other tech details involved). Thus PIE code won't be profiled.
>
> To compile with prof support make it as
>
> make DEBUG=1 GMON=1
Could you describe how to get something useful from this in the commit message?
>
> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
> ---
> Makefile | 7 ++++++-
> pie/Makefile | 8 ++++++++
> 2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index f8ee59a6af4a..41748f188e97 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -100,6 +100,11 @@ else
> CFLAGS += -O2
> endif
>
> +ifeq ($(GMON),1)
> + CFLAGS += -pg
> + GMONLDOPT = -pg
> +endif
> +
> CFLAGS += $(WARNINGS) $(DEFINES)
> SYSCALL-LIB := arch/$(ARCH)/syscalls.built-in.o
> ARCH-LIB := arch/$(ARCH)/crtools.built-in.o
> @@ -167,7 +172,7 @@ PROGRAM-BUILTINS += $(ARCH_DIR)/vdso-pie.o
>
> $(PROGRAM): $(SYSCALL-LIB) $(ARCH-LIB) $(PROGRAM-BUILTINS)
> $(E) " LINK " $@
> - $(Q) $(CC) $(CFLAGS) $^ $(LIBS) $(LDFLAGS) -rdynamic -o $@
> + $(Q) $(CC) $(CFLAGS) $^ $(LIBS) $(LDFLAGS) $(GMONLDOPT) -rdynamic -o $@
>
> zdtm: all
> $(Q) $(MAKE) -C test/zdtm all
> diff --git a/pie/Makefile b/pie/Makefile
> index dbe6d6bba8a8..c7cf76289d25 100644
> --- a/pie/Makefile
> +++ b/pie/Makefile
> @@ -14,6 +14,14 @@ restorer-obj-e += $(ARCH_DIR)/restorer.o
> restorer-obj-e += $(ARCH_DIR)/vdso-pie.o
> restorer-libs-e += $(SYSCALL-LIB)
>
> +#
> +# We can't provide proper mount implementation
> +# in parasite code -- it requires run-time rellocation
> +# applications, which is not the target of the
> +# project.
> +#
> +CFLAGS := $(filter-out -pg,$(CFLAGS))
> +
> cflags-y += -DCR_NOGLIBC -fpie -Wa,--noexecstack -fno-stack-protector
> ifeq ($(ARCH), arm)
> cflags-y += -marm
> --
> 1.8.3.1
>
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
More information about the CRIU
mailing list