D2 port of Sociomantic CDGC available for early experiments

Rainer Schuetze via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Oct 9 11:33:23 PDT 2014



On 09.10.2014 15:31, Jacob Carlborg wrote:
> On 09/10/14 08:43, Rainer Schuetze wrote:
>
>> Yes, but the problem is not to access command line arguments, but to run
>> code before the GC initialization i.e. before _d_run_main is executed.
>>
>> If we can assume a C++ backend, using static initialization of a C++
>> global could work:
>>
>>     static bool initGC = configureGC();
>>
>> because the C++ runtime runs configureGC before calling C main. I'd
>> rather like to see a solution using D, though.
>
> It's enough with a C function with __attribute__((constructor)). This
> will run before C main.
>

This is a gcc extension, which isn't supported under Windows by dmd. Can 
you add this attribute in GDC/LDC as part of a D file aswell?

I recently made some experiments with pragma(data_seg,"SEGMENT_NAME") or 
pragma(code_seg,"SEGMENT_NAME") that could also be used to move 
something into the initializer section of the runtime. For COFF it kind 
of works, but unfortunately there is no way to tell OMF to put a COMDAT 
(needed for templates) into a specific segment.


More information about the Digitalmars-d-announce mailing list