GDC in Slackware and a bit about GDC development

Eugene Wissner belka at caraus.de
Mon Oct 9 08:23:43 UTC 2017


On Monday, 9 October 2017 at 08:10:41 UTC, Iain Buclaw wrote:
> On 9 October 2017 at 10:03, Eugene Wissner via 
> Digitalmars-d-announce <digitalmars-d-announce at puremagic.com> 
> wrote:
>> On Sunday, 24 September 2017 at 09:27:42 UTC, Iain Buclaw 
>> wrote:
>>>
>>>
>>> That would almost certainly only happen if you were using a 
>>> different druntime.  Check where your import modules are 
>>> coming from, they probably aren't gdc's.
>>>
>>
>> Ah yes. Thanks a lot for the hint. I tried to compile with 
>> "-v" and got:
>>
>> import    object        (/usr/include/d/object.d)
>> import    core.stdc.stdarg      
>> (/usr/include/d/core/stdc/stdarg.d)
>> import    core.stdc.stdlib      
>> (/usr/include/d/core/stdc/stdlib.d)
>> import    core.stdc.config      
>> (/usr/include/d/core/stdc/config.d)
>> import    core.stdc.stddef      
>> (/usr/include/d/core/stdc/stddef.d)
>> semantic  test
>> entry     main          test.d
>> import    __entrypoint
>> (/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/include/d/__entrypoint.di)
>>
>>
>> "/usr/include/d/core" is the druntime of dmd. gdc's one is in: 
>> /usr/lib64/gcc/x86_64-slackware-linux/5.3.0/include/d/core
>>
>> But GCC wants to use "/usr/include/d/" for some reason. If I 
>> remove dmd,
>> then the example above compiles.
>> I wasn't able to find how to change it. I'll probably change 
>> the runtime and
>> phobos paths for dmd and move gcc's D directories into their 
>> old place.
>
> It might be a configure flag to change that.  Though I think at 
> least Archlinux just applies local patches to all compilers to 
> point the system directory explicitly to different locations.  
> I'd say it's a dmd package bug for putting dmd sources in 
> /usr/include/d, when this should be reserved for more general D 
> application libraries.

I've chosen "/usr/include/d" for dmd since freebsd seems to use 
it and IIRC the debian-family aswell (I'm maintaining dmd package 
aswell).

I compared installation directories for c/c++ and gcc include 
files are in "/usr/include/c++/5.3.0/", llvm: 
"/usr/include/llvm". So the appropriate way would be probably 
just to put dmd stuff in "/usr/include/dmd".

Maybe I'll look into it later again. At least I have a quick 
solution for now to get both compilers work on one system.


More information about the Digitalmars-d-announce mailing list