[RFC] Win32 port of the userspace tools using MinGW.

Bernhard Walle bwalle at suse.de
Sun May 25 05:25:23 EDT 2008

* "Jamey Sharp" <jamey at thetovacompany.com> [2008-05-23 15:13]:
> On Thu, May 22, 2008 at 6:34 AM, Bernhard Walle <bwalle at suse.de> wrote:
> > * Jamey Sharp <jamey at thetovacompany.com> [2008-05-15 22:48]:
> >> OK, I haven't quite gotten around to posting the Windows kernel driver
> >> source that goes with this.
> >
> > Do you plan to release the driver sources?
> Yes, and I've finally done so. The code I wrote is licensed under GPLv2
> or later; some Linux kernel source is included verbatim or with
> modifications, and is licensed accordingly.
>     http://source.thetovacompany.com/kexec-win/
> I've only tried cross-compiling this code from Linux. In principle it
> should build with MinGW on Windows as well, if anyone cares. :-)

That was my first approach, because I _thought_ it might be easier than
cross-compiling. However, compiling kexec-tools on Windows did not work
here because of several reasons. I fixed up everything, but I ended in
a problem that I was not able to create a ET_REL binary of
purgatory/purgatory.ro. The problem is that -Wl,--oformat didn't work
(ld: cannot perform PE operations on non PE output file). Google
advised me to use 'objcopy' -- however, that produced a ET_EXEC
binary instead of ET_REL. The manual page of objcopy mentions

  However, copying a relocatable object file between any two formats
  may not work as expected.

At that point, I gave up and gave the cross-compiler a try. That worked
flawlessly. However, if somebody has an idea how to create a working
ELF ET_REL file on Windows with Mingw, I can post the other fixups, so
that we have a "clean" Windows port.

I'm also able to _compile_ the driver (also on Windows), but I don't
know how to _load_ the driver. Running kexec -l on Windows gave me an
error message that loading fails, and it seems that the driver device
file is just not there.

Can you please advise me here?


More information about the kexec mailing list