February 15, 2013
After months of putting it off (maybe a year), I've gotten round to throwing myself at this and stubbing out all these functions that do a lot of DMD-backend calls that until now GDC has provided for internally to generate the initial values for static symbols in D code.

Benefits:
- Lose all the ugly code that uses, and drop struct dt_t's intermediate representation and instead directly build gcc trees directly from the toDt stage.
- Removes all SC*; DT_*; FL* stubs that are ignored by gdc, meaning we can free up a lot of the logic in the existing functions when copying the implementation across.
- Removes all dt* wrapper functions, and the Obj interface.
- Remove the source files dt.cc, dt.h, and symbol.h.
- Should fix -fsection-anchors bug on ARM in the process.

Cons:
- Changes to ABI has to be kept in sync when upgrading object.di.  Though this should be trivial once everything is in place as there are no erratic changes made to D2 anymore [sic]™


Going to be branching this to gcc_dt in GDC. Initially will be mostly incomplete, but feel free to help speed this major re-work in development along.


Thanks
Iain.