X-Spam-Check-By: sourceware.org Date: Fri, 3 Feb 2006 10:23:09 -0600 (CST) From: Dave Bodenstab Message-Id: <200602031623.k13GN9mF029768@base686.home.org> To: cygwin AT cygwin DOT com Subject: Re: Possible bug with mmap on XP? In-Reply-To: <20060203085727.GY15572@calimero.vinschen.de> Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Thu Feb 2 22:55:08 2006 Corinna Vinschen wrote: > > > > Is this the way things are supposed to work on XP? > > This is a constraint of the underlying OS, yes. The old implementation > of mmap used up to 1.5.18 didn't support PROT_EXEC at all, it was just > fake. Since 1.5.19, PROT_EXEC mapping is now supported correctly, which > means, the underlying NT functions are called requesting PAGE_EXECUTE > protection. > > But here's the problem. To create file mappings with PAGE_EXECUTE > protection, the file must be opened with GENERIC_EXECUTE access. > This is done internally in mmap, but it fails if the file doesn't > have the execute permission set. > > Whether or not this behaviour is backed by SUSv3, I'm not sure. SUSv3 > states "if an implementation cannot support the combination of access > types specified by prot, the call to mmap() shall fail.", so here's one > situation in which the implementation can't support the combination of > access types specified by prot. OK. I would like to modify my program to set the required permissions. Is the mapping between Cygwin's uname()'s sysname and XP, NT, 98SE, 98, etc. available somewhere? Actually, if I could just tell if the underlying windows is XP, that would be sufficient I think. Thanks. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/