This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: New Cygwin family member
On Feb 6 12:20, Corinna Vinschen wrote:
> On Feb 5 22:14, Yaakov wrote:
> > On Tue, 5 Feb 2013 21:04:11 -0500, Chris Sutcliffe wrote:
> > > I'm guessing we're a ways out from that point yet, but when we get to
> > > the point where Cygwin is officially offered in both architectures,
> > > will the ask be of the various maintainers to produce binaries for
> > > both (I personally don't mind as long as the tools exist to do it).
> >
> > The problem is that not *everything* can be cross-compiled easily, if
> > at all. Linux distributions generally use dedicated build
> > machines/farms (e.g. koji for Fedora) for this very reason. This will
> > certainly need to be addressed when the time comes.
>
> Yeah. This will still be a heck of a lot of work. Given that "Hello
> World" is barely a day old, you may understand that I didn't even dare
> to call fork yet :}
Yay! I have a running dash and fork works! <at this point, imagine
the *plop* sound of opening a bottle of finest champagne>
> Another really big problem is entirely unsolved yet: 32 and 64 bit
> Cygwin processes execing each other, as well as working together.
Another problem is the memory layout (the "fork" problem). Fortunately
we have a 43 bit address space now. Here's is our current model, still
open for discussion:
- Keep clear of memory from 0x0 up to 0x0:7fffffff, and from
0x700:00000000 up to 0x7ff:ffffffff since these areas are used
by the OS for ... everything.
- Cygwin thread stacks will be located between 0x0:80000000 and
0x0:ffffffff. With a default stack size of 1 Meg, we have room for
2048 threads.
- The Cygwin executables will be loaded to 0x1:00040000.
- The Cygwin DLL will be loaded to 0x1:80040000. That leaves 2 Gigs of
space for the executable. The space from 0x1:8000000 up to
0x1:80040000 will be used for Cygwin's shared memory areas.
- Other Cygwin distro DLLs are supposed to be rebased to the area
between 0x2:00000000 up to 0x3:ffffffff. This is an area of 8 Gigs
for DLLs. That should be enough for a while, I guess.
- The heap will be located at 0x4:00000000, and it will be 512Megs by
default.
- Then ... a big void ...
- Eventually, mmap's will be allocated from 0x700:00000000 downwards.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat