<br><br><div class="gmail_quote">On Wed, Aug 24, 2011 at 3:03 PM, Jonathan Shore <span dir="ltr">&lt;<a href="mailto:jonathan.shore@gmail.com">jonathan.shore@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word">Hi,<div><br></div><div>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).</div>
<div><br></div><div>This application will be distributed to thousands of linux and windows boxes to evaluate a computation.   Due to bandwidth considerations and &quot;no-touch&quot; in terms of OS/library modifications, this deployment needs to be:</div>
<div><br></div><div>- as small as possible</div><div>- statically linked (well libmono.a kind of fits)</div></div></blockquote><div><br></div><div><br></div><div>Keep in mind that the mono runtime in under the LGPL2 which demands that relinking be possible. If you can&#39;t afford that you must negotiate</div>
<div>another license from Xamarin or Novell.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word"><div>
- no system / native dll dependencies (other than would be present on a vanilla windows XP or linux distro).</div><div>- no installation of mono, gac requirement, etc.</div><div><br></div><div>I&#39;ve looked at:  <a href="http://www.mono-project.com/Small_footprint" target="_blank">http://www.mono-project.com/Small_footprint</a>.   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:</div>
<div><br></div><div><ol><li>is System.dll the same as mscorlib.dll (one being mono&#39;s and the other MS&#39;s)?  Or are both of these needed?</li></ol></div></div></blockquote><div>The only library strictly needed is mscorlib. System has other types.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word"><div><ol><li>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)</li>
</ol></div></div></blockquote><div><br></div><div>Yes, you can use the mono linker for such thing.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word">
<div><ol><li>are there any dependencies on shared libraries with a libmono.a linkage (on linux and windows)? </li></ol></div></div></blockquote><div><br></div><div>On linux libc, pthread, m. Optionally glib and icu.</div>
<div>No idea on windows, but should be analogous to linux.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div style="word-wrap:break-word"><div><ol>
<li>are there any other files required besides System.dll (and my app dll), once libmono is linked to a host C-based application? </li></ol></div></div></blockquote><div>mscorlib is always required</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word"><div><ol><li>can an AOT+libmono embedded app run with no gac or specific dependencies, other than System.dll known to be in an arbitrary location?</li></ol></div></div></blockquote><div><br>
</div><div>Yes, this is how Xamarin&#39;s MonoTouch and Mono for Android products work.</div><div><br></div><div> </div><div><br></div><div><br></div><div><br></div></div><br>