Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] Config.in: add -Og option
@ 2016-05-13 23:57 Martin Kelly
  2016-05-14 12:25 ` Thomas Petazzoni
  2016-05-14 22:50 ` Arnout Vandecappelle
  0 siblings, 2 replies; 6+ messages in thread
From: Martin Kelly @ 2016-05-13 23:57 UTC (permalink / raw)
  To: buildroot

-Og (introduced in GCC 4.8) lets you optimize for debugging experience,
which can be useful for when you want optimized code that is nonetheless
debuggable.

Signed-off-by: Martin Kelly <martin@surround.io>
---
 Config.in           | 11 +++++++++++
 package/Makefile.in |  3 +++
 2 files changed, 14 insertions(+)

diff --git a/Config.in b/Config.in
index b5cc892..9330de1 100644
--- a/Config.in
+++ b/Config.in
@@ -510,6 +510,17 @@ config BR2_OPTIMIZE_3
 	  and also turns on the -finline-functions, -funswitch-loops and
 	  -fgcse-after-reload options.
 
+config BR2_OPTIMIZE_g
+	bool "optimize debugging experience"
+	select BR2_HOST_GCC_AT_LEAST_4_8
+	help
+	  Optimize debugging experience. -Og enables optimizations that do not
+	  interfere with debugging. It should be the optimization level of choice for
+	  the standard edit-compile-debug cycle, offering a reasonable level of
+	  optimization while maintaining fast compilation and a good debugging
+	  experience. If you use multiple -O options, with or without level numbers,
+	  the last such option is the one that is effective.
+
 config BR2_OPTIMIZE_S
 	bool "optimize for size"
 	help
diff --git a/package/Makefile.in b/package/Makefile.in
index 616bdd0..2d6ff89 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -122,6 +122,9 @@ endif
 ifeq ($(BR2_OPTIMIZE_3),y)
 TARGET_OPTIMIZATION = -O3
 endif
+ifeq ($(BR2_OPTIMIZE_g),y)
+TARGET_OPTIMIZATION = -Og
+endif
 ifeq ($(BR2_OPTIMIZE_S),y)
 TARGET_OPTIMIZATION = -Os
 endif
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] Config.in: add -Og option
  2016-05-13 23:57 [Buildroot] [PATCH] Config.in: add -Og option Martin Kelly
@ 2016-05-14 12:25 ` Thomas Petazzoni
  2016-05-16 23:36   ` Martin Kelly
  2016-05-14 22:50 ` Arnout Vandecappelle
  1 sibling, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2016-05-14 12:25 UTC (permalink / raw)
  To: buildroot

Hello,

On Fri, 13 May 2016 16:57:06 -0700, Martin Kelly wrote:
> -Og (introduced in GCC 4.8) lets you optimize for debugging experience,
> which can be useful for when you want optimized code that is nonetheless
> debuggable.
> 
> Signed-off-by: Martin Kelly <martin@surround.io>

Thanks for submitting this patch. I had never heard of -Og, but it
seems like a useful addition.

> +config BR2_OPTIMIZE_g
> +	bool "optimize debugging experience"
> +	select BR2_HOST_GCC_AT_LEAST_4_8

select? You can't select an option such as BR2_HOST_GCC_AT_LEAST_4_8.
How could Buildroot *force* the host machine to have gcc >= 4.8 ?

In addition, using BR2_HOST_GCC_AT_LEAST_4_8 is wrong here: what we
care about is the version of the *target* compiler, not the version of
the host compiler.

So this line should instead be:

	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8

> +	help
> +	  Optimize debugging experience. -Og enables optimizations that do not
> +	  interfere with debugging. It should be the optimization level of choice for
> +	  the standard edit-compile-debug cycle, offering a reasonable level of
> +	  optimization while maintaining fast compilation and a good debugging
> +	  experience. If you use multiple -O options, with or without level numbers,
> +	  the last such option is the one that is effective.

I believe some of those lines are too long. They should have a maximum
length of 72 characters.

Would you mind reworking your patch to address those two issues and
sending an updated version?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] Config.in: add -Og option
  2016-05-13 23:57 [Buildroot] [PATCH] Config.in: add -Og option Martin Kelly
  2016-05-14 12:25 ` Thomas Petazzoni
@ 2016-05-14 22:50 ` Arnout Vandecappelle
  2016-05-16 23:37   ` Martin Kelly
  1 sibling, 1 reply; 6+ messages in thread
From: Arnout Vandecappelle @ 2016-05-14 22:50 UTC (permalink / raw)
  To: buildroot

  Hi Martin,

  In addition to Thomas's comments, I'd like to reword the help text a little.


On 05/14/16 01:57, Martin Kelly wrote:
> -Og (introduced in GCC 4.8) lets you optimize for debugging experience,
> which can be useful for when you want optimized code that is nonetheless
> debuggable.
>
> Signed-off-by: Martin Kelly <martin@surround.io>
> ---
>  Config.in           | 11 +++++++++++
>  package/Makefile.in |  3 +++
>  2 files changed, 14 insertions(+)
>
> diff --git a/Config.in b/Config.in
> index b5cc892..9330de1 100644
> --- a/Config.in
> +++ b/Config.in
> @@ -510,6 +510,17 @@ config BR2_OPTIMIZE_3
>  	  and also turns on the -finline-functions, -funswitch-loops and
>  	  -fgcse-after-reload options.
>
> +config BR2_OPTIMIZE_g
> +	bool "optimize debugging experience"

	bool "optimize for debugging"

> +	select BR2_HOST_GCC_AT_LEAST_4_8
> +	help
> +	  Optimize debugging experience. -Og enables optimizations that do not
> +	  interfere with debugging. It should be the optimization level of choice for
> +	  the standard edit-compile-debug cycle, offering a reasonable level of
> +	  optimization while maintaining fast compilation and a good debugging
> +	  experience. If you use multiple -O options, with or without level numbers,
> +	  the last such option is the one that is effective.

  The last sentence doesn't fit here. So:

	  Optimize for debugging. This enables optimizations that do not
	  interfere with debugging. It should be the optimisation level of
	  choice for the standard edit-compile-debug cycle, offering a
	  reasonable level of optimization while maintaining fast compilation
	  and a good debugging experience.


  Regards,
  Arnout

> +
>  config BR2_OPTIMIZE_S
>  	bool "optimize for size"
>  	help
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 616bdd0..2d6ff89 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -122,6 +122,9 @@ endif
>  ifeq ($(BR2_OPTIMIZE_3),y)
>  TARGET_OPTIMIZATION = -O3
>  endif
> +ifeq ($(BR2_OPTIMIZE_g),y)
> +TARGET_OPTIMIZATION = -Og
> +endif
>  ifeq ($(BR2_OPTIMIZE_S),y)
>  TARGET_OPTIMIZATION = -Os
>  endif
>


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] Config.in: add -Og option
  2016-05-14 12:25 ` Thomas Petazzoni
@ 2016-05-16 23:36   ` Martin Kelly
  2016-05-17 23:54     ` Martin Kelly
  0 siblings, 1 reply; 6+ messages in thread
From: Martin Kelly @ 2016-05-16 23:36 UTC (permalink / raw)
  To: buildroot

On 05/14/2016 05:25 AM, Thomas Petazzoni wrote:
> Hello,
>
> On Fri, 13 May 2016 16:57:06 -0700, Martin Kelly wrote:
>> -Og (introduced in GCC 4.8) lets you optimize for debugging experience,
>> which can be useful for when you want optimized code that is nonetheless
>> debuggable.
>>
>> Signed-off-by: Martin Kelly <martin@surround.io>
>
> Thanks for submitting this patch. I had never heard of -Og, but it
> seems like a useful addition.
>
>> +config BR2_OPTIMIZE_g
>> +	bool "optimize debugging experience"
>> +	select BR2_HOST_GCC_AT_LEAST_4_8
>
> select? You can't select an option such as BR2_HOST_GCC_AT_LEAST_4_8.
> How could Buildroot *force* the host machine to have gcc >= 4.8 ?
>
> In addition, using BR2_HOST_GCC_AT_LEAST_4_8 is wrong here: what we
> care about is the version of the *target* compiler, not the version of
> the host compiler.
>
> So this line should instead be:
>
> 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
>

Thanks, I agree. I wasn't sure whether to use select or depends. In 
hindsight, I should have checked, but I'll fix up the patch and send a 
revision.

>> +	help
>> +	  Optimize debugging experience. -Og enables optimizations that do not
>> +	  interfere with debugging. It should be the optimization level of choice for
>> +	  the standard edit-compile-debug cycle, offering a reasonable level of
>> +	  optimization while maintaining fast compilation and a good debugging
>> +	  experience. If you use multiple -O options, with or without level numbers,
>> +	  the last such option is the one that is effective.
>
> I believe some of those lines are too long. They should have a maximum
> length of 72 characters.
>
> Would you mind reworking your patch to address those two issues and
> sending an updated version?
>

Got it, will do. I wrapped it to 80 lines.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] Config.in: add -Og option
  2016-05-14 22:50 ` Arnout Vandecappelle
@ 2016-05-16 23:37   ` Martin Kelly
  0 siblings, 0 replies; 6+ messages in thread
From: Martin Kelly @ 2016-05-16 23:37 UTC (permalink / raw)
  To: buildroot

On 05/14/2016 03:50 PM, Arnout Vandecappelle wrote:
>   Hi Martin,
>
>   In addition to Thomas's comments, I'd like to reword the help text a
> little.
>
>
>
>   The last sentence doesn't fit here. So:
>
>        Optimize for debugging. This enables optimizations that do not
>        interfere with debugging. It should be the optimisation level of
>        choice for the standard edit-compile-debug cycle, offering a
>        reasonable level of optimization while maintaining fast compilation
>        and a good debugging experience.
>

Your wording seems fine. Mine was just copied from the manpage :). I'll 
revise the patch to use that wording.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] Config.in: add -Og option
  2016-05-16 23:36   ` Martin Kelly
@ 2016-05-17 23:54     ` Martin Kelly
  0 siblings, 0 replies; 6+ messages in thread
From: Martin Kelly @ 2016-05-17 23:54 UTC (permalink / raw)
  To: buildroot

On 05/16/2016 04:36 PM, Martin Kelly wrote:
> On 05/14/2016 05:25 AM, Thomas Petazzoni wrote:
>> Hello,
>>
>> On Fri, 13 May 2016 16:57:06 -0700, Martin Kelly wrote:
>>> -Og (introduced in GCC 4.8) lets you optimize for debugging experience,
>>> which can be useful for when you want optimized code that is nonetheless
>>> debuggable.
>>>
>>> Signed-off-by: Martin Kelly <martin@surround.io>
>>
>> Thanks for submitting this patch. I had never heard of -Og, but it
>> seems like a useful addition.
>>
>>> +config BR2_OPTIMIZE_g
>>> +    bool "optimize debugging experience"
>>> +    select BR2_HOST_GCC_AT_LEAST_4_8
>>
>> select? You can't select an option such as BR2_HOST_GCC_AT_LEAST_4_8.
>> How could Buildroot *force* the host machine to have gcc >= 4.8 ?
>>
>> In addition, using BR2_HOST_GCC_AT_LEAST_4_8 is wrong here: what we
>> care about is the version of the *target* compiler, not the version of
>> the host compiler.
>>
>> So this line should instead be:
>>
>>     depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
>>
>
> Thanks, I agree. I wasn't sure whether to use select or depends. In
> hindsight, I should have checked, but I'll fix up the patch and send a
> revision.
>

I sent a revised patch to the list. Please tell me if you notice 
anything else to fix up.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-05-17 23:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-13 23:57 [Buildroot] [PATCH] Config.in: add -Og option Martin Kelly
2016-05-14 12:25 ` Thomas Petazzoni
2016-05-16 23:36   ` Martin Kelly
2016-05-17 23:54     ` Martin Kelly
2016-05-14 22:50 ` Arnout Vandecappelle
2016-05-16 23:37   ` Martin Kelly

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox