[Mono-dev] patch to make mcs "bundlable"

Marek Safar marek.safar at gmail.com
Tue Oct 30 12:53:50 UTC 2012


Hi,

Patch applied.

Thanks
Marek

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


More information about the Mono-devel-list mailing list