From: rdparker AT butlermfg DOT org (Parker, Ron) Subject: RE: MUCH faster cygwin.dll was RE:Time and motion studies of gccand egcs and LCC 17 Feb 1998 08:22:42 -0800 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: "'gnu-win32 AT cygnus DOT com'" >Read here: >>>Geoff I would recommend using --image-base=0x78000000 >>>for cygwin.dll same as MSVCRT.DLL which is relocatable >>>and should never be loaded in the same VM anyway. >> >>You can move the base yourself if you have MSVC's editbin program: >> >> editbase /rebase:base=0x78000000 cygwin.dll >> >>Do this before you strip the .dll... > >IMO, this is not a good address to rebase cygwin into. You are correct that >it is used by msvcrt.dll. However, all applications which load cygwin.dll >load msvcrt.dll. You must realize that much of the operating system was >linked to msvcrt.dll. If you look check it out, you will see the following >dependency chain: > >cygwin.dll --> wsock32.dll --> ws2-32.dll --> msvcrt.dll > >I discovered that both DLLs were being used while using Jeffrey Richter's >liposuction32.exe on ls.exe. I did a little digging of my own to find the >source of this behavior. > >Therefore I would recommend using the following command to rebase cygwin.dll: > >rebase -b 0x61000000 -d cygwin.dll > >This will map cygwin.dll at the upper end of the 0x60000000-0x60FFFFFF range >in accordance with the recommendations from Microsoft. The MSDN Library's >description of the rebase program contains the following >A well-behaved application has its DLLs rebased so they each fall within a >unique range of the virtual address space. The system DLLs are currently >based in memory from 0x70000000 to 0x78000000 (0x68000000 to 0x78000000 on >MIPS). Therefore, you should base your DLLs from 0x60000000 to 0x68000000. >One possible scheme is to choose a base address based on the first letter of >the DLL name, as shown in the following table. >First Letter Base Address >A - C 0x60000000 >D - F 0x61000000 >G - I 0x62000000 >J - L 0x63000000 >M - O 0x64000000 >P - R 0x65000000 >S - U 0x66000000 >V - X 0x67000000 >Y - Z 0x68000000" > - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".