[Mono-dev] Question about issue building basic.exe and mscorlib paths

Zoltan Varga vargaz at gmail.com
Sun Mar 2 13:54:58 UTC 2014


Hi,

  mono requires an existing mono installation to work, and will only fall
back to monolite if it is missing. If you want it to use monolite, then
remove the existing mono installation from the PATH.

                    Zoltan


On Sun, Mar 2, 2014 at 8:24 AM, Alex J Lennon <ajlennon at dynamicdevices.co.uk
> wrote:

> Hi,
>
> I'm updating a recipe for Yocto/Openembedded layer, meta-mono, which
> cross-compiles Mono 3.2.8 for embedded Linux targets.
>
> I am using an Ubuntu 12.04 LTS host for build and previously this has
> worked well with the default mono support available in precise, version
> 2.10 I think.
>
> (NB the Yocto  build environment shouldn't have any external
> dependencies on the  host version of mono as it is building its own
> native, host, build  prior to the cross-compiled build).
>
> When I updated the host to use Mono  3.2.1 from ppa:directhex/monoxide
> for some other work I was doing, I started getting unexpected build
> problems with the meta-mono recipe.
>
> From what I've been able to track down, what is happening is that the
> build process is building basic/basic.exe from the basic profile. I'm
> not sure why this is happening as we already have the bootstrap
> basic.exe in monolite.
>
> This new basic.exe should have a dependency on the apropriate
> mscorlib.dl that is being built with it, but instead has a dependency on
> an external mscorlib.dll on the host. With Mono 3.2.1 installed this
> dependency is on /usr/lib/mono/4.5/mscorlib.dll
>
> As a result of this dependency when the new basic.exe is executed we get
> various warnings of the form,
>
> ../corlib/Mono/DataConverter.cs(759,25): warning CS0436: The type
> `Mono.DataConverter' conflicts with the imported type of same name'.
> Ignoring the imported type definition
> ../../build/common/MonoTODOAttribute.cs(38,17): (Location of the symbol
> related to previous warning)
> /usr/lib/mono/4.5/mscorlib.dll (Location of the symbol related to
> previous warning)
>
> Then an error
>
> MCS     [build] mscorlib.dll
> Unhandled Exception:
> System.TypeLoadException: Could not load type
> 'Mono.CSharp.CommandLineParser' from assembly 'basic, Version=3.2.8.0,
> Culture=neutral, PublicKeyToken=null'.
> [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not
> load type 'Mono.CSharp.CommandLineParser' from assembly 'basic,
> Version=3.2.8.0, Culture=neutral, PublicKeyToken=null'.
> make[8]: *** [../../class/lib/build/tmp/mscorlib.dll] Error 1
>
> I took a look at the basic profile make file for missing paths and I
> think it may be missing the required dependency path. When I added this
> in the build works,
>
> --- 3.2.8-r0/mcs/build/profiles/basic.make.org  2014-03-01
> 17:51:52.904670729 +0000
> +++ 3.2.8-r0/mcs/build/profiles/basic.make      2014-03-01
> 17:46:50.476669939 +0000
> @@ -12,7 +12,7 @@
>  PROFILE_RUNTIME = $(with_mono_path_monolite) $(RUNTIME)
>  BOOTSTRAP_MCS = $(PROFILE_RUNTIME) $(RUNTIME_FLAGS) $(MONOLITE_MCS) -sdk:2
>  else
> -PROFILE_RUNTIME = $(EXTERNAL_RUNTIME)
> +PROFILE_RUNTIME = ${with_mono_path) $(EXTERNAL_RUNTIME)
>  BOOTSTRAP_MCS = $(EXTERNAL_MCS)
>  endif
>
> Could somebody please comment on whether this makes sense? If so I'd be
> happy to provide the patch to you in whatever format is required.
>
> Thanks & Best Regards,
>
> Alex Lennon
> Dynamic Devices Ltd
>
>
> _______________________________________________
> 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/20140302/3ced844b/attachment.html>


More information about the Mono-devel-list mailing list