This is the mail archive of the cygwin mailing list for the Cygwin 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: Windows Server 2003 on AMD64, One More Ping

At 10:12 AM 1/18/2004, Benson Margulies wrote:


Some time ago, I reported that fork() didn't work when running the
current cygwin distro on the AMD64 on Windows. At the time, I debugged
far enough to get an approximate picture of what Cygwin was doing with
VirtualXXX calls to implement fork, and I posted some questions in the
hopes of understanding it well enough to try to make a fix. As far as I
could see, I didn't get a reply.

To summarize, it seemed to me as if the code was making some assumptions
about what virtual addresses ranges would be available and assigned
under certain conditions related to fork, and that these assumptions
were not valid on the AMD64, leading to failures.

Presumably, a ground-rule of Cygwin is to program only to the documented
Win32 API, and not to resort to the NT API substrate as illustrated in

In any case, the offer is still open; if someone would be so kind as to
offer up a summary of the design of fork(), I'd be willing to make some
effort to diagnose and propose mods to adapt it.

Since this hasn't been answered by more knowledgeable people, I'll stick my neck out. No, I don't believe anyone has found satisfactory support for fork() within the documented Win32 API. Thus, cygwin is easily broken by changes which Microsoft has made in the various "64-bit" Windows versions. I do believe Cygwin has ground rules of running only on released Windows versions for which cgf has been provided a working hardware platform. If you're talking about the Physical Address Extension Windows with 48-bit virtual/40-bit physical- addressing for AMD64, that meets neither of those criteria. Apparently, no one has been willing to provide any "64-bit" Windows hardware for the Cygwin project, even for the released ia64 Windows. If you don't have more time than I to look at the source and try to understand how fork() was implemented, I think you're wasting bandwidth. Likewise, if you're proposing supporting a version of Windows which Microsoft will not permit the Cygwin project to use. If you're talking about standard released 32-bit Windows running on an AMD, my impression is there should be no problem.

Tim Prince

-- Unsubscribe info: Problem reports: Documentation: FAQ:

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