Importing D libraries

Nick Sabalausky a at a.a
Thu Jul 28 09:01:38 PDT 2011


"Andrew Wiley" <wiley.andrew.j at gmail.com> wrote in message 
news:mailman.1941.1311837499.14074.digitalmars-d-learn at puremagic.com...
> On Wed, Jul 27, 2011 at 11:46 PM, Jacob Carlborg <doob at me.com> wrote:
>
>> On 2011-07-28 03:23, Andrew Wiley wrote:
>>
>>> On Wed, Jul 27, 2011 at 2:10 AM, Jacob Carlborg <doob at me.com
>>> <mailto:doob at me.com>> wrote:
>>>
>>>        Cannot be implemented in GDC. The driver/compiler/assembler/__**
>>> linker
>>>        structure doesn't allow it.
>>>
>>>
>>>    Why is that?
>>>
>>>
>>> Well, the short version is that GDC (the executable) is not a compiler.
>>> GDC is a driver that runs cc1d to compile your code, runs as (at least I
>>> think that's the name offhand) to assemble it, then runs ld to link it.
>>> As far as I know, there's no way for cc1d to communicate the contents of
>>> pragmas like this back to the driver, which it would have to do if you
>>> wanted the driver to include the library in the arguments to the linker.
>>> It's possible that I just don't know the infrastructure well enough, but
>>> I think this is one of the reasons the GCC guys refused to implement
>>> #pragma in C/C++ as well.
>>>
>>
>> I don't really get this. GDC is a D front end for the GCC back end. So 
>> the
>> the front end should handle all language specific things, like the 
>> pragma.
>> Then I assume the front end can pass options to the linker. Is this not 
>> the
>> case?
>
>
> In traditional terms, cc1d is a compiler, including both the frontend and
> the backend. It takes parameters and spits out assembly. That's it.
> The GDC executable is the driver responsible for running cc1d to compile 
> the
> source to assembly, as to assemble the object files, and ld to link it all
> into a binary. cc1d cannot pass options to the linker because it does not
> invoke the linker.
>

cc1d can't just write a "hey_gdc_pass_these_options_to_the_linker.txt" file?




More information about the Digitalmars-d-learn mailing list