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 <CAEyG4CEXBMuEnog6HSiQDd0qXwzEMU5-amwPtGsoTB7wjeOWjg@mail.gmail.com>
On Tue, Feb 26, 2019 at 7:57 AM Jose Fonseca <[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?


>
> 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.


>
>  > 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
>
> On 25/02/2019 19:29, Bill Deegan wrote:
> > O.k. that's just a workaround.
> > MD5-timestamp decider had a bugfix between 3.0.1 and 3.0.4.  Somehow
> > that's causing scons to not see the dependencies to generate the
> > nir_opcodes.h.
> >
> > Regardless the way the mesa build is calling the scripts is pretty
> > non-standard. Though the way they add the python dependencies is pretty
> > clever. (And very thorough).
> > Calling any builder with sources set to []...
> >
> > Regardless I'll see if I can get to the bottom  of why the changes to
> > MD5-timestamp decider are breaking this build.
> > You could probably just (for the time being) detect which version of
> > scons and if 3.0.1 or less enable md5-timestamp, otherwise let it
> > default (which is MD5). It's a bit slower, but theoretically more
> correct.
> >
> > -Bill
> > SCons Project Co-Manager
> >
> > On Mon, Feb 25, 2019 at 7:29 AM Liviu Prodea <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Yes, that hack works around it. Added Jose Fonseca from VMware to
> >     this discussion as he is familiar with Mesa3D scons build internals.
> >
> >
> >     ==================================================================
> >     On Monday, February 25, 2019, 3:08:27 AM GMT+2, Bill Deegan
> >     <[email protected] <mailto:[email protected]>>
> wrote:
> >
> >
> >     Finally got around to reproducing this.
> >     Setting up for a build is a bit complicated, I ended up having to
> >     comment out a couple lines in the build.cmd
> >
> >     o.k. Try this:
> >     comment out line 311 in mesascons/gallium.py
> >          # env.Decider('MD5-timestamp')
> >
> >
> >
> >
> >     On Tue, Feb 19, 2019 at 9:42 AM Bill Deegan
> >     <[email protected] <mailto:[email protected]>>
> wrote:
> >
> >         Curious. Those changes should only affect using MD5-timestamp
> >         decider..
> >
> >         I'll take a look.
> >
> >         On Tue, Feb 19, 2019 at 9:07 AM Liviu Prodea
> >         <[email protected] <mailto:[email protected]>> wrote:
> >
> >
>  =================================================================================
> >
> >
> >
> >
> >             Bisect is complete. I narrowed it down to 4 commits. Cannot
> >             go any further due to skipping of commits that don't even
> >             get at nir code base. Replay log is available here:
> >             https://bugs.freedesktop.org/attachment.cgi?id=143412
> >             <
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.freedesktop.org%2Fattachment.cgi%3Fid%3D143412&data=02%7C01%7Cjfonseca%40vmware.com%7C7b7ce65c2b0f40ea107208d69b57a932%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C1%7C636867198189064715&sdata=kiM4jHVtvSyqaKqtlOhQf0v4ZMGgceLSg5yTLvUP6bY%3D&reserved=0
> >
> >
> >             Affected commits attempt to generate src/compiler/nir/nir.h
> >             before src/compiler/nir/nir_opcodes.h from their respective
> >             python sources which is obviously incorrect.
> >             On Monday, February 18, 2019, 8:32:34 PM GMT+2, Daniel Moody
> >             <[email protected] <mailto:[email protected]>> wrote:
> >
> >
> >             Which commits did you bisect too?
> >
> >             On Mon, Feb 18, 2019, 11:37 AM Bill Deegan
> >             <[email protected]
> >             <mailto:[email protected]> wrote:
> >
> >                 nir_opcodes.h and any other file which are not present
> >                 when needed are indeed relevant.
> >                 They indicate what in the build logic is missing
> >                 dependencies.
> >                 If the dependencies were correct, then those files would
> >                 be created/present before any file which depends on them
> >                 is compiled..
> >
> >                 -Bill
> >
> >                 On Mon, Feb 18, 2019 at 1:15 AM Liviu Prodea
> >                 <[email protected] <mailto:[email protected]>>
> >                 wrote:
> >
> >                     I am not a Mesa3D developer so I also filed a bug
> >                     with them as well:
> >                     https://bugs.freedesktop.org/show_bug.cgi?id=109443
> >                     <
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.freedesktop.org%2Fshow_bug.cgi%3Fid%3D109443&data=02%7C01%7Cjfonseca%40vmware.com%7C7b7ce65c2b0f40ea107208d69b57a932%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C1%7C636867198189064715&sdata=fTvbHUX4GIPYcvSZXksXZ%2FVETpHkk7BN1IKXT4U1VgM%3D&reserved=0
> >
> >
> >
> >                     I dug up a bit more now that I have Scons source
> >                     code at hand. It appears that Scons 3.0.2 that has
> >                     been pulled from pypi is also affected. I tried
> >                     bisecting between rel_3.0.1 and rel_3.0.2 branches
> >                     range but when I get close to finish, I end up with
> >                     2 commits that are completely broken and 1 with
> >                     excessive debug that I don't know if it fails on
> >                     same spot as master, rel_3.0.4, rel_3.0.3 or
> rel_3.0.2.
> >
> >
> >
> >                     I don't think nir_opcodes.h is relevant because if I
> >                     change the configuration (add off-screen rendering /
> >                     build llvmpipe / other changes) it stumbles in other
> >                     header file. Also if I keep retrying building after
> >                     failure without cleaning it succeeds eventually
> >                     after plenty of tries with failures in random header
> >                     files so it makes progress.
> >
> >
> >
> >                     ========================================
> >
> >
> >                     On Sunday, February 17, 2019, 10:30:43 PM GMT+2,
> >                     Bill Deegan <[email protected]
> >                     <mailto:[email protected]>> wrote:
> >
> >
> >                     what generates "'nir_opcodes.h" ?
> >                     Is that output from bison/flex/some other code
> >                     generator, or is that just a file which is checked
> >                     into your tree?
> >
> >                     On Sun, Feb 17, 2019 at 2:01 AM Liviu Prodea
> >                     <[email protected]
> >                     <mailto:[email protected]>> wrote:
> >
> >                         I applied the patch and it succeeded in getting
> >                         past configuration phase but the end result is
> >                         the same as with Scons 3.0.4 release.
> >
>
>

_______________________________________________
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.