<p dir="ltr">I've got a (so far unpublished, but quite far along) project aiming to replace the traditional Unix command line (terminal, shell, tmux and miscellaneous utilities). It's predominantly C#, with a little bit of C++. One of its wishlist features is a busybox-style dependency-free binary, and a while back I made myself a hacked up mkbundle that got most of the way there, except that it still had a libc dependency and couldn't embed AOT.</p>
<p dir="ltr">So it's exciting to hear that mkbundle is getting some love! A general facility for embedding shared libraries in the bundle would be amazing for this case. Especially if it could handle both CLR DLLs and Linux shared libraries, and especially if it included the shared libraries generated by AOT compilation. If only a subset of these things work it's still useful.</p>
<div class="gmail_extra"><br><div class="gmail_quote">On Aug 19, 2016 7:13 PM, "Miguel de Icaza via Mono-devel-list" <<a href="mailto:mono-devel-list@lists.dot.net">mono-devel-list@lists.dot.net</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">







<div bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hello team,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I am very happy with the new hack to simplify creating bundles of applications, because we no longer need a C compiler to make these happen, and as a bonus, we now allow cross-compilation of bundles.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Just a couple of days ago, I added support for a new “--18n” flag that controls which encoders are shipped with the application, similar to the same setting that we surface on Xamarin.{Android,iOS,tvOS,<wbr>macOS}.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The cross-compilation feature has surfaced a problem, when we bundle, we bundle using the assemblies from the system, but a VM that you can specify, and this can lead to mismatches between the C and C# code
 in the runtime (ie, Mono 4.0 and mscorlib 4.2).  <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">So it seems to me that instead of just shipping Mono runtimes in our server for cross compilation, we are going to have to ship the entire set of assemblies that are part of a distribution. Perhaps all of
 $prefix/lib/mono/gac as well as the C runtime, and the support libraries for Mono.Posix.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Now, that is the easy part. <u></u>
<u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The part that I am debating is the part where we would like to distribute shared libraries that go with the bundled binary.   Either we can require that shared libraries be distributed side-by-side, to be
 a user/distribution problem, or to allow a way in mkbundle to ship those on behalf of the user/distributor.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Something like:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                mcs foo.cs  -pkg:gtk-sharp-2.0<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                mkbundle –cross arm64-debian-linux-4.2.0 –shared-libs=/tmp/my-gtk-2.0-<wbr>for-debain-shared-libs<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Thoughts?<font color="#888888"><u></u><u></u></font></span></p><font color="#888888">
<p class="MsoNormal"><span style="font-size:11.0pt">Miguel.<u></u><u></u></span></p>
</font></div>
</div>

<br>______________________________<wbr>_________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.dot.net">Mono-devel-list@lists.dot.net</a><br>
<a href="http://lists.dot.net/mailman/listinfo/mono-devel-list" rel="noreferrer" target="_blank">http://lists.dot.net/mailman/<wbr>listinfo/mono-devel-list</a><br>
<br></blockquote></div><br></div>