Hi, I noticed that the current C zlib source includes VS solutions under the "contrib" directory. I built the VC10 project solution, and it seemed to build all the necessary files, though it named them zlibwapi.dll and zlibwapi.lib. Anyway, inspecting the generated .dll files indicates that the deflateReset function was exported: dumpbin /exports zlibwapi.dll 10 10 0003918B deflateReset = @ILT+390(_deflateReset at 4) dumpbin /exports zlibwapi.lib 10 _deflateReset at 4 But it doesn''t seem to actually export it. BTW, I stuck the headers under c:/usr/local/zlib/include and the libs under c:/usr/local/zlib/lib. # ruby extconf.rb --with-zlib-dir=c:/usr/local/zlib require ''mkmf'' dir_config ''zlib'' have_header ''zlib.h'' # yes have_library ''zlibwapi'' # yes have_library ''zlibwapi'', ''deflateReset'' # no ??? I did try rebuilding the .lib file from the .def file and at first that seemed to fix things, but Ruby segfaulted the moment I tried to run a "gem install" command. Any ideas? Regards, Dan
Hi, 2012/5/7 Daniel Berger <djberg96 at gmail.com>> Hi, > > I noticed that the current C zlib source includes VS solutions under > the "contrib" directory. I built the VC10 project solution, and it > seemed to build all the necessary files, though it named them > zlibwapi.dll and zlibwapi.lib. Anyway, inspecting the generated .dll > files indicates that the deflateReset function was exported: > > dumpbin /exports zlibwapi.dll > 10 10 0003918B deflateReset = @ILT+390(_deflateReset at 4) > > dumpbin /exports zlibwapi.lib > 10 _deflateReset at 4 > > But it doesn''t seem to actually export it. BTW, I stuck the headers > under c:/usr/local/zlib/include and the libs under > c:/usr/local/zlib/lib. > > # ruby extconf.rb --with-zlib-dir=c:/usr/local/zlib > require ''mkmf'' > dir_config ''zlib'' > > have_header ''zlib.h'' # yes > have_library ''zlibwapi'' # yes > have_library ''zlibwapi'', ''deflateReset'' # no ??? > > I did try rebuilding the .lib file from the .def file and at first > that seemed to fix things, but Ruby segfaulted the moment I tried to > run a "gem install" command. > > Any ideas? > > According to the readme.txt in contrib/vstudio, zlibwapi.dll is builtwith ZLIB_WINAPI macro and used WINAPI convention. Because Ruby''s zlib.c uses cdecl calling convention, Ruby failed with segfault. When I removed ZLIB_WINAPI from preprocessor definition and build dll again, I succeed to run "gem install rake". Regards, Park Heesob -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/win32utils-devel/attachments/20120507/bf52b6fb/attachment.html>
On Mon, May 7, 2012 at 12:06 AM, Heesob Park <phasis at gmail.com> wrote:> Hi, > > 2012/5/7 Daniel Berger <djberg96 at gmail.com> >> >> Hi, >> >> I noticed that the current C zlib source includes VS solutions under >> the "contrib" directory. I built the VC10 project solution, and it >> seemed to build all the necessary files, though it named them >> zlibwapi.dll and zlibwapi.lib. Anyway, inspecting the generated .dll >> files indicates that the deflateReset function was exported: >> >> dumpbin /exports zlibwapi.dll >> 10 ? 10 0003918B deflateReset = @ILT+390(_deflateReset at 4) >> >> dumpbin /exports zlibwapi.lib >> 10 ? ?_deflateReset at 4 >> >> But it doesn''t seem to actually export it. BTW, I stuck the headers >> under c:/usr/local/zlib/include and the libs under >> c:/usr/local/zlib/lib. >> >> # ruby extconf.rb --with-zlib-dir=c:/usr/local/zlib >> require ''mkmf'' >> dir_config ''zlib'' >> >> have_header ''zlib.h'' # yes >> have_library ''zlibwapi'' # yes >> have_library ''zlibwapi'', ''deflateReset'' # no ??? >> >> I did try rebuilding the .lib file from the .def file and at first >> that seemed to fix things, but Ruby segfaulted the moment I tried to >> run a "gem install" command. >> >> Any ideas? >> > According to the readme.txt in contrib/vstudio, zlibwapi.dll is built > with?ZLIB_WINAPI macro and used WINAPI convention. > Because Ruby''s zlib.c uses cdecl calling convention, Ruby failed with > segfault. > > When I removed?ZLIB_WINAPI?from preprocessor definition and build dll again, > I succeed to run "gem install rake".Thank you, that worked! Dan