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. _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core