`dmd` requires `libgcc` to be able to run `dmd` binary. As a result
`pkgsLLVM.dmd` fails the eval as:
$ nix build -f. pkgsLLVM.dmd
error: attribute 'libgcc' missing
at pkgs/development/compilers/dmd/binary.nix:31:5:
30| glibc
31| stdenv.cc.cc.libgcc
| ^
Such reference to non-existent attributes is an unrecoverable exception.
The change turns it into recoverable `assert`:
$ nix build --no-link -f. pkgsLLVM.dmd
error: assertion '((hostPlatform).isLinux -> (((stdenv).cc.cc) ? libgcc))' failed
at pkgs/development/compilers/dmd/binary.nix:12:1:
11| # and can't build `dmd`.
12| assert hostPlatform.isLinux -> (stdenv.cc.cc ? libgcc);
| ^
This reverts commit c778945806.
I believe this is exactly what brings the staging branch into
the right shape after the last merge from master (through staging-next);
otherwise part of staging changes would be lost
(due to being already reachable from master but reverted).