configure add CONFIG_HAVE_ARC4RANDOM
(cherry picked from commit 2b109e5920c706cfa210efeae980e963ddb2e54f)
This commit is contained in:
parent
152456b680
commit
bb82fccd1a
111
0020-configure-add-CONFIG_HAVE_ARC4RANDOM.patch
Normal file
111
0020-configure-add-CONFIG_HAVE_ARC4RANDOM.patch
Normal file
@ -0,0 +1,111 @@
|
||||
From 1fc649fe351919c60c7e1e5044bd6fb00ce59edd Mon Sep 17 00:00:00 2001
|
||||
From: Jim Harris <james.r.harris@intel.com>
|
||||
Date: Fri, 12 Aug 2022 05:00:25 +0000
|
||||
Subject: [PATCH] configure: add CONFIG_HAVE_ARC4RANDOM
|
||||
|
||||
glibc 2.36 added arc4random(), which breaks
|
||||
the SPDK iSCSI build since it always implements its
|
||||
own arc4random() implementation on non-FreeBSD OS
|
||||
(meaning always on Linux).
|
||||
|
||||
So instead add a CONFIG_HAVE_ARC4RANDOM and remove
|
||||
the explicit FreeBSD dependency - this will work on
|
||||
FreeBSD as well as Linux with >= glibc 2.36.
|
||||
|
||||
Also fix check_format.sh, so that it does not
|
||||
enforce spdk/stdinc.h checks on code snippets in
|
||||
the configure file.
|
||||
|
||||
Fixes issue #2637.
|
||||
|
||||
Reported-by: Karl Bonde Torp <k.torp@samsung.com>
|
||||
Signed-off-by: Jim Harris <james.r.harris@intel.com>
|
||||
Change-Id: Iab9da8ae30d62a56869530846372ffddf7138eed
|
||||
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14028
|
||||
Community-CI: Mellanox Build Bot
|
||||
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
|
||||
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
|
||||
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
|
||||
Reviewed-by: Dong Yi <dongx.yi@intel.com>
|
||||
|
||||
Confilict: file CONFIG context is inconsistent
|
||||
---
|
||||
CONFIG | 3 +++
|
||||
configure | 5 +++++
|
||||
lib/iscsi/iscsi.c | 5 ++---
|
||||
scripts/check_format.sh | 2 +-
|
||||
4 files changed, 11 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/CONFIG b/CONFIG
|
||||
index 214e59e..b8dde2e 100644
|
||||
--- a/CONFIG
|
||||
+++ b/CONFIG
|
||||
@@ -171,3 +171,6 @@ CONFIG_RAID5=n
|
||||
|
||||
# Build with IDXD support
|
||||
CONFIG_IDXD=n
|
||||
+
|
||||
+# arc4random is available in stdlib.h
|
||||
+CONFIG_HAVE_ARC4RANDOM=n
|
||||
diff --git a/configure b/configure
|
||||
index 01db27a..376019c 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -750,6 +750,11 @@ if [[ "${CONFIG[TSAN]}" = "y" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
+if echo -e '#include <stdlib.h>\nint main(void) { arc4random(); return 0; }\n' \
|
||||
+ | "${BUILD_CMD[@]}" - 2> /dev/null; then
|
||||
+ CONFIG[HAVE_ARC4RANDOM]="y"
|
||||
+fi
|
||||
+
|
||||
if [[ "${CONFIG[OCF]}" = "y" ]]; then
|
||||
# If OCF_PATH is a file, assume it is a library and use it to compile with
|
||||
if [ -f ${CONFIG[OCF_PATH]} ]; then
|
||||
diff --git a/lib/iscsi/iscsi.c b/lib/iscsi/iscsi.c
|
||||
index 4bca616..48e548a 100644
|
||||
--- a/lib/iscsi/iscsi.c
|
||||
+++ b/lib/iscsi/iscsi.c
|
||||
@@ -64,7 +64,6 @@
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#define HAVE_SRANDOMDEV 1
|
||||
-#define HAVE_ARC4RANDOM 1
|
||||
#endif
|
||||
|
||||
struct spdk_iscsi_globals g_iscsi = {
|
||||
@@ -99,7 +98,7 @@ srandomdev(void)
|
||||
}
|
||||
#endif /* HAVE_SRANDOMDEV */
|
||||
|
||||
-#ifndef HAVE_ARC4RANDOM
|
||||
+#ifndef SPDK_CONFIG_HAVE_ARC4RANDOM
|
||||
static int g_arc4random_initialized = 0;
|
||||
|
||||
static uint32_t
|
||||
@@ -117,7 +116,7 @@ arc4random(void)
|
||||
r = (r1 << 16) | r2;
|
||||
return r;
|
||||
}
|
||||
-#endif /* HAVE_ARC4RANDOM */
|
||||
+#endif /* SPDK_CONFIG_HAVE_ARC4RANDOM */
|
||||
|
||||
static void
|
||||
gen_random(uint8_t *buf, size_t len)
|
||||
diff --git a/scripts/check_format.sh b/scripts/check_format.sh
|
||||
index b522115..8c242a7 100755
|
||||
--- a/scripts/check_format.sh
|
||||
+++ b/scripts/check_format.sh
|
||||
@@ -240,7 +240,7 @@ function check_posix_includes() {
|
||||
local rc=0
|
||||
|
||||
echo -n "Checking for POSIX includes..."
|
||||
- git grep -I -i -f scripts/posix.txt -- './*' ':!include/spdk/stdinc.h' ':!include/linux/**' ':!lib/rte_vhost*/**' ':!scripts/posix.txt' ':!*.patch' > scripts/posix.log || true
|
||||
+ git grep -I -i -f scripts/posix.txt -- './*' ':!include/spdk/stdinc.h' ':!include/linux/**' ':!lib/rte_vhost*/**' ':!scripts/posix.txt' ':!*.patch' ':!configure' > scripts/posix.log || true
|
||||
if [ -s scripts/posix.log ]; then
|
||||
echo "POSIX includes detected. Please include spdk/stdinc.h instead."
|
||||
cat scripts/posix.log
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
Name: spdk
|
||||
Version: 21.01.1
|
||||
Release: 7
|
||||
Release: 8
|
||||
Summary: Set of libraries and utilities for high performance user-mode storage
|
||||
License: BSD and MIT
|
||||
URL: http://spdk.io
|
||||
@ -27,6 +27,7 @@ Patch16: 0016-Enhance-security-for-share-library.patch
|
||||
Patch17: 0017-barrier-LOONGARCH-memory-barriers.patch
|
||||
Patch18: 0018-nvme-pcie-add-memory-barrier-for-LOONGARCH.patch
|
||||
Patch19: 0019-build-Specify-the-target-build-architecture-for-LOON.patch
|
||||
Patch20: 0020-configure-add-CONFIG_HAVE_ARC4RANDOM.patch
|
||||
|
||||
%define package_version %{version}-%{release}
|
||||
|
||||
@ -197,6 +198,9 @@ mv doc/output/html/ %{install_docdir}
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Dec 12 2023 Hongtao Zhang <zhanghongtao22@huawei.com> - 21.01.1-8
|
||||
- configure add CONFIG_HAVE_ARC4RANDOM
|
||||
|
||||
* Tue Jul 4 2023 Xue Liu <liuxue@loongson.cn> - 21.01.1-7
|
||||
- Add support for LOONGARCH.
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user