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

Message ID 1434749378-8578-1-git-send-email-cchemparathy@ezchip.com (mailing list archive)
State Rejected, archived
Headers

Commit Message

Cyril Chemparathy June 19, 2015, 9:29 p.m. UTC
  From: Cyril Chemparathy <cchemparathy@tilera.com>

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. :-)

Change-Id: I499e591e1b7d71df751fd40d1fdcbe6975eeeb27
Signed-off-by: Cyril Chemparathy <cchemparathy@ezchip.com>
---
 mk/toolchain/gcc/rte.vars.mk | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Sergio Gonzalez Monroy June 22, 2015, 7:44 a.m. UTC | #1
On 19/06/2015 22:29, Cyril Chemparathy wrote:
> From: Cyril Chemparathy <cchemparathy@tilera.com>
>
> 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. :-)
>
> Change-Id: I499e591e1b7d71df751fd40d1fdcbe6975eeeb27
> Signed-off-by: Cyril Chemparathy <cchemparathy@ezchip.com>
> ---
>   mk/toolchain/gcc/rte.vars.mk | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
> index 0f51c66..22c4c1f 100644
> --- a/mk/toolchain/gcc/rte.vars.mk
> +++ b/mk/toolchain/gcc/rte.vars.mk
> @@ -71,6 +71,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
I don't think you need to modify the makefiles and introduce a new 
compile time option for this.
The same result can be easily achieved by setting EXTRA_CFLAGS in the 
command line. ie:
     $ make install T=x86_64-native-linuxapp-gcc EXTRA_CFLAGS='-g -ggdb'

Sergio
  
Simon Kagstrom June 22, 2015, 7:56 a.m. UTC | #2
On 2015-06-22 09:44, Gonzalez Monroy, Sergio wrote:
> On 19/06/2015 22:29, Cyril Chemparathy wrote:
>> From: Cyril Chemparathy <cchemparathy@tilera.com>
>>
>> It is often useful to build with debug enabled, we add a config
>> (CONFIG_RTE_TOOLCHAIN_DEBUG) to do so.
>>
>>   +ifeq ($(CONFIG_RTE_TOOLCHAIN_DEBUG),y)
>> +TOOLCHAIN_CFLAGS += -g -ggdb
>> +TOOLCHAIN_LDFLAGS += -g -ggdb
>> +endif

> I don't think you need to modify the makefiles and introduce a new
> compile time option for this.
> The same result can be easily achieved by setting EXTRA_CFLAGS in the
> command line. ie:
>     $ make install T=x86_64-native-linuxapp-gcc EXTRA_CFLAGS='-g -ggdb'

Why isn't -g standard though? The binaries should/will anyhow be
stripped when used for production - but debugging information should be
useful when analysing crashes.

// Simon
  
Cyril Chemparathy June 22, 2015, 4:41 p.m. UTC | #3
On Mon, 22 Jun 2015 08:44:41 +0100
"Gonzalez Monroy, Sergio" <sergio.gonzalez.monroy@intel.com> wrote:

> I don't think you need to modify the makefiles and introduce a new 
> compile time option for this.
> The same result can be easily achieved by setting EXTRA_CFLAGS in the 
> command line. ie:
>      $ make install T=x86_64-native-linuxapp-gcc EXTRA_CFLAGS='-g
> -ggdb'

Fair enough.  Please ignore this patch then.  Thanks!
  
Sergio Gonzalez Monroy June 23, 2015, 7:39 a.m. UTC | #4
On 22/06/2015 08:56, Simon Kågström wrote:
> On 2015-06-22 09:44, Gonzalez Monroy, Sergio wrote:
>> On 19/06/2015 22:29, Cyril Chemparathy wrote:
>>> From: Cyril Chemparathy <cchemparathy@tilera.com>
>>>
>>> It is often useful to build with debug enabled, we add a config
>>> (CONFIG_RTE_TOOLCHAIN_DEBUG) to do so.
>>>
>>>    +ifeq ($(CONFIG_RTE_TOOLCHAIN_DEBUG),y)
>>> +TOOLCHAIN_CFLAGS += -g -ggdb
>>> +TOOLCHAIN_LDFLAGS += -g -ggdb
>>> +endif
>> I don't think you need to modify the makefiles and introduce a new
>> compile time option for this.
>> The same result can be easily achieved by setting EXTRA_CFLAGS in the
>> command line. ie:
>>      $ make install T=x86_64-native-linuxapp-gcc EXTRA_CFLAGS='-g -ggdb'
> Why isn't -g standard though? The binaries should/will anyhow be
> stripped when used for production - but debugging information should be
> useful when analysing crashes.
I guess you could argue that, to always build with debug info then strip 
it down.
You would need another flag to strip debug info for production, or leave 
it for debugging.

In my opinion is not worth it, but it you feel strongly about it you can 
submit patches and
let the community decide.

Sergio
> // Simon
>
  
Thomas Monjalon June 23, 2015, 7:47 a.m. UTC | #5
2015-06-23 08:39, Gonzalez Monroy, Sergio:
> On 22/06/2015 08:56, Simon Kågström wrote:
> > On 2015-06-22 09:44, Gonzalez Monroy, Sergio wrote:
> >> On 19/06/2015 22:29, Cyril Chemparathy wrote:
> >>> From: Cyril Chemparathy <cchemparathy@tilera.com>
> >>>
> >>> It is often useful to build with debug enabled, we add a config
> >>> (CONFIG_RTE_TOOLCHAIN_DEBUG) to do so.
> >>>
> >>>    +ifeq ($(CONFIG_RTE_TOOLCHAIN_DEBUG),y)
> >>> +TOOLCHAIN_CFLAGS += -g -ggdb
> >>> +TOOLCHAIN_LDFLAGS += -g -ggdb
> >>> +endif
> >> I don't think you need to modify the makefiles and introduce a new
> >> compile time option for this.
> >> The same result can be easily achieved by setting EXTRA_CFLAGS in the
> >> command line. ie:
> >>      $ make install T=x86_64-native-linuxapp-gcc EXTRA_CFLAGS='-g -ggdb'
> > Why isn't -g standard though? The binaries should/will anyhow be
> > stripped when used for production - but debugging information should be
> > useful when analysing crashes.
> 
> I guess you could argue that, to always build with debug info then strip 
> it down.
> You would need another flag to strip debug info for production, or leave 
> it for debugging.
> 
> In my opinion is not worth it, but it you feel strongly about it you can 
> submit patches and
> let the community decide.

I think stripping is a packaging responsibility.
It would be a good idea to always provide debugging symbols.
  
Simon Kagstrom June 23, 2015, 10:08 a.m. UTC | #6
On 2015-06-23 09:47, Thomas Monjalon wrote:
> 2015-06-23 08:39, Gonzalez Monroy, Sergio:
>> I guess you could argue that, to always build with debug info then strip 
>> it down.
>> You would need another flag to strip debug info for production, or leave 
>> it for debugging.
>>
>> In my opinion is not worth it, but it you feel strongly about it you can 
>> submit patches and
>> let the community decide.
> 
> I think stripping is a packaging responsibility.
> It would be a good idea to always provide debugging symbols.

Yes, I think this would be the best way too, and should be pretty much
standard procedure.

DPDK is anyhow just a library - stripping should be up to the
application / packaging to do.

// Simon
  

Patch

diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
index 0f51c66..22c4c1f 100644
--- a/mk/toolchain/gcc/rte.vars.mk
+++ b/mk/toolchain/gcc/rte.vars.mk
@@ -71,6 +71,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