2007-06-28 Jonathan Pryor * src/create-native-map.cs: Sort members by Ordinal|IgnoreCase; sort types by their .FullName property, so that namespace is taken into account when sorting them and emitting their declarations. * src/TestMap.cs: Make one of the enum's a `long' type, to see how the constants change in the generated .h file. * src/test.h.ref, src/test.xml.ref, src/test.c.ref, src/test.cs.ref: Flush (due to TestEnum type change in TestMap.cs). 2007-04-12 Jonathan Pryor * src/create-native-map.cs: Remove unused methods; fix indenting; fix _cnm_return_val_if_overflow() so that it doesn't trigger false positives on Linux and Intel Mac OS X * src/Makefile.am: Test --impl-header with a header that actually exists -- allows the libtest.so target to actually work. (Granted, now "test.h" has *two* includes in test.c, but that's not a problem.) Add a test-overflow target to create test-overflow program from test-overflow.c, test-overflow.h. * src/test-overflow.c, src/test-overflow.h: Tests for _cnm_return_val_if_overflow(). * src/test.c.ref: Flush. 2006-11-30 Mike Kestner * bin/Makefile.am: distcheck fixes * bin/create-native-map.in: renamed for distcheck friendliness * src/Makefile.am: distcheck fixes 2006-11-30 Jonathan Pryor * src/create-native-map.cs: _cnm_return_val_if_overflow() shouldn't check for overflow if DEBUG isn't defined. It's causing too many false positives in MonoPosixHelper. * src/test.c.ref: Flush (_cnm_return_val_if_overflow() change). 2006-11-17 Jonathan Pryor * src/create-native-map.cs: SupressFlags values should still be bitwise OR'd with the value returned from the FromManagedType() functions, just like they are in the ToManagedType() functions. * src/test.c.ref: Flush (SuppressFlags fix) 2006-11-15 Jonathan Pryor * src/create-native-map.cs: - Mask against SuppressFlags if SuppressFlags is non-null, as if you have bitmask & non-bitmask values in the same enum, it's fairly certain that the non-bitmask values won't start at 0. This fixes FilePermissions mapping in MonoPosixHelper. - Fix _cnm_return_val_if_overflow() macro so that it doesn't generate warnings about value overflows. * src/MapAttribute.cs: Change SuppressFlags to be a string, not a bool. This contains the value to mask against. * src/TestMap.cs: Test new SuppressFlags semantics. * src/test.c.ref: Flush (updated _cnm_return_val_if_overflow() value; addition of bitmask semantics). 2006-10-30 Wade Berrier * src/Makefile.am bin/Makefile.am: add source files to EXTRA_DIST to fix building from tarball 2006-10-27 Jonathan Pryor * man/create-native-map.1: Add documentation for MapAttribute.SuppressFlags; remove documentation for MapAttribute.NativeSymbolPrefix. * src/create-native-map.cs: Add support for MapAttribute.SuppressFlags. * src/MapAttribute.cs: Add SuppressFlags property (default is false). * src/TestMap.cs: Add [Flags] enums, and tests for [Map(SuppressFlags=true)]. * src/test.c.ref, src/test.cs.ref, src/test.h.ref, src/test.xml.ref: Flush. 2006-10-26 Jonathan Pryor * src/create-native-map.cs: Enclose structure conversion functions with `#ifdef HAVE_<>', as not all platforms will have the required types. For example, only *nix platforms have `struct stat', so having a function which uses `struct stat' on Win32 will break (w/o the use of Cygwin). * src/test.c.ref: Flush. 2006-10-26 Jonathan Pryor * src/create-native-map.cs: Remove the fallback, and just fallback to the appropriate System.Int??.MinValue/MaxValue values. * src/test.c.ref: Flush. 2006-10-26 Jonathan Pryor * src/create-native-map.cs: Add support for limits fallbacks -- if G_MAXINT8 isn't defined, fallback to INT8_MAX (from ), and if that doesn't exist use a hard-coded (possibly wrong) implementation. * src/test.c.ref: Flush. 2006-10-24 Jonathan Pryor * Makefile.am, lib/Makefile.am: Added; build subdirectories. * bin/create-native-map: Script to startup `dirname`/../lib/create-native-map/create-native-map.exe. * bin/Makefile.am: Added; install $bindir/create-native-map. * lib/create-native-map/Makefile.am: Added; present to make sure $top_builddir/lib/create-native-map is created. * lib/pkgconfig/create-native-map.pc.in: Aded; pkgconfig file to copy an installed version of create-native-map.exe & MapAttribute.cs. * lib/pkgconfig/Makfile.am: Added; install the create-native-map.pc file. * man/create-native-map.1: Man page for create-native-map. * man/Makefile.am: Added; install the man page. * src/create-native-map.cs: - Moved from mcs/class/Mono.Posix/Mono.Unix.Native/make-map.cs - check for t.Namespace==null before looking using Configuration.NamespaceRenames (Dictionary`2 doesn't like null keys); - HeaderFileGenerator needs to know about member renames (so it uses the renamed member in conversion code); - Clean up enumeration generation for readablility. - Generate structure declarations for [Map]-decorated types and types used within a [DllImport]-marked method. - Warnings should be prefixed with "warning: ". - Don't generate function prototypes for already-generated functions (e.g. if we emit a prototype for Mono_Posix_ToFilePermissions, don't re-declare that function later because we found a DllImport for it). - Add new arguments: --autoconf-member, --exclude-native-symbol, --library, --rename-member, --rename-namespace. These are to: - Allow native structure members to only be accessed if an Autoconf macro is defined (--autoconf-member) - Modify the C "namespace" of types/functions (--rename-namespace) - Specify the DllImport library that prototypes should be generated for (--library) - Exclude symbols from the function declaration system (--exclude-native-symbol) - Member renaming (--rename-member). (Curse you glibc making st_atime a macro!) * src/Makefile.am: Added; build create-native-map.exe; test cases. * src/MapAttribute.cs: Added; the attribute that create-native-map looks for, and should be copied into projects using create-native-map. * src/TestMap.cs: Added; test case for create-native-map.exe * src/test.c.ref, src/test.cs.ref, src/test.h.ref, src/test.xml.ref: Added; expected create-native-map.exe output for TestMap.cs. * ChangeLog: Started.