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