On Nov 23, 2014, at 11:45 PM, techi eth <techi...@gmail.com> wrote:
> I would be happy if I will get all running under 10 MB.I have listed approx 
> size of few essential. I am not sure how to reduce & get size under 10 MB.

Where are you getting these file sizes? Perhaps you need to strip(1) the 
binaries?

> 1)      Mono (link to mono->sgen) : 13 MB

I'm not sure what this means. If you mean the mono binary, you need to strip(1) 
it; on OS X, it's 4.1MB.

> 2)      Libmono-2.0.so : 12 MB

You need to strip(1) this binary. On OS X, libmonosgen-2.0.1.dylib is 4.2MB.

Also note that the `mono` binary doesn't require libmono*.so; it statically 
links it in. libmono*.so is for embedding use.

> 3)      Mscorelib.dll : 15 MB

Where are you getting this file size? On OS X, the 4.5 mscorlib.dll is 2.9MB.

For example, consider mkbundle(1):

        http://docs.go-mono.com/?link=man%3amkbundle(1)

mkbundle(1) can be used to bundle all assemblies into a single file, to 
simplify distribution. Using mkbundle(1), you can have a single native binary 
which only requires libmonoboehm-2.dylib to execute, no additional assemblies, 
by using `mkbundle --deps`:

        $ AS='as -arch i386' \
                CC='cc -arch i386' \
                
PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Libraries/pkgconfig \
                mkbundle --deps -z hw.exe -o hw2

        $ ls -lh hw2
        -rwxr-xr-x+ 1 jon  staff   1.0M Nov 24 10:53 hw2

        $ nm -ufm hw2
                 (undefined) external ___memcpy_chk (from libSystem)
                 (undefined) external ___stderrp (from libSystem)
                 (undefined) external _exit (from libSystem)
                 (undefined) external _fprintf (from libSystem)
                 (undefined) external _getenv (from libSystem)
                 (undefined) external _inflate (from libz)
                 (undefined) external _inflateEnd (from libz)
                 (undefined) external _inflateInit2_ (from libz)
                 (undefined) external _malloc (from libSystem)
                 (undefined) external _memset (from libSystem)
                 (undefined) external _mono_main (from libmonoboehm-2)
                 (undefined) external _mono_register_bundled_assemblies (from 
libmonoboehm-2)
                 (undefined) external _mono_set_dirs (from libmonoboehm-2)
                 (undefined) external _printf (from libSystem)
                 (undefined) external _strchr (from libSystem)
                 (undefined) external _strdup (from libSystem)
                 (undefined) external dyld_stub_binder (from libSystem)

With the above setup, "Hello world" requires "only" ~5.2MB of disk to run (for 
OS X binaries).

 - Jon

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to