../dmd/src/glue.a(e2ir.o):(.rodata._ZTV9SymbolExp[_ZTV9SymbolExp]+0x90): undefined reference to `Expression::toString()'
../dmd/src/glue.a(e2ir.o):(.rodata._ZTV9SymbolExp[_ZTV9SymbolExp]+0xe0): undefined reference to `Expression::inferType(Type*, int, Scope*, Array<TemplateParameter>*)'
../dmd/src/glue.a(e2ir.o):(.rodata._ZTV9SymbolExp[_ZTV9SymbolExp]+0x170): undefined reference to `Expression::buildArrayIdent(OutBuffer*, Array<Expression>*)'
../dmd/src/glue.a(e2ir.o):(.rodata._ZTV9SymbolExp[_ZTV9SymbolExp]+0x178): undefined reference to `Expression::buildArrayLoop(Array<Parameter>*)'
../dmd/src/glue.a(tocsym.o):(.rodata._ZTV17SymbolDeclaration[_ZTV17SymbolDeclaration]+0x188): undefined reference to `Dsymbol::addComment(unsigned char const*)'
../dmd/src/glue.a(tocsym.o):(.rodata._ZTV24TypeInfoClassDeclaration[_ZTV24TypeInfoClassDeclaration]+0x188): undefined reference to `Dsymbol::addComment(unsigned char const*)'
../dmd/src/glue.a(typinf.o):(.rodata._ZTV24TypeInfoConstDeclaration[_ZTV24TypeInfoConstDeclaration]+0x188): undefined reference to `Dsymbol::addComment(unsigned char const*)'
../dmd/src/glue.a(typinf.o):(.rodata._ZTV28TypeInfoInvariantDeclaration[_ZTV28TypeInfoInvariantDeclaration]+0x188): undefined reference to `Dsymbol::addComment(unsigned char const*)'
../dmd/src/glue.a(typinf.o):(.rodata._ZTV25TypeInfoSharedDeclaration[_ZTV25TypeInfoSharedDeclaration]+0x188): undefined reference to `Dsymbol::addComment(unsigned char const*)'
../dmd/src/glue.a(typinf.o):(.rodata._ZTV23TypeInfoWildDeclaration[_ZTV23TypeInfoWildDeclaration]+0x188): more undefined references to `Dsymbol::addComment(unsigned char const*)' follow
These appear to happen because a class (SymbolExp) has a member function written in e2ir.c, and g++ is writing out the full vtable complete with references to the actual functions, whereas dmc just references the vtable symbol. It then fails because eg toString was renamed to _toString, templated structs are currently mangled wrong, unsigned char is mangled differently to 'char' etc
Is there a way anyone knows of to make g++ just reference the vtable symbol, and not re-emit the contents?