This is the mail archive of the gdb-patches@sourceware.org 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]

some news about the x86_64-windows port...


It's been a little bit more of a struggle than I thought it would be,
but I have an initial port for x86_64-windows. Attached is the overall
patch, which I did split into 17 small patches (if I counted right).
This patch should apply to the current CVS HEAD.  This patch is not for
discussion, as it is fairly large, but just FYI, and if someone wants to
play with the debugger. A collection of smaller patches will be sent
out soon.

To build, configure as x86_64-.*-mingw32. I would have prefered to use
"mingw" but config.sub rejects it. GDB, however, only cares about "mingw",
so as soon as config.sub is updated, we'll be able to configure with
"mingw".

In terms of functionality, it seems to work reasonably well, with
the following notable issues:

  - Thread switching seems broken. I'm not sure yet if it is because
    we're reading bogus PC register values for the non-current threads,
    or because of something else.

  - Inferior is broken. This could be related to Windows using
    a different ABI than other x86_64 targets. Not sure.

I think I've hit my limit in terms of how much Windows I can get
within a certain period of time, so I'll leave these issues as is
for now, and focus on contributing what I have now.
  
One last thing: I don't have a 64bit cygwin compiler, so I didn't try to
port GDB to cygwin as well. I suspect it will be trivial to do so after
my changes are incorporated.

In terms of copyright, I declare that AdaCore is the sole author of
all these changes, with one exception in amd64-windows-nat.c. The
"mappings" array contains the following entries:

  context_offset (FloatSave.ErrorSelector),
  context_offset (FloatSave.ErrorOffset),
  context_offset (FloatSave.DataSelector),
  context_offset (FloatSave.DataOffset),
  context_offset (FloatSave.ErrorSelector)

These entries are supposed to be the offset of the following
registers in the CONTEXT structure:

  "fiseg", "fioff", "foseg", "fooff", "fop",

I couldn't find what these registers are about, so I cheated and
used the sources that Kai sent me. I have no idea whether this
is correct or not.

-- 
Joel

Attachment: amd64-windows.diff
Description: Text document


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