From: "Xiaoyu lu" <xiaoyux.lu@intel.com>
To: devel@edk2.groups.io
Cc: Laszlo Ersek <lersek@redhat.com>,
Jian J Wang <jian.j.wang@intel.com>, Ting Ye <ting.ye@intel.com>
Subject: [PATCH v4 3/7] CryptoPkg/IntrinsicLib: Fix possible unresolved external symbol issue
Date: Thu, 16 May 2019 03:54:54 -0400 [thread overview]
Message-ID: <1557993298-22205-4-git-send-email-xiaoyux.lu@intel.com> (raw)
In-Reply-To: <1557993298-22205-1-git-send-email-xiaoyux.lu@intel.com>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1089
This is for the upcoming upgrade to OpenSSL_1_1_1b
Compiler optimization(Visual Studio) may automatically use _ftol2
instead of some type conversion. For example:
OpensslLib.lib(drbg_lib.obj) : error LNK2001:
unresolved external symbol __ftol2
This patch add _ftol2 function for the compiler intrinsic.
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Ting Ye <ting.ye@intel.com>
Signed-off-by: Xiaoyu Lu <xiaoyux.lu@intel.com>
---
CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf | 4 +++-
CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c | 22 ++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
create mode 100644 CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c
diff --git a/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf b/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
index 5a20967b6cb8..fcbb93316cf7 100644
--- a/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
+++ b/CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
@@ -1,7 +1,7 @@
## @file
# Intrinsic Routines Wrapper Library Instance.
#
-# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
@@ -29,9 +29,11 @@ [Sources.IA32]
Ia32/MathLShiftS64.c | MSFT
Ia32/MathRShiftU64.c | MSFT
+ Ia32/MathFtol.c | MSFT
Ia32/MathLShiftS64.c | INTEL
Ia32/MathRShiftU64.c | INTEL
+ Ia32/MathFtol.c | INTEL
Ia32/MathLShiftS64.nasm | GCC
Ia32/MathRShiftU64.nasm | GCC
diff --git a/CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c b/CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c
new file mode 100644
index 000000000000..147a19a4adb0
--- /dev/null
+++ b/CryptoPkg/Library/IntrinsicLib/Ia32/MathFtol.c
@@ -0,0 +1,22 @@
+/** @file
+ 64-bit Math Worker Function.
+ The 32-bit versions of C compiler generate calls to library routines
+ to handle 64-bit math. These functions use non-standard calling conventions.
+
+Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+/*
+ * Floating point to integer conversion.
+ */
+__declspec(naked) void _ftol2 (void)
+{
+ _asm {
+ fistp qword ptr [esp-8]
+ mov edx, [esp-4]
+ mov eax, [esp-8]
+ ret
+ }
+}
--
2.7.4
next prev parent reply other threads:[~2019-05-16 7:56 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-16 7:54 [PATCH v4 0/7] CryptoPkg: Upgrade OpenSSL to 1.1.1b Xiaoyu lu
2019-05-16 7:54 ` [PATCH v4 1/7] CryptoPkg/OpensslLib: Modify process_files.pl for upgrading OpenSSL Xiaoyu lu
2019-05-16 7:54 ` [PATCH v4 2/7] CryptoPkg/OpensslLib: Exclude unnecessary files in process_files.pl Xiaoyu lu
2019-05-16 15:51 ` [edk2-devel] " Laszlo Ersek
2019-05-16 7:54 ` Xiaoyu lu [this message]
2019-05-16 7:54 ` [PATCH v4 4/7] CryptoPkg/OpensslLib: Prepare for upgrading OpenSSL Xiaoyu lu
2019-05-16 7:54 ` [PATCH v4 5/7] CryptoPkg/OpensslLib: Fix cross-build problem for AARCH64 Xiaoyu lu
2019-05-16 15:58 ` [edk2-devel] " Laszlo Ersek
2019-05-16 7:54 ` [PATCH v4 6/7] CryptoPkg: Upgrade OpenSSL to 1.1.1b Xiaoyu lu
2019-05-16 16:31 ` [edk2-devel] " Laszlo Ersek
2019-05-17 11:14 ` Xiaoyu Lu
2019-05-17 13:15 ` Laszlo Ersek
2019-05-18 7:16 ` Xiaoyu Lu
2019-05-16 7:54 ` [PATCH v4 7/7] CryptoPkg/BaseCryptLib: Make HMAC_CTX size backward compatible Xiaoyu lu
2019-05-16 18:25 ` [edk2-devel] [PATCH v4 0/7] CryptoPkg: Upgrade OpenSSL to 1.1.1b Laszlo Ersek
2019-05-17 5:11 ` Wang, Jian J
2019-05-17 13:04 ` Laszlo Ersek
2019-05-17 13:16 ` Laszlo Ersek
2019-05-17 15:06 ` Ard Biesheuvel
2019-05-20 1:40 ` Wang, Jian J
[not found] ` <15A0408CA29C0595.820@groups.io>
2019-05-21 7:43 ` Wang, Jian J
2019-05-21 9:01 ` Ard Biesheuvel
2019-05-21 9:09 ` Wang, Jian J
2019-05-21 12:23 ` Laszlo Ersek
2019-05-21 13:02 ` Wang, Jian J
2019-05-21 13:34 ` Laszlo Ersek
2019-05-21 13:39 ` Ard Biesheuvel
2019-05-23 5:10 ` Wang, Jian J
2019-05-17 10:12 ` Xiaoyu Lu
2019-05-17 13:08 ` Laszlo Ersek
2019-05-18 7:37 ` Xiaoyu Lu
2019-05-16 18:53 ` Laszlo Ersek
2019-05-17 5:00 ` [edk2-devel] " Wang, Jian J
2019-05-17 9:17 ` Gary Lin
2019-05-18 7:26 ` Xiaoyu Lu
2019-05-20 1:48 ` Gary Lin
2019-05-21 21:14 ` Laszlo Ersek
2019-05-22 0:10 ` Michael D Kinney
2019-05-22 9:05 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1557993298-22205-4-git-send-email-xiaoyux.lu@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox