[dpdk-dev] [PATCH] mk: add support for gdb debug info generation

Marc Sune marc.sune at bisdn.de
Sun Feb 22 12:51:28 CET 2015


I don't like the proposed patch, but I am recovering this old thread 
because I agree on the problem statement.

On 04/04/14 11:57, Ananyev, Konstantin wrote:
> Hi Cyril,
> We already do have 'EXTRA_CFLAGS' and 'EXTRA_LDFLAGS' that you can use to enable debug, or any other compiler/linker options you need.
> Wonder, why that is not enough?

EXTRA_FLAGS var affects all the DPDK libraries. I was wondering why 
setting individually:

diff --git a/config/common_linuxapp b/config/common_linuxapp
index 2f9643b..04adc0d 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -127,7 +127,7 @@ CONFIG_RTE_LIBRTE_KVARGS=y
  # Compile generic ethernet library
  #
  CONFIG_RTE_LIBRTE_ETHER=y
-CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
+CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=y


to put an example, does not set -g and -O0 in that particular module 
only. No one would ever use something compiled in DEBUG in production 
anyway.

I always end up modifying manually Makefiles in the lib library that I 
am interested in having insides, overriding CFLAGS=-O3, which is not 
that nice.

Marc

> Thanks
> Konstantin
>
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Cyril Chemparathy
> Sent: Thursday, April 03, 2014 6:31 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH] mk: add support for gdb debug info generation
>
> It is often useful to build with debug enabled, we add a config
> (CONFIG_RTE_TOOLCHAIN_DEBUG) to do so.
>
> Note: This patch does not include corresponding changes for ICC.  The author pleads abject ignorance in this regard, and welcomes recommendations. :-)
>
> Signed-off-by: Cyril Chemparathy <cchemparathy at tilera.com>
> ---
>   config/defconfig_x86_64-default-linuxapp-gcc | 1 +
>   mk/toolchain/gcc/rte.vars.mk                 | 5 +++++
>   2 files changed, 6 insertions(+)
>
> diff --git a/config/defconfig_x86_64-default-linuxapp-gcc b/config/defconfig_x86_64-default-linuxapp-gcc
> index f11ffbf..3b36efd 100644
> --- a/config/defconfig_x86_64-default-linuxapp-gcc
> +++ b/config/defconfig_x86_64-default-linuxapp-gcc
> @@ -67,6 +67,7 @@ CONFIG_RTE_ARCH_X86_64=y  #  CONFIG_RTE_TOOLCHAIN="gcc"
>   CONFIG_RTE_TOOLCHAIN_GCC=y
> +CONFIG_RTE_TOOLCHAIN_DEBUG=n
>   
>   #
>   # Use intrinsics or assembly code for key routines diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk index 0edb93f..81ed3fa 100644
> --- a/mk/toolchain/gcc/rte.vars.mk
> +++ b/mk/toolchain/gcc/rte.vars.mk
> @@ -68,6 +68,11 @@ ifeq (,$(findstring -O0,$(EXTRA_CFLAGS)))  endif  endif
>   
> +ifeq ($(CONFIG_RTE_TOOLCHAIN_DEBUG),y)
> +TOOLCHAIN_CFLAGS += -g -ggdb
> +TOOLCHAIN_LDFLAGS += -g -ggdb
> +endif
> +
>   WERROR_FLAGS := -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes  WERROR_FLAGS += -Wmissing-declarations -Wold-style-definition -Wpointer-arith  WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual
> --
> 1.8.3.1
>



More information about the dev mailing list