Personally I almost never use the default toolset, but use an explicit list of
tools in every project. So it wasn't until recently that a problem, came to
light.

Some of the C and C++ tools (on Linux I'm not sure about macOS, Windows is not
a factor here) force the shared object suffix to .os from .o. This means that
this is enforced in the default toolset. I am not sure if this causes a
problem for any of the other compilers, but it does for dmd and ldc2, but not
gdc. dmd and ldc2 assume the object suffix is always .o and will not accept
.os. 

Since in the default tools set .os is enforced for $TARGET for shared object
objects because of the action of one C/C++ tool, it breaks the ability to
create shared objects from D sources using dmd and ldc2.

The default toolset is clearly GCC oriented, and I guess this is fine. So the
way out of the problem seems to be not to use $TARGET in the dmd and ldc
tools. Does anyone know where $TARGET gets defined so I can cut and paste into
the dmd and ldc tools avoiding the use of the default suffix?


-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:[email protected]
41 Buckmaster Road    m: +44 7770 465 077   xmpp: [email protected]
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to