There's a crosstool-ng tool that is a great way to assemble and build (cross-)toolchains.
You can find modified version of crosstools-ng (with gdc support) here: https://bitbucket.org/xdpcx/crosstool-ng-dlang/
Basically installing crosstool-ng it's just a matter of downloading it and doing:
./bootstrap ./configure make make install
This will build and install `ct-ng` command that you can use in any directory:
cd ~/my/toolchain/buildir mkdir src cp ~/config/that/i/prepared/for/you/config .config ct-ng menuconfig ct-ng build ls arm-none-linux-eabi
The mentioned config can be found here:
At the time of writing the crosstoolchain built this way generate code that is affected by: https://bitbucket.org/goshawk/gdc/issue/120/fsection-anchors-broken-on-arm