[OE-core] [PATCH] Disable building libgcc with -O0

Phil Blundell pb at pbcl.net
Wed Nov 13 07:44:38 UTC 2013


On Wed, Nov 13, 2013 at 11:02:36AM +0800, Lei Liu wrote:
> On 2013年11月13日 07:58, Phil Blundell wrote:
> > On Mon, 2013-11-11 at 12:30 +0800, Lei Liu wrote:
> >> +def get_optimization(d):
> >> +    selected_optimization = d.getVar("SELECTED_OPTIMIZATION", True)
> >> +    if base_contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x":
> >> +        bb.note("libgcc can't be built with -O0, -O2 will be used instead.")
> >> +        return selected_optimization.replace("-O0", "-O2")
> >> +    return selected_optimization
> >> +
> >> +SELECTED_OPTIMIZATION := "${@get_optimization(d)}"
> > Do we really need a Python function for this?  It seems like a rather
> > heavyweight mechanism to detect what is basically just a distro
> > misconfiguration.
> 
> The python function is copied from eglibc recipe which does similar
> job to force build the package with optimization enabled.  I think
> it's not just a distro misconfiguration.  Sometimes it would be
> convenient for user to select a global -O0 optimization level (to
> create a more debug-friendly rootfs) for most packages, while
> automatically switching to -O2 for those which can't be built without
> optimizations.

Sometimes, perhaps, but automatically switching seems to violate the 
principle of least surprise.  If I've set CFLAGS to "-O0" in my distro 
configuration then that's what I would expect the recipes to be using.  
I would not expect random recipes to start second-guessing me and 
selecting different CFLAGS.

If I wanted to build libgcc with -O but everything else with -O0 then 
that's easy enough to achieve:

SELECTED_OPTIMIZATION = "-O0"
SELECTED_OPTIMIZATION_libgcc = "-O"

or whatever.

p.



More information about the Openembedded-core mailing list