Installing ldc breaks gdc
Eduard Staniloiu via Digitalmars-d
digitalmars-d at puremagic.com
Fri Dec 9 07:59:07 PST 2016
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
More information about the Digitalmars-d
mailing list