Installing ldc breaks gdc

Johannes Pfau via Digitalmars-d digitalmars-d at puremagic.com
Fri Dec 9 09:34:25 PST 2016


Am Fri, 09 Dec 2016 15:59:07 +0000
schrieb Eduard Staniloiu <edi33416 at gmail.com>:

> Hello, everyone.
> 
> So I have found that installing ldc will break gdc.
> 
> The setup:
> 
> I have a VM running a 64bit Ubuntu 16.04, as you can see from the 
> output of uname -a:
> 
>    Linux ubuntu-xenial 4.4.0-51-generic #72-Ubuntu SMP Thu Nov 24 
> 18:29:54 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
> 
> I have installed:
>    dmd --version: DMD64 D Compiler v2.072.0
>    gdc --version: gdc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 
> 20160609
> 
> With this setup, in /usr/include we can find dmd/
> /usr/include/dmd
> |-- druntime
> |   `-- import
> |       |-- core
> |       |-- etc
> 
> As far as I can tell(guess), both dmd and gdc are using this one.
> 
> I installed ldc2 (using apt-get install ldc):
>    ldc2 --version: LDC - the LLVM D compiler (0.17.1):
>                    based on DMD v2.068.2 and LLVM 3.8.0
>                    Default target: x86_64-pc-linux-gnu
> 
> After installing ldc2, in /usr/include a new folder, d/, was 
> created
> /usr/include/d
> |-- core
> |-- etc
> |-- ldc
> `-- std
> 
> And now, the issue:
> After the steps above, when I try to compile something using gdc, 
> it fails with the following error:
> 
> /usr/include/d/core/stdc/stdarg.d:48:5: error: undefined 
> identifier _va_list_tag
>       alias __va_list = __va_list_tag;
>       ^
> 
> Based on my previous assumtion (both dmd and gdc use 
> /usr/include/dmd/) and the error above, I am inclined to believe 
> that after installing ldc, gdc is using /usr/include/d/ and it 
> breaks.
> 
> Maybe we should consider having a separate folder in 
> /usr/include/ for each compiler?
> 
> Cheers,
> Eduard
> 

Archlinux uses /usr/include/dlang/[dmd|gdc|ldc]. Maybe debian/ubuntu
should do that as well or maybe we could even change the path in
upstream GDC.


More information about the Digitalmars-d mailing list