[CRIU] [PATCH] Add ability to compile program with gprof output

Andrew Vagin avagin at parallels.com
Fri Feb 21 06:05:33 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

Acked-by: Andrew Vagin <avagin at parallels.com>
> 
> 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