[Scons-dev] Problematic conflicts between C/C++ and D

Bill Deegan bill at baddogconsulting.com
Thu Aug 31 14:31:50 EDT 2017


On Thu, Aug 31, 2017 at 5:11 AM, Russel Winder <russel at winder.org.uk> wrote:

> On Wed, 2017-08-30 at 09:28 -0700, Bill Deegan wrote:
> > […]
> >
> > Remember that this is (can be) set by each compiler.
>
> Indeed, and for tools not in the default set that is the end of the
> issue. However for tools in the default set we have the cross-coupling.
>
> […]
>
> > Since none of the D compilers are included at the end of the default
> > list,
> > as it currently stands any change they make to SHOBJSUFFIX would end
> > up
> > being the default, assuming a d compiler is found.
>
> I am not sure I follow the first part of this, but the second part is
> very true: if I set SHOBJSUFFIX in any f the D tools it is the value
> used by cc and c++ tools if the build does not specify a tool list
> explicitly.
>
> > The only issue would come about (currently) if the user set the tool
> > list
> > to empty and explicitly added the tools with the D tools first.
>
> Or the user does not set a tool list at all. This is the problem that
> was raised by a user.  All my D tool use had involved explicitly
> setting the tool list in the environment. This leads to an issue with
> the gdc tool that I have yet to follow up on. The dmd an ldc tools are
> though fine. With there being no tool list set, the default tool set is
> used and the problem for the dmd compiler and ldc2 compiler regarding
> SHOBJSUFFIX hits.
>
> > Assuming you change SHOBJSUFFIX in the D tools, it should work fine.
>
> 'Fraid not. tried that and it means the all the cc and c++ tests fail.
> If SHOBJSUFFIX is set in the dmd or ldc tool then it affects the cc and
> c++ tools which then fail all their tests.
>
> > That said, there has been much discussion in the past of revamping
> > the tool
> > chain & platform logic (see the wiki and mailing list for more
> > details).
>
> Indeed but without more resources, I suspect we are left with what we
> have.
>
> > Due to the current logic dealing with tools individually, it is
> > possible to
> > construct an environment where the tools are incompatible.
> > for example compiler and linker which cannot inter operate.
> >
> > But for now, if you had a patch where the D tools changed SHOBJSUFFIX
> > then
> > your immediate and most likely issue should be handled.
>
> 'fraid not. It may fix the dmd and ldc situation but it leaves all the
> cc and c++ related tools broken in the default tool set and so all the
> SCons tests relating to them fail.
>

Can you pastebin the failures?
Likely the c/c++ tests have the SHOBJSUFFIX hardcoded which is not correct..
(Unless the tests only load the c/c++ tools or a limited set thereof, which
might not be a bad idea anyway as it would speed up the tests..)

-Bill
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20170831/c9c8769f/attachment.html>


More information about the Scons-dev mailing list