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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.