Hi,<div><br></div><div>Patch applied.</div><div><br></div><div>Thanks</div><div>Marek</div><div><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I'm trying to bundle an application that uses the mcs, that's why I need to<br>
bundle mcs as well.<br>
When I tried I've get the following exception:<br>
<br>
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentOutOfRangeException:<br>
Cannot be negative.<br>
  at System.String.Substring (Int32 startIndex, Int32 length) [0x00000] in<br>
<filename unknown>:0<br>
  at Mono.CSharp.StaticLoader..ctor (Mono.CSharp.StaticImporter importer,<br>
Mono.CSharp.CompilerContext compiler) [0x00000] in <filename unknown>:0<br>
  at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0<br>
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename<br>
unknown>:0<br>
<br>
The code causing this is in ikvm.cs:<br>
<br>
   var corlib_path = Path.GetDirectoryName (typeof<br>
(object).Assembly.Location);<br>
   string fx_path = corlib_path.Substring (0, corlib_path.LastIndexOf<br>
(Path.DirectorySeparatorChar));<br>
   if (compiler.Settings.StdLib) { ...<br>
<br>
When mcs is bundled corlib_path is empty and this cause the<br>
corlib_path.LastIndexOf to return a -1, but<br>
both corlib_path and fx_path are used only inside the "if<br>
(compiler.Setting.StdLib)" then branch.<br>
<br>
I then tried moving the two lines inside the if body. Passed -nostdlib to<br>
the mcs during compilation and an explicit reference to a mscorlib.dll file.<br>
In this way everything works.<br>
<br>
I thus propose to apply the patch that I'm attaching.<br>
<br>
Just out of curiosity, is there any reason for which fx_path is not computed<br>
using Path.GetDirectoryName(corlib_path) (and for which corlib_path is not<br>
checked to be not empty)?<br>
<br>
Thanks.<br>
--Tommaso<br>
<br>
mcs.nostdlib.patch<br>
<<a href="http://mono.1490590.n4.nabble.com/file/n4657173/mcs.nostdlib.patch" target="_blank">http://mono.1490590.n4.nabble.com/file/n4657173/mcs.nostdlib.patch</a>><br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://mono.1490590.n4.nabble.com/patch-to-make-mcs-bundlable-tp4657173.html" target="_blank">http://mono.1490590.n4.nabble.com/patch-to-make-mcs-bundlable-tp4657173.html</a><br>
Sent from the Mono - Dev mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</blockquote></div><br></div>