[openssl-dev] [openssl.org #3843] OpenSSL 1.0.1* and below: incorrect use of _lrotl()

Andy Polyakov via RT rt at openssl.org
Mon May 25 16:02:00 UTC 2015


>>> Yes, I added a new target "linux-mic" into Configure, which is slightly modified from "linux-generic64".
>>>
>>> From the original patch:
>>>
>>> (...)
>>> "linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
>>> +"linux-mic","icc:-mmic -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
>>> (...)
>>
>> But what prevents you from 'env CC=icc ./Configure linux-generic64
>> -mmic'? Or same with linux-x86_64? Can you confirm if './Configure
>> linux-x86_64-icc -mmic' works in 1.0.2?
> 
> 'CC="icc -mmic" ./Configure shared linux-generic64' works in 1.0.0. It's better than modifying Configure. I just didn't think of it. 
> 
> But it doesn't work in 1.0.2, getting some link error:
> ../libcrypto.so: undefined reference to `rc4_md5_enc'

Yes, similar issue was reported in another context and it will be
resolved. Meanwhile could you pass explicit no-asm to confirm that it's
in *general* viable option for you.

> And linux-x86_64 won't work here, since it uses some instructions not supported by MIC. 

But all x86_64 modules feature run-time switch, when processor
capabilities are detected [with cpuid] and code that can't be executed
on any particular processor won't execute. Or do you mean that fails to
*compile* it with -mmic? Or do you mean that cpuid doesn't work on mic?
But I recall that there is cpuid...




More information about the openssl-dev mailing list