This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Darwin/x86 port (v4 - part 3/4: i386-darwin files)

On Nov 18, 2008, at 9:37 PM, Stan Shebs wrote:

Tristan Gingold wrote:

#include <mach/thread_status.h>
This code is a little mixed up, I've been studying the situation but am not yet sure how to proceed.

The high-order bit is that we can't allow native-only headers to be included into *-tdep.c files - they must be able to be compiled on any host. One either precalculates offsets and such and uses, or defines lookalike structs. The alternative is to move code into a nat.c file. Given that Apple's GDB isn't correctly set up to be a cross-debugger either, the easiest path is to migrate code into i386- darwin-nat.c . When you can compile i386-darwin-tdep.c on a Sparc Linux host, you're done. :-)

I have migrated all the register stuff to i386-darwin-nat.c which makes i386-darwin-tdep.c much smaller.
I haven't checked it could be compiled on Sparc Linux (as I don't have access to such a machine :-) but
looking at the file it should be.

The other thing that is problematic is the large-scale use of macros like FIRST_GP_REGNUM and friends. This is an unfortunate consequence of being diverged from FSF for so long - this method of handling registers was left behind years ago, and has only survived in Apple's GDB due to inertia. Even though the files are isolated into being Darwin-specific, it still brings obsolete technique back into the trunk, confusing developers and increasing support burden.

So since a bunch of code has to be moved anyway, I'd like you to take the opportunity to look at regsets as used in i386-linux-nat.c and i386-linux-tdep.c and see how much work it would be to switch over. I think you'll find it a win, and that a lot of this code will simply go away.

I have looked at i386-linux-nat.c and amd64-linux-nat.c and switched over. This makes the code smaller
(and much different from Apple's GDB).

Thank you very much for pointing this issue. Very useful to improve the code.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]