[Mono-dev] mgnat.dll saga

Laurent GUERBY laurent at guerby.net
Sun Nov 13 06:24:35 EST 2005


On Sun, 2005-11-13 at 11:53 +0100, Robert Jordan wrote:
> Hi Laurent,
> 
> Your assembly is not a valid PE file. You may check it yourself
> with pedump --verify all mgnat.dll

Thanks for the hint! I removed the /key=.../TestKey.snk argument to the
ilasm command generating mgnat.dll from the big .il file and it removed
the CS0006 message (may be TestKey.snk is somewhat invalid?). pedump now
says:

guerby at m:~/tmp/mgnat/src/lib> pedump --verify all mgnat.dll
CLS: Invalid CLS name '_tag` in Field row 11
CLS: Invalid CLS name '_gnat_stack_cache` in Field row 14
CLS: Invalid CLS name '_tag` in Field row 28
CLS: Invalid CLS name '__gnat_inside_elab_final_code` in Field row 36
CLS: Invalid CLS name '_master` in Field row 349
CLS: Invalid CLS name '_task_id` in Field row 476
CLS: Invalid CLS name '_priority` in Field row 477
CLS: Invalid CLS name '_tag` in Field row 478
CLS: Invalid CLS name '_master` in Field row 494
CLS: Invalid CLS name '_master` in Field row 866
CLS: Invalid CLS name '_chain` in Field row 883
CLS: Invalid CLS name '_master` in Field row 888
CLS: Invalid CLS name '_master` in Field row 997
CLS: Invalid CLS name '_controller` in Field row 1070
CLS: Invalid CLS name '_object` in Field row 1072
CLS: Invalid CLS name '_tag` in Field row 1073

On the mcs side I have some progress:

$ mcs /debug /t:library /r:mgnat.dll /out:mgnatcs.dll AssemblyInfo.cs Acc.cs Dbl.cs Flt.cs Int.cs UInt.cs Lng.cs _abort_signal.cs constraint_error.cs program_error.cs storage_error.cs tasking_error.cs standard\$access_string.cs Ada_AR.cs Object_File.cs PushbackReader.cs Prim_Input_Stream.cs Prim_Output_Stream.cs Prim_Conversions.cs ada_wrapper.cs GNAT_libc.cs ada.cs ada.calendar.cs array_constructor.cs

** (/usr/lib/mono/1.0/mcs.exe:11960): WARNING **: The following assembly referenced from /home/guerby/tmp/mgnat/src/lib/mgnat.dll could not be loaded:
     Assembly:   mgnatcs    (assemblyref_index=1)
     Version:    3.0.0.0
     Public Key: 3e8670be13aa99a5
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/guerby/tmp/mgnat/src/lib).


** ERROR **: file class.c: line 2418 (mono_class_setup_parent): should not be reached

It looks like mgnat.dll refers to mgnatcs.dll and mgnatcs.dll refers to
mgnat.dll, is that kind of circular dependancy possible? If so, do I
need a flag or something?

Laurent





More information about the Mono-devel-list mailing list