Choosing the correct compiler version
Alexander Zhirov
azhirov1991 at gmail.com
Mon Jul 25 07:31:52 UTC 2022
On Thursday, 21 July 2022 at 05:44:41 UTC, Alexander Zhirov wrote:
> I will report on the successes a little later.
Result:
I downloaded and unpacked the binary version of the `dmd`
compiler version
[2.097.2](http://downloads.dlang.org/releases/2021/dmd.2.097.2.linux.tar.xz), which runs without problems with my `glibc` set.
Then I compiled the `GCC` compiler version 9.5.0 from the source
code:
```sh
wget
https://ftp.mpi-inf.mpg.de/mirrors/gnu/mirror/gcc.gnu.org/pub/gcc/releases/gcc-9.5.0/gcc-9.5.0.tar.gz
mkdir build-gcc && cd build-gcc
../gcc-9.5.0/configure --prefix=$PWD/../install-gcc
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-clocale=gnu --enable-languages=c,c++
make -j16
make install
```
Then I built `LLVM` using this compiler, according to the
instructions on the [LDC
website](https://wiki.dlang.org/Building_LDC_from_source#Building_LLVM_from_source):
```sh
export CC=/root/source/gcc/gcc-install/bin/gcc
export CXX=/root/source/gcc/gcc-install/bin/g++
mkdir build-llvm && cd build-llvm
cmake ../llvm-10.0.1.src -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=$PWD/../install-llvm
-DLLVM_BINUTILS_INCDIR=/usr/include -DLLVM_TARGETS_TO_BUILD='X86'
-DCOMPILER_RT_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TESTS=OFF
make -j16
make install
```
And then I built the `ldc` compiler myself, also according to the
instructions on the
[website](https://wiki.dlang.org/Building_LDC_from_source#Building_LDC_from_source):
```sh
git clone --recursive https://github.com/ldc-developers/ldc.git
mkdir build-ldc && cd build-ldc
cmake ../ldc -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=$PWD/../install-ldc
-DLLVM_ROOT_DIR=<PATH_TO_LLVM_INSTALL>
-DD_COMPILER=<PATH_TO_DMD_COMPILER_X32>
make -j16
make install
```
As a result, I built the `ldc` compiler for my `x32` machine:
```sh
# ldc2 --version
LDC - the LLVM D compiler (1.30.0):
based on DMD v2.100.1 and LLVM 10.0.1
built with DMD32 D Compiler v2.097.2
Default target: i686-pc-linux-gnu
Host CPU: broadwell
http://dlang.org - http://wiki.dlang.org/LDC
Registered Targets:
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
```
I hope my guide will be useful to someone who will face the same
task. Thank you for your help!
More information about the Digitalmars-d-learn
mailing list