Re: [RFC] DWARF 2 address size != pointer size

David S. Miller
2006-05-12T22:19:23Z

From: Daniel Jacobowitz <drow@false.org>
Date: Fri, 12 May 2006 15:56:34 -0400

> It's a code model thing. It has 64-bit pointers, but all symbols are
> 32-bit, and IIRC it actually uses 32-bit ELF.

Sparc64 with -mcmodel=medlow is the same situation, but the DWARF
address sizes are still 64-bit and don't change based upon the 64-bit
code model selected.

I guess this is a side effect of using the MIPS 32-bit ELF target
rather than something explicit the MIPS backend of GCC is doing
to tinker with the DWARF output format?

Actually, there is a Sparc situation which is more like this MIPS
case. For -mcpu=v8plus{,a,b} and friends, we're generating 32-bit
code and using 32-bit SPARC ELF, but certain registers are available
for full 64-bit integer operations (for "long long"). We don't handle
this in GDB currently because there is no easy way to get at the full
64-bit register values in a 32-bit process with a 32-bit gdb. With a
64-bit GDB we can easily do this, and under Linux/Sparc there are
special versions of the ptrace commands which allow passing 64-bit
register values back and forth to/from a 32-bit debugger.

I've always wanted to add support for that, but it's going to be real
ugly stuff and take us away from the nice unified Sparc ptrace()
support which several Sparc targets are sharing right now.