[Buildroot] [PATCH] package/mono: fixing shared/static handling

Peter Korsgaard peter at korsgaard.com
Sun Dec 14 12:16:38 UTC 2014


>>>>> "Angelo" == Angelo Compagnucci <angelo.compagnucci at gmail.com> writes:

 > Hi Peter
 > 2014-12-14 0:13 GMT+01:00 Peter Korsgaard <peter at korsgaard.com>:
 >>>>>>> "Angelo" == Angelo Compagnucci <angelo.compagnucci at gmail.com> writes:
 >> 
 >> > Mono should always be compiled with --enable-static, this patch forces
 >> > --enable-static also in case of shared only libraries.
 >> 
 >> Why? If it is really required, then mono should depend on
 >> !BR2_SHARED_LIBS and show a comment to inform the user that it needs
 >> static library support.

 > Mono doesn't really uses shared libraries at all, it ships its own
 > glibc (eglib)

I don't know much about mono, but does this 'eglib' refer to the (GNU)
C-library or the GNOME glib?

>From here it sounds like the latter:
http://www.mono-project.com/archived/eglib/

 > and its own libmono library, It should be compiled
 > statically for this reason, you can find further details here:
 > http://www.mono-project.com/docs/compiling-mono/unsupported-advanced-compile-options/#static-vs-dynamic-mono
 > Before the new shared/static handling, --enable-static was always
 > passed as a configure option.

As far as I read that, they *RECOMMEND* that you link it statically.,
but it should also work when linking dynamically.

 > Before the new shared/static handling, --enable-static was always
 > passed as a configure option.

Indeed. The point of the new handling is to ensure that only the shared
variant is built (so save build time).

With that said, I did a quick test and I couldn't get it to work with
--with-static_mono=no, and as it isn't supported by upstream just
sticking with static might be the best approach.

Looking at how E.G. Debian does it, it seems like they also link
mono(-sgen) statically:

https://packages.debian.org/jessie/mono-runtime-sgen

They do provide a libmono package:

https://packages.debian.org/jessie/libmono-2.0-1

But none of the other mono packages seem to use it, so it's presumably
for embedding mono in an application:

apt-cache rdepends libmono-2.0-1
libmono-2.0-1
Reverse Depends:
  libmono-2.0-1:i386
  mono-complete

-- 
Venlig hilsen,
Peter Korsgaard 



More information about the buildroot mailing list