From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Kristian Amlie <kristian.amlie@mender.io>,
OE-core <Openembedded-core@lists.openembedded.org>
Subject: Re: Overriding fixmepath
Date: Wed, 25 Jan 2017 12:39:31 +0000 [thread overview]
Message-ID: <1485347971.30673.95.camel@linuxfoundation.org> (raw)
In-Reply-To: <2c3cfb1f-2a70-5733-07bf-b9c31612a3c3@mender.io>
On Wed, 2017-01-25 at 13:22 +0100, Kristian Amlie wrote:
> On 25/01/17 12:24, Richard Purdie wrote:
> >
> > On Wed, 2017-01-25 at 11:43 +0100, Kristian Amlie wrote:
> > Does this still work if you remove the
> > /home/jenkins/workspace/yoctobuild/build-qemu/tmp/sysroots-
> > components/x86_64/go-bootstrap-native directory before building go-
> > cross? I worry that its actually referencing the other location and
> > using files from there (a different recipe's workdir) and that
> > therefore there are a different set of other problems this recipe
> > also
> > has.
> You mean after executing prepare_recipe_sysroot, right? I tried this,
> but it made no difference to my previous results, so presumably it is
> looking in the right place.
Ok, that is good and probably means this should be easier to fix.
> > > Why the path replacement triggers an error I cannot say, but I
> > > suspect it has to do with the fact that Go object files are a bit
> > > special compared to C object files, and this operation in fact
> > > corrupts them. More mysterious still is why this happens only on
> > > some
> > > build machines, and not others, but once triggered it appears to
> > > be
> > > consistently triggered.
> > The fixmepath replacements only happen on text files. It could be
> > some
> > relocation is needed on the binaries too, perhaps through
> > configuration
> > on the commandline or perhaps through the environment. We have had
> > to
> > patch some tools to allow relocation in the past too.
> I see this happening to .a files as well. Aren't they normally object
> files? I have attached the fixmepath file for go-bootstrap-native,
> which
> go-cross uses to build itself.
>
> Looking at one of the files from there, it has quite peculiar
> contents,
> probably something Go internal which we shouldn't mess with:
>
> $ ar t template.a
> __.PKGDEF
> _go_.6
>
> >
> > >
> > > Any advice for what to do next? I could try to skip the fixmepath
> > > operation completely, but I'm not sure how, and it feels a bit
> > > like
> > > using a sledgehammer where I should be using a scalpel.
> > Try removing the path I suggested after copying and see if it still
> > works. If it does, I'd probably try and find which subset of the
> > files
> > breaks it, narrow down the issue. If removing it breaks things,
> > there
> > is a whole world of bigger issues :(
> >
> > Its possible to add specific inclusions/exclusions from fixmepath
> > FWIW
> > but we need to understand more about what is happening first.
> Take a look at the attached file, to me the inclusion of .a files in
> the
> fixmepath file seems wrong, so I can start with that, unless you have
> better idea.
I think this is a very good lead. The code searches for replacements to
make with: "grep -Irl" (see sstate.bbclass) and it looks like its
matching these files and shouldn't. We may need to make sstate.bbclass
look something like:
SSTATE_SCAN_CMD ?= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f'
SSTATE_SCAN_CMD_NATIVE ?= 'grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_NATIVE} ${SSTATE_BUILDDIR}'
and then:
if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('sdk', d) or bb.data.inherits_class('crosssdk', d):
d.setVar('SSTATE_SCAN_CMD', '${SSTATE_SCAN_CMD_NATIVE}')
which means you'd be able to override the command being used to exclude
.a files?
Cheers,
Richard
next prev parent reply other threads:[~2017-01-25 12:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-25 10:43 Overriding fixmepath Kristian Amlie
2017-01-25 11:24 ` Richard Purdie
2017-01-25 12:22 ` Kristian Amlie
2017-01-25 12:39 ` Richard Purdie [this message]
2017-01-25 13:53 ` Kristian Amlie
2017-01-25 13:53 ` [PATCH] Make SSTATE_SCAN_CMD vars configurable using weak defaults Kristian Amlie
2017-01-25 14:23 ` ✗ patchtest: failure for " Patchwork
2017-01-25 14:34 ` Kristian Amlie
2017-01-25 14:38 ` Richard Purdie
2017-01-25 14:46 ` [PATCH] sstate: " Kristian Amlie
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=1485347971.30673.95.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=Openembedded-core@lists.openembedded.org \
--cc=kristian.amlie@mender.io \
/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.