GHDL backends ============= In a deviation from upstream which installs a single backend selected at compile time, the Debian packaging offers all three backends and also allows them all to be installed at the same time. GHDL offers three machine code generation backends: one based on GCC, one using the LLVM compiler suite and a GHDL specific one called mcode. These are available in the ghdl-gcc, ghdl-llvm and ghdl-mcode packages respectively. Both the GCC and LLVM backends create highly optimized code for excellent simulation performance while simulations compiled with the GCC backend also allow coverage testing using gcov. The mcode backend creates less performant code but makes up for it with much faster compilation. It is therefore preferable for smaller projects without large or long running simulations. Different from upstream, the GHDL package allows simultaneous installation of multiple backends. The GHDL executable /usr/bin/ghdl is a symlink managed using the update-alternatives(1) framework. If you want to run GHDL with a specific backend you can directly run their executable, named ghdl-mcode, ghdl-gcc and ghdl-llvm respectively. Build profiles ============== When building the Debian package from source, it is possible to skip building any of the backends using the build profile mechanism. The profiles are named pkg.ghdl.nogcc, pkg.ghdl.nollvm and pkg.ghdl.nomcode.