Installing LDC on Gentoo
There is a Gentoo portage overlay for the LDC compiler officially supported by the developers. You can add the overlay with layman. If you do not have layman yet then install it with
emerge -av layman
After that you have to add to /etc/portage/make.conf the following line:
source "/var/lib/layman/make.conf"
To use the LDC overlay, simply add our URL to /etc/layman/layman.cfg:
overlays : http://www.gentoo.org/proj/en/overlays/repositories.xml https://raw.github.com/ldc-developers/gentoo-overlay/master/overlays.xml
Then update the overlay list
layman -L
and add the LDC overlay:
layman -a ldc
To emerge LDC you simply type:
emerge -av ldc2
Currently the LDC packages are marked as unstable. If you do not accept unstable packages globally then you have to add to /etc/portage/package.keywords the entry
dev-lang/ldc2 **
Hardened Gentoo
Hardened Gentoo (and derivatives such as Sabayon) use a version of GCC that requires PIC executables and libraries. As LDC uses GCC for linking, this will result in errors such as:
$ ldc2 test.d /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: test.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC test.o: could not read symbols: Bad value collect2: error: ld returned 1 exit status Error: /usr/bin/gcc failed with status: 1
This can be fixed by compiling Phobos with BUILD_SHARED_LIBS (which is currently unsupported and broken), or by using an alternate linker. e.g.
env CC=/usr/bin/clang ldc2 test.d