[ITA] _autorebase

Achim Gratz Stromeko@nexgo.de
Mon Dec 15 17:20:00 GMT 2014

Corinna Vinschen writes:
> The change is required.  The base address 0x4:00000000 is a convention
> which has been introduced to get reliable memory layout on x86_64.  All
> of Cygwin's memory allocations, be it thread stack, executable and DLL
> base addresses, heap address, or mmap's with NULL addresses, are chosen
> so as not to collide with memory allocations chosen by the OS.  The OS
> utilizes the lower 2GB 32 bit address space and the upper 0xff0:00000000
> address space pretty much exclusively, and leaves everything in between
> for the application.  Thus we developed the following convention, which
> should be followed by every tool in the distro:
>   0x000:00000000 - 0x000:7fffffff    Reserved for OS
>   0x000:80000000 - 0x000:ffffffff    POSIX threads
>   0x001:00000000 - 0x001:7fffffff    Process image
>   0x001:80000000 - 0x001:ffffffff    Cygwin DLL w/ all shared data
>   0x002:00000000 - 0x003:ffffffff    8 Gigs for rebased DLLs
>   0x004:00000000 - 0x005:ffffffff    8 Gigs for non-rebased DLLs
>   0x006:00000000 - 0x6ff:ffffffff    Heap bottom-up, mmaps top-down
>   0x700:00000000 - 0x7ff:ffffffff    Reserved for OS
> This was discussed and documented multiple times during the development
> of the 64 bit version.  Please let's stick to that.

I've missed it at the time or didn't remember any of it.  In any case
it's implemented exactly like that in rebaselst anyway.

>> I'll have to see if I can dig out my notes from that time, but I think
>> it was both the ASLR and the TSAware flag that were creating problems
>> with some libraries
> TS aware?  To the contrary.  Don't remove it!

We're not talking about executables here, see my other reply.

+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Q+, Q and microQ:

More information about the Cygwin-apps mailing list