Hello, I wanted to use Marshal.PrelinkAll() in order to pre-initialize a PInvoke. Unfortunately, executing this method leads to an assertion failure on x86/Linux. The C# code is quite simple:
using System; using System.Runtime.InteropServices; class Test1 { [DllImport("libpinvoke")] public static extern int pinvoke(int value); static void Main (string[] args) { Marshal.PrelinkAll(typeof(Test1)); int ret = pinvoke(1); Console.WriteLine("return value: " + ret.ToString()); } } .. as well as the library code (pinvoke.c): int pinvoke( int value ) { return value; } The full example including Makefile can be downloaded [1]. Surprisingly, the assertion is raised by Mono 2.6.1 and 2.10.7, but not by Mono 2.8.2 (the versions I tested). Further, the assertion is not raised when the C# code was AOT-compiled in advance (works with each tested Mono version). Is it a bug or a feature? With kind regards, Martin Däumler [1] http://www-user.tu-chemnitz.de/~mdae/PrelinkAllTest.tar _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list