[dpdk-dev] mk: add debug target

Message ID 20171216001350.90436-1-ferruh.yigit@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ferruh Yigit Dec. 16, 2017, 12:13 a.m. UTC
  Add "debug" target to build library with debug symbols and optimization
disabled.

This is shortcut for exiting method to compile with
EXTRA_CFLAGS="-O0 -g3"

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 doc/build-sdk-quick.txt | 1 +
 mk/rte.sdkroot.mk       | 4 ++++
 2 files changed, 5 insertions(+)
  

Comments

Thomas Monjalon Jan. 30, 2018, 11:40 p.m. UTC | #1
16/12/2017 01:13, Ferruh Yigit:
> Add "debug" target to build library with debug symbols and optimization
> disabled.
> 
> This is shortcut for exiting method to compile with
> EXTRA_CFLAGS="-O0 -g3"
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> +	debug            build library with debug symbols
[...]
> +.PHONY: debug
> +debug:
> +	$(Q)$(MAKE) EXTRA_CFLAGS="-O0 -g3"

This target will override any EXTRA_CFLAGS,
so we cannot build in debug mode with more extra cflags this way.

I think the cons are higher than the pros.
  
Ferruh Yigit Feb. 1, 2018, 5:04 p.m. UTC | #2
On 1/30/2018 11:40 PM, Thomas Monjalon wrote:
> 16/12/2017 01:13, Ferruh Yigit:
>> Add "debug" target to build library with debug symbols and optimization
>> disabled.
>>
>> This is shortcut for exiting method to compile with
>> EXTRA_CFLAGS="-O0 -g3"
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> +	debug            build library with debug symbols
> [...]
>> +.PHONY: debug
>> +debug:
>> +	$(Q)$(MAKE) EXTRA_CFLAGS="-O0 -g3"
> 
> This target will override any EXTRA_CFLAGS,
> so we cannot build in debug mode with more extra cflags this way.

How about EXTRA_CFLAGS+="-O0 -g3"
which is not override EXTRA_CFLAGS but merge them, can be ok?

> 
> I think the cons are higher than the pros.
>
  
Thomas Monjalon Feb. 2, 2018, 9:07 a.m. UTC | #3
01/02/2018 18:04, Ferruh Yigit:
> On 1/30/2018 11:40 PM, Thomas Monjalon wrote:
> > 16/12/2017 01:13, Ferruh Yigit:
> >> Add "debug" target to build library with debug symbols and optimization
> >> disabled.
> >>
> >> This is shortcut for exiting method to compile with
> >> EXTRA_CFLAGS="-O0 -g3"
> >>
> >> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >> ---
> >> +	debug            build library with debug symbols
> > [...]
> >> +.PHONY: debug
> >> +debug:
> >> +	$(Q)$(MAKE) EXTRA_CFLAGS="-O0 -g3"
> > 
> > This target will override any EXTRA_CFLAGS,
> > so we cannot build in debug mode with more extra cflags this way.
> 
> How about EXTRA_CFLAGS+="-O0 -g3"
> which is not override EXTRA_CFLAGS but merge them, can be ok?

I am not sure it works. Have you tested?
  
Olivier Matz Feb. 5, 2018, 9:23 a.m. UTC | #4
On Fri, Feb 02, 2018 at 10:07:31AM +0100, Thomas Monjalon wrote:
> 01/02/2018 18:04, Ferruh Yigit:
> > On 1/30/2018 11:40 PM, Thomas Monjalon wrote:
> > > 16/12/2017 01:13, Ferruh Yigit:
> > >> Add "debug" target to build library with debug symbols and optimization
> > >> disabled.
> > >>
> > >> This is shortcut for exiting method to compile with
> > >> EXTRA_CFLAGS="-O0 -g3"
> > >>
> > >> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > >> ---
> > >> +	debug            build library with debug symbols
> > > [...]
> > >> +.PHONY: debug
> > >> +debug:
> > >> +	$(Q)$(MAKE) EXTRA_CFLAGS="-O0 -g3"
> > > 
> > > This target will override any EXTRA_CFLAGS,
> > > so we cannot build in debug mode with more extra cflags this way.
> > 
> > How about EXTRA_CFLAGS+="-O0 -g3"
> > which is not override EXTRA_CFLAGS but merge them, can be ok?
> 
> I am not sure it works. Have you tested?

Instead of adding a new target, what about, having:

  make DEBUG=1

The DEBUG variable could be used by the rte.*.mk to set the specific
flags, before the EXTRA_* flags.
  

Patch

diff --git a/doc/build-sdk-quick.txt b/doc/build-sdk-quick.txt
index ff297806a..619430e1b 100644
--- a/doc/build-sdk-quick.txt
+++ b/doc/build-sdk-quick.txt
@@ -7,6 +7,7 @@  Build commands
 	defconfig        auto-select target template based on arch, OS, etc.
 	all              same as build (default rule)
 	build            build in a configured directory
+	debug            build library with debug symbols
 	clean            remove files but keep configuration
 	install T=       configure, build and install a target in DESTDIR
 	install          install optionally staged in DESTDIR
diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk
index e2e3effa8..c55680420 100644
--- a/mk/rte.sdkroot.mk
+++ b/mk/rte.sdkroot.mk
@@ -123,6 +123,10 @@  gcov gcovclean:
 examples examples_clean:
 	$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkexamples.mk $@
 
+.PHONY: debug
+debug:
+	$(Q)$(MAKE) EXTRA_CFLAGS="-O0 -g3"
+
 # all other build targets
 %:
 	$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk checkconfig