Clear questions and runnable code get the best and fastest answer |
|
PerlMonks |
Re: errno in XS not propagating to $! - breaks Net::SSLeayby syphilis (Archbishop) |
on Feb 15, 2008 at 09:50 UTC ( [id://668118]=note: print w/replies, xml ) | Need Help?? |
My compiler is Microsoft 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 There's definitely the potential for unavoidable gotchas here. The compiler that built ActivePerl and your compiler use different C runtime libraries - and that *can* definitely be nasty - though, mostly, it's not an issue. And I think it's quite possibly *not* an issue here. I notice that one of the Test::Exception (which is a Net::SSLeay prereq) tests fails for me on windows. (I tried version 0.26.) Did the same happen for you ? Or does Test::Exception pass all of its tests ? (I'm wondering whether the failure you're up against is related to that Test::Exception failure.) On my Win32 box, I've actually used the very same compiler (MinGW) to build OpenSSL, perl and Net::SSLeay. But Net::SSLeay still won't build successfully - and, since it uses Module::Install, it's fairly unlikely that I'll ever make an effort to fix the problem. It actually makes me quite angry to see the sorts of issues that are being thrown up by Net::SSLeay on my Win32 box - especially given that Net::SLLeay built easily for me last time I tried it (which, admittedly, was quite some time ago). I can set the OPENSSL_PREFIX environment variable to the location of OpenSSL (and perl Makefile.PL finds that library without any trouble). But then I get (during the same Makfile.PL step) the following absurd warnings: WTF is all that crap about ? Given that none of those libraries exist, it's no wonder that I get a heap of linking (undefined reference) errors during the dmake step - though I suspect that the same references *are* defined in libcrypto.a or libssl.a (both of which which actually *do* exist). Anyway, none of this will help you much - except perhaps for the notion that your problem lies with Test::Exception, rather than Net::SSLeay per se. Sorry ... I was really intending to be a little more helpful, but the distasteful state that Net::SSLeay is in (wrt to Win32) raised my ire to such a level that I just couldn't stomach the exercise. So how do people get away with such reckless behaviour Part of the solution is MinGW (port of gcc). It works seamlessly with recent versions of ActivePerl and, since it uses the same C runtime as the MS compiler that was used to build ActivePerl, you won't experience the "gotchas" I mentioned above. Alternatively, you might like to try Strawberry Perl which was built with MinGW and includes that compiler as part of the download. Then there's the MSYS shell, which enables one to build many libraries (including OpenSSL) using MinGW in the usual nix way - ie ./configure, make, make install. All of these are freely available, btw. Other than that, you can go down the path that you've already followed. (I suspect you might even be able to build OpenSSL with the compiler you have.) Cheers, Rob
In Section
Seekers of Perl Wisdom
|
|