>> > 3) The test program core dumps when run with the v option.
>> > Testing MessageDigest algorithm SHA-384.
>> > ..signal BUS (invalid address alignment) in CryptoPP::SHA512::Transform
>> > at
>> > line 27 in file "sha.cpp"
>
>  [stack trace snipped]
>>
>> OK, this is good stuff here. I can't duplicate in my modest test
>> environment, but its obvious 'data = 0xffffffff7fffc1ec' is only
>> aligned to 2-bytes, while you likely need 8-byte or 16-byte alignment
>> due to SSE2.
>>
>> Here's the first - and only - thing you should do at the moment:
>>
>>     gmake distclean
>>     cp config.recommend config.h
>>
>>
>>     gmake -j 4 ...
>>
>>     ./cryptest.exe v
>
>
> I just tried that. It broke in the same place in the same way.

Back story... Crypto++ 5.6.3 and below only provided C/C++
implementation, and it ran kind of slow (relative to other Intel
platforms). Effectively the library ran with CRYPTOPP_DISABLE_ASM.

Sun/Oracle began supporting GCC-style inline assembly at  Sun Studio
12 (cf., http://blogs.oracle.com/x86be/entry/gcc_style_asm_inlining_support).
Early testing on Intel platforms showed a lot of promise so I enabled
it.

Enabling the ASM brought in more maintenance for the library because
SunCC is fragile a times (q.v.), but I think its worth it.

(A) The next step in troubleshooting is to disable all ASM.

    gmake distclean

    CXXFLAGS="-DNDEBUG -g3 -xO2 -DCRYPTOPP_DISABLE_ASM"
    CXXFLAGS="$CXXFLAGS" gmake -j 4

    ./cryptest.exe v

*if* that resolves the problem, then the next step is to disable ASM
in SHA only. That SHA has its own "disable ASM" macro should tell you
how much trouble its given me on Intel platforms. There are a handful
of other offenders like SHA.

(B) Disable ASM in SHA

    gmake distclean

    CXXFLAGS="-DNDEBUG -g3 -xO2 -DCRYPTOPP_DISABLE_SHA_ASM"
    CXXFLAGS="$CXXFLAGS" gmake -j 4

    ./cryptest.exe v

I've got a feeling one of these two will squash the problem for you. I
don't know why you need them when I don't. I suspect its due to
different versions of the compiler. I suspect you likely use the
latest/patched version while I have the free version without updates.

I don't recall if you stated it, but does G++ have the same issue? I
suspect not. If you don't know and are curious, then you can:

    gmake distclean

    CXX=/bin/g++ gmake -j 4

    ./cryptest.exe v

Jeff

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to