[MonoPosixHelper] Allow MmapFlags.MAP_ANON use on OS X.
authorJonathan Pryor <jonpryor@vt.edu>
Mon, 27 Feb 2012 22:37:20 +0000 (17:37 -0500)
committerJonathan Pryor <jonpryor@vt.edu>
Mon, 27 Feb 2012 22:41:37 +0000 (17:41 -0500)
commit163f9061e1d322417eac3bdb66568ce6f9151b09
tree574a869ab8b9504a98e1dcfccd0ce21b671b83e8
parent1fd5f9af5b08318f85a5d92babca1b97396f31d3
[MonoPosixHelper] Allow MmapFlags.MAP_ANON use on OS X.

Fixes: https://bugzilla.xamarin.com/show_bug.cgi?id=3419

The problem is that OS X defines MAP_ANON but not MAP_ANONYMOUS, AND
MAP_ANON and MAP_ANONYMOUS have the same value. Furthermore,
create-native-map doesn't have any special support for constants with
the same value, so it emits the validation independently.

The result is that the following fails on OS X:

$ csharp -r:Mono.Posix.dll
csharp> int r;
csharp> using Mono.Unix.Native;
csharp> NativeConvert.TryFromMmapFlags(MmapFlags.MAP_ANONYMOUS, out r);
false
csharp> r;

The (hackish) fix is to provide MAP_ANONYMOUS on OS X, thus allowing
the existing validation logic to work as expected.
support/mph.h