On 05/10/2012 09:55 PM, DJ Delorie wrote:
That's the default.  It doesn't work because pointers are still 16 bits.

Something's still not right then.  The H8/300 has 16 bit pointers and a
64k address space and all the processors in the family still support
that mode.

The problem is when a single object is more than 64k for the models
that have 16 bit pointers.  No, they won't work on hardware, but we
can't even *compile* them because of the dwarf limitation, which means
all the other models can't support such large objects.

I.e. the 2-byte dwarf addresses for H8/300 prevent us from supporting
C++ on the larger H8/300SX processors.
Right, so ISTM the way to fix this is to not build the C++ runtime for "normal" mode, rather than hack up the dwarf address size.

Now I know there's currently no way to do that, but that seems to me to be the correct fix. Unfortunately it's going to probably look a whole lot like multilib exceptions... Ewwww.

Jeff

Reply via email to