[Mono-dev] About libMonoPosixHelper.so (Was: Re: Announce: Mono.Fuse (+ Required Mono.Posix Changes))
robertj at gmx.net
Sun Sep 3 13:16:21 EDT 2006
Andreia Gaita wrote:
> While you're talking about libMonoPosixHelper.so, I've stumbled onto a
> problem while trying to get System.IO.Compression to work with both
> the latest and the stable versions. Any call to deflate always blows
> up with an exception. I've looked at the source, and it's fine, but
> the compiled library being distributed is missing some code,
> specifically the create_z_stream function.
> For what I can see, the only reason this function would be empty (as
> it is), is that the library is being compiled in a system without the
> latest zlib library, or at least a library that's flagging this bit of
> code (in zlib_macros.c)
> #if !defined(ZLIB_VERNUM) || (ZLIB_VERNUM < 0x1204)
> /* Older versions of zlib do not support raw deflate or gzip */
> return NULL;
> Compiling the source makes it work fine, but all versions of this
> library that I've found are broken (at least in red hat and fedora).
> On another note, This NULL return makes the managed code throw out an
> OutOfMemory Exception, because it believes a null is the library
> returning a no memory error. All the error codes and nice errors
> structures the zlib library so helpfully provides are completely lost,
> the managed code doesn't receive or use them, which is a shame. Also,
> most exceptions that are being thrown out are not consistent with the
> ones being thrown out by IO.Compression in .NET (they should be
> consistent, right?) Is anyone actively mantaining the io.compression
> area at present? I'd be happy to take it up.
Besides the problem you've discovered, there is another
one with the current System.IO.Compression implementation:
it doesn't work in Windows for a similar reason: zlib is not
installed on the build machine.
This issue is probable more complex than it appears to be:
cygwin's zlib is not okay. It must be a version compiled
with mingw, like the other libs the Windows Installer is
deploying along with Mono.
I'll file a (packaging ?) bug for this issue.
More information about the Mono-devel-list