CryptoPkg: Fix possible unresolved external symbol issue.
authorQin Long <qin.long@intel.com>
Sat, 1 Apr 2017 03:30:55 +0000 (11:30 +0800)
committerQin Long <qin.long@intel.com>
Thu, 6 Apr 2017 16:27:34 +0000 (00:27 +0800)
commit5d7a1d63c0fa53d411a06c6f03de939c1cc26da2
tree15eda880fc181e7466a602a37cd0bc3a5b16bd5b
parent81bec7aa5216dac2013c95d58559ebd414b84bce
CryptoPkg: Fix possible unresolved external symbol issue.

The compiler (visual studio) may optimize some explicit strcmp call
in openssl source to use the intrinsic memcmp call.
In CrtLibSupport.h, we just use #define to mapping memcmp to
CompareMem API. So in Link phase, this kind of intrinsic optimization
will cause the "unresolved external symbol" error. For example:
    OpensslLib.lib(v3_utl.obj) : error LNK2001:
                               unresolved external symbol _memcmp

This patch will keep the memcmp mapping, and provide extra Intrinsic
memcmp wrapper to satisfy the symbol link.

Cc: Ting Ye <ting.ye@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qin Long <qin.long@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
CryptoPkg/Library/Include/CrtLibSupport.h
CryptoPkg/Library/IntrinsicLib/MemoryIntrinsics.c