[Scons-users] scons-local-2.5.1 build and clean shows random failure

Bill Deegan bill at baddogconsulting.com
Wed Jul 26 11:15:29 EDT 2017


There is not general issue with VariantDir(), just the way you used it
created a dependency cycle.


output/a was created from .
Then next run
output/a/output/a was created from . into output/a
Now output/a/output/a depends on output/a... see the loop?

On Wed, Jul 26, 2017 at 4:53 AM, Hua Yanghao <huayanghao at gmail.com> wrote:

> Bill, it works now!
>
> I overlooked one thing the SConscript variant_dir should point to
> its specific output dir not the global one for all SConscript file.
>
> +        variant_dir = os.path.join(output, folder)
> +        lib, objs, objs_all = ENV.SConscript(true_scons_file,
> variant_dir=variant_dir)
>
> This this change I am able to build successfully. The other changes
> that required is
> for the include path you need to specific the "true include" path not
> the one that is
> going to be copied into the output/linux64_full folder. With this two
> changes everything
> works fine with 100 build clean -j8 not a single time reproduced any issue.
>
> Even though I think I still don't fully understood the reason why
> VariantDir() caused
> the issue. should VariantDir() be removed/deprecated or should it be
> changed in a way
> that it has the same behavior of variant_dir parameter to env.SConscript()?
>
> Thanks a lot for your help.
>
> On Wed, Jul 26, 2017 at 12:22 PM, Hua Yanghao <huayanghao at gmail.com>
> wrote:
> > I tried first with the SConscript variant_dir parameter but seems it
> > doesn't work:
> >
> > +        lib, objs, objs_all = ENV.SConscript(true_scons_file,
> > variant_dir=output)
> >
> > And the result is:
> > hua at grass:~/git/usw $ configs/linux64_full.py
> > Running : ./tools/scons config=linux64_full.py
> > scons: Reading SConscript files ...
> > output dir: output/linux64_full
> > output dir: output/linux64_full
> >
> > scons: *** 'output/linux64_full' already has a source directory:
> > 'arch/linux64_full'.
> > File "/home/hua/git/usw/site_scons/common.py", line 61, in BuildObjList
> > hua at grass:~/git/usw $
> >
> > I found that if I want the the build to happen in the
> output/linux64_full folder
> > I have to call SConscript file from e.g.
> > output/linux64_full/src/SConscript instead of
> > the top level true SConscript file (src/SConscript).
> >
> > Did I use it wrong?
> >
> > On Wed, Jul 26, 2017 at 12:39 AM, Bill Deegan <bill at baddogconsulting.com>
> wrote:
> >> Yes.. You created dependency cycle..
> >> But only after a build.
> >> Thus why it's showing up only on clean...
> >>
> >> Once you build you have output/linux64_build
> >> Then you say map . to output/linux_64build  which ends up with a virtual
> >> subdirectory via variantdir of output/linux64_build/output/linux_64...
> >>
> >> see the issue.
> >>
> >> Variantdirs should never have parent/child relationships.
> >>
> >> I'd advice instead of using VariantDir(), use variant_dir in your
> SConscript
> >> call to map like this:
> >>
> >> SConscript('src/SConscript',variant_dir='output/linux64_build/src')
> >> etc..
> >>
> >> See if doing that resolves the issue?
> >>
> >> On Tue, Jul 25, 2017 at 1:03 PM, Hua Yanghao <huayanghao at gmail.com>
> wrote:
> >>>
> >>> Yes, that's exactly how I used VariantDir. Any problem seen?
> >>>
> >>> On Tue, Jul 25, 2017 at 6:32 PM, Bill Deegan <
> bill at baddogconsulting.com>
> >>> wrote:
> >>> > Can you paste just the usage of VariantDir() from your build?
> >>> >
> >>> > Are you doing
> >>> >
> >>> > VariantDir('output/linux64_full','.') in your SConstruct?
> >>> >
> >>> >
> >>> > On Tue, Jul 25, 2017 at 8:47 AM, Hua Yanghao <huayanghao at gmail.com>
> >>> > wrote:
> >>> >>
> >>> >> I think I am in, can you see my message there? Got no response.
> >>> >>
> >>> >> On Tue, Jul 25, 2017 at 5:45 PM, Bill Deegan
> >>> >> <bill at baddogconsulting.com>
> >>> >> wrote:
> >>> >> > goto:
> >>> >> > http://webchat.freenode.net/
> >>> >> >
> >>> >> > pick any nickname
> >>> >> > channel is "#scons"
> >>> >> >
> >>> >> > On Tue, Jul 25, 2017 at 8:43 AM, Hua Yanghao <
> huayanghao at gmail.com>
> >>> >> > wrote:
> >>> >> >>
> >>> >> >> On Tue, Jul 25, 2017 at 5:42 PM, Bill Deegan
> >>> >> >> <bill at baddogconsulting.com>
> >>> >> >> wrote:
> >>> >> >> > so you see this most often when:
> >>> >> >> >
> >>> >> >> > scons -j <SOME NUMBER> -c ?
> >>> >> >>
> >>> >> >> Exactly, it fails most often with scons -j8 -c, very rare with
> scons
> >>> >> >> -j8.
> >>> >> >>
> >>> >> >> > Any chance you can hop on the IRC channel?
> >>> >> >> >
> >>> >> >>
> >>> >> >> If you give me an instruction for howto ... I could try, never
> >>> >> >> really
> >>> >> >> used
> >>> >> >> IRC.
> >>> >> >> _______________________________________________
> >>> >> >> Scons-users mailing list
> >>> >> >> Scons-users at scons.org
> >>> >> >> https://pairlist4.pair.net/mailman/listinfo/scons-users
> >>> >> >
> >>> >> >
> >>> >> >
> >>> >> > _______________________________________________
> >>> >> > Scons-users mailing list
> >>> >> > Scons-users at scons.org
> >>> >> > https://pairlist4.pair.net/mailman/listinfo/scons-users
> >>> >> >
> >>> >> _______________________________________________
> >>> >> Scons-users mailing list
> >>> >> Scons-users at scons.org
> >>> >> https://pairlist4.pair.net/mailman/listinfo/scons-users
> >>> >
> >>> >
> >>> >
> >>> > _______________________________________________
> >>> > Scons-users mailing list
> >>> > Scons-users at scons.org
> >>> > https://pairlist4.pair.net/mailman/listinfo/scons-users
> >>> >
> >>> _______________________________________________
> >>> Scons-users mailing list
> >>> Scons-users at scons.org
> >>> https://pairlist4.pair.net/mailman/listinfo/scons-users
> >>
> >>
> >>
> >> _______________________________________________
> >> Scons-users mailing list
> >> Scons-users at scons.org
> >> https://pairlist4.pair.net/mailman/listinfo/scons-users
> >>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20170726/676ed365/attachment-0001.html>


More information about the Scons-users mailing list