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

Bill Deegan bill at baddogconsulting.com
Wed Aug 30 12:28:04 EDT 2017


On Wed, Aug 30, 2017 at 5:18 AM, Russel Winder <russel at winder.org.uk> wrote:

> On Tue, 2017-08-29 at 07:39 -0700, Bill Deegan wrote:
> > env.get is just like a python dictionary.
>
> I can live with that. :-)
>
> > the order will depend on the order the tools are loaded into the
> > Environment()..
>
> This is where the problem comes. I think there has to be a single,
> deterministic loading order and that, to avoid breaking changes, that
> the cc and c++ tools win for the definition of SHOBJSUFFIX. I am
> surprised though that there have not previously been more hassles over
> this as not all C and C++ compilers use .os extension.
>

Remember that this is (can be) set by each compiler.

>
> I think we just have to accept that the default system is broken, and
> that the GCC toolchain is the winner. We just have to warn dmd and ldc
> toolchain users that this is the case and that using an explicit rather
> than implicit/default toolchain, the problem goes away. (gdc is part of
> GCC Suite and so doesn't have the problem.)
>
> The current set of people using SCons for D builds haven't actively
> complained so there is no real driver for "a fix" other than me wanting
> it to work.
>

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.

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.

Assuming you change SHOBJSUFFIX in the D tools, it should work fine.

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

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.

-Bill



>
> --
> Russel.
> ============================================================
> =================
> Dr Russel Winder      t: +44 20 7585 2200   voip:
> sip:russel.winder at ekiga.net
> 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at winder.org.uk
> London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
>
> _______________________________________________
> Scons-dev mailing list
> Scons-dev at scons.org
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20170830/a5ac82ac/attachment-0001.html>


More information about the Scons-dev mailing list