From: Hongxu Jia <hongxu.jia@windriver.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 0/4] base/bbclass: use target path to replace build ones in debugging info
Date: Fri, 29 Jan 2016 14:58:20 +0800 [thread overview]
Message-ID: <56AB0D8C.2070603@windriver.com> (raw)
In-Reply-To: <1454049630.10340.60.camel@linuxfoundation.org>
On 01/29/2016 02:40 PM, Richard Purdie wrote:
>
> I investigated this a little. When I tried your patch I saw:
>
> $ bitbake glibc -e | grep TARGET_CFLAGS=
> export TARGET_CFLAGS="
> -I/media/build1/poky/build/tmp5/sysroots/qemux86/usr/include -O2 -pipe
> -g -feliminate-unused-debug-types -fdebug-prefix
> -map=/media/build1/poky/build/tmp5/work/i586-poky
> -linux/defaultpkgname/1.0-r0/defaultpkgname-1.0=/usr/src/defaultpkgname
> -fdebug-prefix-map=/media/build1/poky/build/tmp5/work/i586-poky
> -linux/defaultpkgname/1.0-r0/defaultpkgname-1.0=/usr/src/defaultpkgname
> -gno-record-gcc-switches -fdebug-prefix
> -map=/media/build1/poky/build/tmp5/sysroots/x86_64-linux= -fdebug
> -prefix-map=/media/build1/poky/build/tmp5/sysroots/qemux86= "
>
> and then once I commented out:
>
> SELECTED_OPTIMIZATION := "${@get_optimization(d)}"
>
> in glibc.inc I see:
>
> $ bitbake glibc -e | grep TARGET_CFLAGS=
> export TARGET_CFLAGS="
> -I/media/build1/poky/build/tmp5/sysroots/qemux86/usr/include -O2 -pipe
> -g -feliminate-unused-debug-types -fdebug-prefix
> -map=/media/build1/poky/build/tmp5/work/i586-poky-linux/glibc/2.22
> -r0/build-i586-poky-linux=/usr/src/glibc -fdebug-prefix
> -map=/media/build1/poky/build/tmp5/work/i586-poky-linux/glibc/2.22
> -r0/git=/usr/src/glibc -gno-record-gcc-switches -fdebug-prefix
> -map=/media/build1/poky/build/tmp5/sysroots/x86_64-linux= -fdebug
> -prefix-map=/media/build1/poky/build/tmp5/sysroots/qemux86= "
>
> I'd much prefer to fix glibc.inc and put the entries in bitbake.conf
> than further complicate the variables unnecessarily.
>
> For example, we could do:
>
> diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
> index 17fa2d5..8e62b3a 100644
> --- a/meta/recipes-core/glibc/glibc.inc
> +++ b/meta/recipes-core/glibc/glibc.inc
> @@ -10,25 +10,20 @@ TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
>
> # glibc can't be built without optimization, if someone tries to compile an
> # entire image as -O0, we override it with -O2 here and give a note about it.
> -def get_optimization(d):
> +python () {
> selected_optimization = d.getVar("SELECTED_OPTIMIZATION", True)
> - if bb.utils.contains("SELECTED_OPTIMIZATION", "-O2", "x", "", d) == "x":
> - return selected_optimization
> - elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O", "x", "", d) == "x":
> + if bb.utils.contains("SELECTED_OPTIMIZATION", "-O", "x", "", d) == "x":
> bb.note("glibc can't be built with -O, -O -Wno-error will be used instead.")
> - return selected_optimization.replace("-O", "-O -Wno-error")
> + d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error")
> elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O0", "x", "", d) == "x":
> - bb.note("glibc can't be built with -O0, -O2 will be used instead.")
> - return selected_optimization.replace("-O0", "-O2")
> + bb.fatal("glibc can't be built with -O0, using -O1 -Wno-error or -O1 instead.")
> elif bb.utils.contains("SELECTED_OPTIMIZATION", "-Os", "x", "", d) == "x":
> bb.note("glibc can't be built with -Os, -Os -Wno-error will be used instead.")
> - return selected_optimization.replace("-Os", "-Os -Wno-error")
> + d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error")
> elif bb.utils.contains("SELECTED_OPTIMIZATION", "-O1", "x", "", d) == "x":
> bb.note("glibc can't be built with -O1, -O1 -Wno-error will be used instead.")
> - return selected_optimization.replace("-O1", "-O1 -Wno-error")
> - return selected_optimization
> -
> -SELECTED_OPTIMIZATION := "${@get_optimization(d)}"
> + d.appendVar("SELECTED_OPTIMIZATION", " -Wno-error")
> +}
>
> # siteconfig.bbclass runs configure which needs a working compiler
> # For the compiler to work we need a working libc yet libc isn't
>
> which will now give an error for -O0 but I think that is reasonable.
> I'd even prefer to drop the above entirely and use bitbake.conf to be
> honest but I know some people insisted we should have the above.
Yes, you are right! They immediate expand SELECTED_OPTIMIZATION
in glibc and systemtap. I will modify both of them by 'anonymous python
function to replace' to replace in V3.
And then, I will directly put the entries in bitbake.conf.
V3 incoming
//Hongxu
> Cheers,
>
> Richard
prev parent reply other threads:[~2016-01-29 6:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-27 8:45 [PATCH 0/4] base/bbclass: use target path to replace build ones in debugging info Hongxu Jia
2016-01-27 8:45 ` [PATCH 1/4] base/bbclass: use target path as compile dir " Hongxu Jia
2016-01-27 8:45 ` [PATCH 2/4] base/bbclass: disallow appending the compile options " Hongxu Jia
2016-01-27 19:20 ` Khem Raj
2016-01-27 8:45 ` [PATCH 3/4] base/bbclass: use target path as include dir " Hongxu Jia
2016-01-27 8:45 ` [PATCH 4/4] base/bbclass: fix missing to replace build " Hongxu Jia
2016-01-27 10:16 ` [PATCH 0/4] base/bbclass: use target path to replace build ones " Richard Purdie
2016-01-27 19:34 ` Khem Raj
2016-01-27 22:13 ` Richard Purdie
2016-01-28 2:58 ` Hongxu Jia
2016-01-28 17:04 ` Richard Purdie
2016-01-29 3:39 ` Hongxu Jia
2016-01-29 6:40 ` Richard Purdie
2016-01-29 6:58 ` Hongxu Jia [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56AB0D8C.2070603@windriver.com \
--to=hongxu.jia@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox