Re: Mesa3D graphics library build failure when using Scons 3.0.3 and newer on Windows with Visual Studio 2017, Scons 3.0.1 is unaffected.

Bill Deegan <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <CAEyG4CE_rKt-87-LJHRGe=PdLf_kGttp2YZkjqb=x-WMDWRu2w@mail.gmail.com>
Is the windows thread/spawn bug fixed in Python now?

We have seen an infrequent issue with a race condition on windows as well.
I'm fairly certain is due to Python dropping the GIL around file
open/close..  something like env.Install(target,source), env.Program(...,
target) so a linker or other program tries to use the file after it is
copied and/or written by python Action before it's closed on the filesystem
yielding file still open errors..

Any builder with [] as the source is odd. Then adding the dependencies via
Depend(). Generally you'd specify the script.  Most build's consider that
to be sufficient. Your build goes a step further by examining all the
python modules it loads. Very clever.  I think that logic could be moved to
a python scanner and then you could get rid of most of the special logic
there.

When I get a chance I'll take a look at the rest.

On Tue, Feb 26, 2019 at 11:28 PM Jose Fonseca <[email protected]> wrote:

> On 26/02/2019 22:46, Bill Deegan wrote:
> >
> >
> > On Tue, Feb 26, 2019 at 7:57 AM Jose Fonseca <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Hi Bill,
> >
> >     If you spot anything on Mesa's SCons usage that looks like a bad idea
> >     then do let us know.
> >
> >
> > Likely there's room for improvement.
> > Let me finish vetting the patch to fix your current issue and then I'll
> > see if I can find some time to do a review?
> > In the meantime if you have questions please bring them here?
>
> I don't have any concrete questions -- except this matter, SCons has
> been working fine.   My question is based upon your remarks that we're
> doing odd stuff.  I'd just would like to better understand it, and
> improve it, specially if that can avoid breakage in the future.
>
> >     One of the difficulties of Mesa is that there were always multiple
> >     build
> >     tools system, with the bulk of developers (those targeting Linux)
> using
> >     first autotools / now meson, and only a subset (those targeting
> >     Windows)
> >     using SCons.  So that's why I tried to make things somewhat
> automatic.
> >
> >     Results have been mixed: when it works, it works well; and it fails,
> >     nobody knows how to fix except me who most of this..
> >
> >
> > Have you subscribed to the scons users mailing list before today?
> > Honestly I wasn't aware Mesa was using SCons until Liviu brought it up.
>
> No, never subscribed.  We've been using it for 10+ years, and BTW, it
> has been working very well for us (ie those who build Mesa for Windows,
> VMware in particular.)  It's a pity SCons never gained traction with
> Mesa Linux developers who stuck with the autotools until last year.  If
> I had tried harder back then to get all Mesa tree fully ported to SCons
> perhaps things would have been different, but one can only do so much,
> and by then me and my team lost too many technical/political fights to
> embark on yet another one.
>
> I can only recall two instances of SCons issues affecting us, this and
> http://scons.tigris.org/issues/show_bug.cgi?id=2449 .  That was a pretty
> nasty issue to debug from my side, as the race condition was pretty
> rare.  In fact, I just realized we still have the workaround on
> https://cgit.freedesktop.org/mesa/mesa/tree/scons/fixes.py .  It's
> probably safe to drop it now :)
>
> >
> >
> >       > Calling any builder with sources set to []...
> >
> >     What should we used instead?
> >
> >
> > Most times the source for such a command is the script itself.
> > Then you'd just add the python scanner and scons should (I think) do
> > what you're manually doing via env.Depends()...
> >
> > -Bill
> >
> >
> Jose
>

_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.