[Mono-dev] small footprint mono / AOT
jonathan.shore at gmail.com
Wed Aug 24 14:03:50 EDT 2011
I have somewhat unusual requirements whereby need to have a minimal footprint, native, statically compiled app. (well yes they mostly intersect with embedded applications, but with some further requirements).
This application will be distributed to thousands of linux and windows boxes to evaluate a computation. Due to bandwidth considerations and "no-touch" in terms of OS/library modifications, this deployment needs to be:
- as small as possible
- statically linked (well libmono.a kind of fits)
- no system / native dll dependencies (other than would be present on a vanilla windows XP or linux distro).
- no installation of mono, gac requirement, etc.
I've looked at: http://www.mono-project.com/Small_footprint. I have also looked at the default size of libmono.a (5.6M) and System.dll (1.6M). It would seem that I can reduce libmono to 1.7M with a recompilation with minimal features according to the document. Further questions:
is System.dll the same as mscorlib.dll (one being mono's and the other MS's)? Or are both of these needed?
is there a tool to build a special trimmed System.dll just to use the classes and descendents used by my application? (I just use basic types + System.Collections + System.IO)
are there any dependencies on shared libraries with a libmono.a linkage (on linux and windows)?
are there any other files required besides System.dll (and my app dll), once libmono is linked to a host C-based application?
can an AOT+libmono embedded app run with no gac or specific dependencies, other than System.dll known to be in an arbitrary location?
Sorry to dump so many questions (and thanks in advance). I need to determine whether this is viable without major hacking.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list