[openssl-users] Unhandled exception at 0x005904dc (libeay32.dll) (Windows x86)

Scott Ware wsware at gmail.com
Mon Aug 22 20:33:34 UTC 2016

On Mon, Aug 22, 2016 at 3:04 PM, Jakob Bohm <jb-openssl at wisemo.com> wrote:

> On 22/08/2016 20:09, Scott Ware wrote:
>> We use libeay32.dll and ssleay32.dll from https://slproweb.com/products/
>> Win32OpenSSL.htmlin our applications and we recently moved from version
>> 1.0.2a to 1.0.2g and now on a few machines running a AMD Geode processor we
>> are getting "Unhandled exception at 0x005904dc (libeay32.dll) in Test.exe:
>> 0xC000001D: Illegal Instruction". We ended up building OpennSSL so we could
>> debug into it and found it is failing on "movsd xmm0,mmword" (see below)
>> which the AMD Geode does not seem to support. I have tried "SET
>> OPENSSL_ia32cap=~0x1000000", "SET OPENSSL_ia32cap=~0x2000000", and "SET
>> OPENSSL_ia32cap=~0x7000000"; and nothing seems to change. I may not be
>> using OPENSSL_ia32cap correctly. This happens when calling SSL_CTX_new
>> which then calls RAND_add.
>> Any ideas on the best thing to do? We don't want to have to manage
>> different compiled versions of libeay32.dll and ssleay32.dll if we can help
>> it.
>> Your disassembly looks like the C compiler was invoked with
> options that caused regular C floating point code (in this
> case, the passing of 45.0 as an argument to RAND_add()) to
> be compiled into MMX/SSE instructions instead of backwards
> compatible 80x87 floating point instructions or (for simple
> cases like this) regular integer unit data movement
> instructions (such as two pushes of 32 bit constants that
> contain the halves of the 64 bit double constant, which
> would have been more efficient on every x86 CPU).
> Did the build scripts or other source code contain any
> differences from the official source code that can be
> downloaded from openssl.org?
> How did you invoke the build scripts (command sequence,
> special build environment, special environment variables
> etc.)?
> Which compiler and compiler version/edition did you use?
> It would be interesting to know if one of the common Windows
> compilers does this unconditionally, making it unsuitable
> for use in programs that need to be backwards compatible.
I compiled using this process and seem to be getting the same result as the
.dll I downloaded from slproweb.com
I downloaded the 1.0.2g source from openssl.com and didn't change anything.

>From the "Developer Command Promt for VS2013"
perl Configure debug-VC-WIN32 no-asm --prefix=C:\OpenSSL-VC-32-dbg
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20160822/1e5d5658/attachment.html>

More information about the openssl-users mailing list