[Mono-dev] Platform independence of mono assemblies

Christian Krause chkr at fedoraproject.org
Wed May 18 17:53:38 EDT 2011


I'm one of the packagers of mono in Fedora and we are currently in the
process reviewing our mono packaging guidelines.

There was always much discussion and controversy about Fedora's decision
to change some of the default paths opposite to the  established "de
facto" standard of the mono run-time as well as nearly all mono-based

In Fedora, the assemblies are treated as architecture-dependent and so
they (including the GAC) are put into %{_libdir} which is /usr/lib64 on
x86_64 systems.

However, it seems to be the standard for mono to place the assemblies
under %{_prefix}/lib/, regardless of the architecture.

As far as I know this decision was based on a statement from the mono
developers ([1]), that although the C# assemblies are currently
architecture independent, it can not be guaranteed that they will be
forever. That is why Fedora treats C# assemblies as arch-dependent files
and so they are installed on multi-arch x86_64 systems into /usr/lib64.

As far as I know, the C# assemblies are indeed architecture independent
(as defined by the CIL standard). There may be some corner cases where
it is possible to explicitly write arch-dependent code, but these may be
treated as bugs in the projects.

It would be great to get the view of the mono developers about the
architecture-independence of the mono assemblies.

Thank you very much in advance!

Best regards,


More information about the Mono-devel-list mailing list