Why doesn't GCC together with GNU ld support type-checked linking when the DWARF-format contains all the type-information we need?
The problem is significantly more complex than you make it appear.
We waste a lot of time on our company trying to make Ada and C communicate safely.
Then code support for this into GNU ld
or gold
(the latter is much faster, and much easier to hack on), and contribute it upstream. Problem solved?