[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