[Scons-users] Scons 2.3.2 regression for Dynamic library compilation

M. Laurent MARCHELLI laurent.marchelli at gmail.com
Fri Aug 8 11:22:34 EDT 2014


Hello,

I work on a big project than compiled on Window 2007 without any major problem with the scons version 2.3.0.
Since I have installed the version 2.3.2, all Dynamic Linked libraries didn't compiled anymore.

I investigated the problem and the issue is located inside the new dmd implementation.
Scons seems to get confused with .def files extensions. Instead than calling the 'LINK' program to create the DLL, it try to call the 'DLINK' program.
However, I do not have installed any D language compiler on my system. 

I compared scons environment variables between version 2.3.0 and 2.3.2 and I noticed that all 'D...' variables are now added whatever your system has or not any D compiler.
To fix this I dug into the Scons source code to try to identify the trouble, and I was surprise to see the 'DLINK' is forced whatever his presence on the system.

I modified the code (see patch below in Unify diff) and the build is now successful.
*************************************************************************************
--- Tool\__init__.py.old	2014-07-05 09:42:26.000000000 +0200
+++ Tool\__init__.py	2014-08-08 14:20:17.953394600 +0200
@@ -799,7 +799,7 @@
         ar = FindTool(ars, env) or ars[0]
 
     d_compilers = ['dmd', 'gdc', 'ldc']
-    d_compiler = FindTool(d_compilers, env) or d_compilers[0]
+    d_compiler = FindTool(d_compilers, env) 
 
     other_tools = FindAllTools(other_plat_tools + [
                                #TODO: merge 'install' into 'filesystem' and
**************************************************************************************

So, I have two questions,
- Is this modification correct for those who don't have any D compiler and will it be inserted in the next release ?
- What's happening if I install a D compiler on my system ? Why Scons tries to call the 'DLINK' instead of the 'LINK' program, is it a bad configuration between sources and targets ?

Thank's in advance for your answers and your help,
Best regards,
Laurent Marchelli
Chef de projet technique - Freelance
+33 (0) 6 65 69 70 56
Laurent.marchelli at gmail.com
www.linkedin.com/in/laurentmarchelli
www.viadeo.com/fr/profile/laurent.marchelli


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20140808/39670b07/attachment.html>


More information about the Scons-users mailing list