Merge pull request #3401 from BrzVlad/fix-managed-alloc2
[mono.git] / mcs / tools / mkbundle / TODO
index 58eb944c9a017ce528c678e62c3859fde353daed..5e9daab64174c6a37fb77f7dffde3a099646b574 100644 (file)
@@ -10,23 +10,34 @@ Files:
 
 Windows Issues:
 
---static doesn't work because libmono.a is not distributed with the
-Windows package.
-
-Not a big deal, because the needed dlls can be simply distributed with
-the mkbundle-generated executable.
-
-For example, a bundled XSP needs:
-
-mono-1.dll
-libglib*.dll
-libgmodule*.dll
-libgthread*.dll
-iconv.dll
-intl.dll
-
-(roundabout 10MB). This seems to be the minimal working set of dlls
-that have to be distributed with a bundled application.
-
--z doesn't work due to some weird cygwin zlib problems.
-
+       * --static is not currently supported:
+
+               The GC needs to be notified about new threads that is also
+               possible using TLS callbacks. IMAGE_DIRECTORY_ENTRY_TLS
+               has to be set in the PE image to an IMAGE_TLS_DIRECTORY
+               containing PIMAGE_TLS_CALLBACKs that have the same
+               functionality and signature as DllMain. This is also
+               supported for EXE images. Visual C++ and Microsoft Linker
+               have support for this but I don't know whether this is
+               supported GCC.
+               TLS callbacks should be implemented in the GC that would
+               enable static linking.
+
+               References:
+               http://blog.dkbza.org/2007_03_01_archive.html
+               http://www.nynaeve.net/?p=183
+
+               Using a statically linked eglib instead of glib could also
+               reduce DLL dependency.
+
+       * Document that the following DLLs are required to be deployed
+         along with the bundle. Do we need some legal blub if we
+         incite the user to deploy these binaries?
+
+               [Mm]ono*.dll
+               libglib*.dll
+               libgmodule*.dll
+               libgthread*.dll
+               iconv.dll
+               intl.dll
+               zlib1.dll