[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [DotGNU]Running mono-compiled/non-verifiable apps
From: |
Rhys Weatherley |
Subject: |
Re: [DotGNU]Running mono-compiled/non-verifiable apps |
Date: |
Wed, 26 Feb 2003 09:32:59 +1000 |
User-agent: |
KMail/1.4.3 |
On Wednesday 26 February 2003 08:07 am, Marcus wrote:
> I don't have a simple test in a short program because I don't know exactly
> what triggers the problem. Even in a relatively large program like mcs.exe
> (compiled by Mono), there is only once place where the non-verifiable code
> occurs. If you'd like to examine the assembly, I've posted it at
> http://mylinuxisp.com/~mathpup/mcs.exe
Well, it's a pity that you don't have a shorter program. Because mcs.exe
won't run on ilrun anyway - there's no System.Reflection.Emit in pnet. So,
it is impossible for me to tell if the "verification error" you are seeing is
due to a lack of libraries or the duplicate TypeRef issue.
Looking at the pnet code, I can't see any reason why it would reject duplicate
TypeRef's. It should just handle it.
Precisely what error were you getting? I got the following:
metadata error in token 0x0A000056: member
`System.Reflection.Emit.CustomAttributeBuilder..ctor' not found
mcs.exe: invalid metadata in image
That is due to a lack of libraries at load time, not a failure of bytecode
verification. It hasn't gotten to "_ILVerify" yet.
Right now, anything that goes wrong during loading is called "bad metadata".
I will add an "unresolved external" also, so as to prevent confusion between
errors due to bad metadata and errors due to missing libraries.
This still won't make mcs.exe run, but hopefully will indicate the source of
problem more clearly.
Cheers,
Rhys.