Broken autoconf mmap test (was Re: 1.7] BUG - GREP slows to a crawl with large number of matches on a single file)
Eric Blake
ebb9@byu.net
Tue Nov 10 06:18:00 GMT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[please limit replies about the patch itself to autoconf-patches]
According to Corinna Vinschen on 11/9/2009 7:05 AM:
> This part of the testcase
>
> data2 = (char *) malloc (2 * pagesize);
> if (!data2)
> return 1;
> data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
> if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
> MAP_PRIVATE | MAP_FIXED, fd, 0L))
> return 1;
>
> is bad. The chance that the address of data2 is not usable for mmap on
> Windows/Cygwin is 100%. The problem here is that the generic HAVE_MMAP
> test tests one certain feature, which is not usable on Windows, and which
> is non-portable.
MAP_FIXED appears to be more portable when the fixed address was obtained
from a previous mmap call. Therefore, this patch fixes the macro as well
as making diagnosing configure failures more accurately pinpoint why they
are declaring failure. I don't have access to HP-UX 11, which is another
platform where AC_FUNC_MMAP was failing; I would appreciate if someone
else could see if this makes a difference there. But I have verified that
this now sets HAVE_MMAP for cygwin 1.5.x and cygwin 1.7 where the old
version failed, and that it does not change behavior on Linux or OpenBSD.
- --
Don't work too hard, make some time for fun as well!
Eric Blake ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkr484kACgkQ84KuGfSFAYDCIgCbBl/eHS9C9acPwXp5Krk7KAeF
zAIAoMBEbnQm5tLpRDkCFWhEXNieL5cf
=3fYB
-----END PGP SIGNATURE-----
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: autoconf.patch240
URL: <http://cygwin.com/pipermail/cygwin/attachments/20091110/7ec66106/attachment.ksh>
-------------- next part --------------
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list