From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] gcc-cross: aviod creating invalid symlinks
Date: Wed, 14 Mar 2012 15:26:40 +0000 [thread overview]
Message-ID: <1331738800.18586.39.camel@ted> (raw)
In-Reply-To: <34489f7f0d7f0457df45e2ee4606b51a09ed1704.1331716010.git.liezhi.yang@windriver.com>
On Wed, 2012-03-14 at 17:13 +0800, Robert Yang wrote:
> There are several invalid symlinks in gcc-cross-initial,
> gcc-cross-intermediate and gcc-cross, these cause the error:(56 errors)
>
> tmp/work/i586-poky-linux/gcc-cross-initial-4.6.3+svnr184847-r23/temp/log.do_populate_sysroot:
> log.do_populate_sysroot:grep: /path/to/invalid/symlink: No such file or directory
>
> Avoid creating invalid symlinks would fix this problem.
>
> Use the:
> [ ! -e file ] || do_something
> But not use:
> [ -e file ] && do_something
> is because that if the "file" doesn't exist, then the whole statement
> would return false, and bitbake treats this an error, so use the "||" to
> let it always be true.
>
> [YOCTO #2095]
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
> .../gcc/gcc-cross-intermediate.inc | 3 ++-
> meta/recipes-devtools/gcc/gcc-package-cross.inc | 6 ++++--
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> index ea105e6..87d11ab 100644
> --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> @@ -51,7 +51,8 @@ do_install () {
> dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/
> install -d $dest
> for t in ar as ld nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do
> - ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
> + [ ! -e ${BINRELPATH}/${TARGET_PREFIX}$t ] || \
> + ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
> done
> }
>
> diff --git a/meta/recipes-devtools/gcc/gcc-package-cross.inc b/meta/recipes-devtools/gcc/gcc-package-cross.inc
> index e32412c..3d52d23 100644
> --- a/meta/recipes-devtools/gcc/gcc-package-cross.inc
> +++ b/meta/recipes-devtools/gcc/gcc-package-cross.inc
> @@ -19,8 +19,10 @@ do_install () {
> dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/
> install -d $dest
> for t in ar as ld nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do
> - ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
> - ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t ${dest}${TARGET_PREFIX}$t
> + if [ -e ${BINRELPATH}/${TARGET_PREFIX}$t ]; then
> + ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t
> + ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t ${dest}${TARGET_PREFIX}$t
> + fi
> done
>
> # Remove things we don't need but keep share/java
I've had to revert this, it totally broke the mips/ppc/arm toolchains.
See the failures on the autobuilder, e.g.
http://autobuilder.yoctoproject.org:8010/builders/nightly-arm/builds/338/steps/shell_33/logs/stdio in eglibc-initial. The problem is that the location we're symlinking to may not be installed yet. For example, gcc provides "${TARGET_PREFIX}gcc" but it won't be installed at the location we point at until after gcc's populate_sysroot function runs. The tests you're using are therefore not adding as many symlinks as we need.
Cheers,
Richard
next prev parent reply other threads:[~2012-03-14 15:35 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-14 9:13 [PATCH 0/1] aviod creating invalid symlinks Robert Yang
2012-03-14 9:13 ` [PATCH 1/1] gcc-cross: " Robert Yang
2012-03-14 15:26 ` Richard Purdie [this message]
2012-03-15 2:23 ` Robert Yang
2012-03-14 13:23 ` [PATCH 0/1] " Richard Purdie
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=1331738800.18586.39.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=openembedded-core@lists.openembedded.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.