[Scons-users] Adding dependency on installed libs

Pawel Winogrodzki pawelwi at microsoft.com
Fri Mar 31 17:04:43 EDT 2017


Thanks, Bill! I’ll let you know, in case I still see the issue with this patch.

From: Bill Deegan [mailto:bill at baddogconsulting.com]
Sent: Thursday, March 30, 2017 19:22
To: Pawel Winogrodzki <pawelwi at microsoft.com>
Cc: SCons users mailing list <scons-users at scons.org>
Subject: Re: [Scons-users] Adding dependency on installed libs

Pawel,
Sorry about that.

https://bitbucket.org/scons/scons/pull-requests/371/use-win32-api-copy-on-windows-platform-to/diff
-Bill

On Thu, Mar 30, 2017 at 3:08 PM, Pawel Winogrodzki <pawelwi at microsoft.com<mailto:pawelwi at microsoft.com>> wrote:
Thank you, Bill. At least we know, that there might be no point to dig into our configuration in hope of finding an issue there.

I just have one question for now: you’ve mentioned, that I should “try applying this patch”. I didn’t see any attachment or link – where can I find the patch?

Thanks,
Pawel

From: Bill Deegan [mailto:bill at baddogconsulting.com<mailto:bill at baddogconsulting.com>]
Sent: Wednesday, March 29, 2017 19:17
To: SCons users mailing list <scons-users at scons.org<mailto:scons-users at scons.org>>
Cc: Pawel Winogrodzki <pawelwi at microsoft.com<mailto:pawelwi at microsoft.com>>
Subject: Re: [Scons-users] Adding dependency on installed libs



On Wed, Mar 29, 2017 at 5:54 PM, Pawel Winogrodzki via Scons-users <scons-users at scons.org<mailto:scons-users at scons.org>> wrote:
Hi all,

Does anyone know, if scons supports such scenarios correctly:

  1.  We’re running a multi-thread build.
  2.  We build a static library X and Install() it to a different directory.
  3.  We also build a dynamic library Y, which depends on the library X BUT in the LIBPATH we provide the installation directory, not the original build directory.

In most cases everything works fine, but from time to time lib Y fails to link lib X. The error message shows the whole path to the library X in the install directory and I was always able to see in the output, that before linking started the installation has been performed. Also, it only fails this way on Windows from my observations and it’s a lot easier to reproduce if you set -j to a number higher than the actual number of logical CPUs (with twice as much we had a 100% repro).

My question is: does scons correctly recognizes dependencies on installed libraries? Might this be some multi-threading issue with scons? Is there a known workaround for this issue (except for adding the original build directory to the LIBPATH)?

Yes, Yes (multi only on windows it seems), and yes (most likely, it works for some users, and no users have reported it not working yet)...
It seems that in some cases on windows parallel builds copy operations may not complete before the files are used by the next builder.
You might try applying this patch to see if it resolves the issue for you.
A more complete and maybe more correct fix is forthcoming, but likely not til after py 2+py3 work is complete.
One thing you should check is if the dependencies show up correctly using scons --tree=prune
-Bill
SCons Project Co-Manager



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20170331/e10adac3/attachment-0001.html>


More information about the Scons-users mailing list