Re: mmap() and gcc precompiled headers

2003-07-05 Thread Corinna Vinschen
On Sat, Jul 05, 2003 at 03:26:08PM +0200, Corinna Vinschen wrote: > I'll rewrite munmap this weekend if I get the chance. I've checked in a patch. I'd be glad if you could have a look into it. Thanks again for your analyzis. It's highly appreciated, Corinna -- Corinna Vinschen

Re: mmap() and gcc precompiled headers

2003-07-05 Thread Corinna Vinschen
On Fri, Jul 04, 2003 at 12:34:13PM -0700, Earl Chew wrote: > DWORD high; > DWORD low = GetFileSize (fh->get_handle (), &high); > __off64_t fsiz = ((__off64_t)high << 32) + low; > /*1*/ fsiz -= gran_off; > if (gran_len > fsiz) > /*2*/ gran_len = fsiz; > > First

Re: mmap() and gcc precompiled headers

2003-07-04 Thread Earl Chew
Corinna Vinschen wrote: o I think there is a problem with the address arithmetic in the match() method used by munmap(). Compare the code in list::match (__off64_t off, DWORD len) with list::match (caddr_t addr, DWORD len, __off32_t start). > Uhm, no. Thanks for the detailed explanation. You'

Re: mmap() and gcc precompiled headers

2003-07-04 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 06:23:26PM -0700, Earl Chew wrote: > o The if (addr) test is redundant (it will always succeed -- I think > you meant to write *addr, but I think it's better to simply do > away with the test since it doesn't buy anything). I've just fixed the conditional for now. I th

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Earl Chew
Corinna Vinschen wrote: In other words, addr -= (off - gran_off). This address should now be 64k aligned. Error if it isn't. Use this address when calling MapViewOfFileEx(). If the call fails and MAP_FIXED is not set, then try again with addr = 0. Yes, that's what I mentioned in my first reply. I

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 11:33:02AM -0700, Earl Chew wrote: > Corinna Vinschen wrote: > >On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: > >>On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > >>>Do you mean something like this: > >>> > >>> If addr is given, chec

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Earl Chew
Corinna Vinschen wrote: On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: >Do you mean something like this: > > If addr is given, check if it's 64K aligned. If not, align and > raise the memory requirement accord

RE: mmap() and gcc precompiled headers

2003-07-03 Thread Chris January
> On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: > > On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > > >Do you mean something like this: > > > > > > If addr is given, check if it's 64K aligned. If not, align and > > > raise the memory requirement accordin

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Christopher Faylor
On Thu, Jul 03, 2003 at 04:30:10PM +0200, Corinna Vinschen wrote: >On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: >> On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: >> >Do you mean something like this: >> > >> > If addr is given, check if it's 64K aligned. I

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: > On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > >Do you mean something like this: > > > > If addr is given, check if it's 64K aligned. If not, align and > > raise the memory requirement accordingly. Call M

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Christopher Faylor
On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: >Do you mean something like this: > > If addr is given, check if it's 64K aligned. If not, align and > raise the memory requirement accordingly. Call MapViewOfFileEx > with the aligned address. If it works, return the addr give

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > On Wed, Jul 02, 2003 at 01:37:20PM -0700, Earl Chew wrote: > > From the FreeBSD man page: > > > > If addr is non-zero, it is used as a hint to the system. (As a > > convenience to the system, the actual address of the reg

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Wed, Jul 02, 2003 at 01:37:20PM -0700, Earl Chew wrote: > The current implementation does not know anything about the > Cygwin 64k granularity, and does not use MAP_FIXED because > MAP_FIXED may have bad side-effects on other implementations. So it can't rely on getting the mmap at the same loc

mmap() and gcc precompiled headers

2003-07-02 Thread Earl Chew
I've been trying to get the new gcc PCH code working on Cygwin. The gcc PCH implementation works by using mmap() to quickly resurrect the precompiled header when compiling on a new file. To allow this to be done quickly, mmap() is used when creating the precompiled header and the precompiled infor