support clang compile

This commit is contained in:
15859157387 2023-09-18 20:06:02 +08:00
parent 29eaa93cde
commit 6bc867346a
2 changed files with 230 additions and 1 deletions

View File

@ -0,0 +1,223 @@
From 566d703c6739cf3a854cfd6321d1b367aacf5ff4 Mon Sep 17 00:00:00 2001
From: 15859157387 <977713017@qq.com>
Date: Tue, 24 Oct 2023 14:50:37 +0800
Subject: [PATCH] support clang compile
---
test/wd_mempool_test.c | 4 +---
v1/wd_rsa.c | 18 ++++++++++--------
wd_mempool.c | 7 +------
wd_rsa.c | 22 ++++++++++++----------
4 files changed, 24 insertions(+), 27 deletions(-)
diff --git a/test/wd_mempool_test.c b/test/wd_mempool_test.c
index ad04636..7d18752 100644
--- a/test/wd_mempool_test.c
+++ b/test/wd_mempool_test.c
@@ -644,7 +644,7 @@ static void *sva_sec_cipher_async(void *arg)
int cnt = g_times;
handle_t h_sess;
int ret;
- int j, i;
+ int j;
setup->alg = WD_CIPHER_AES;
setup->mode = WD_CIPHER_CBC;
@@ -658,7 +658,6 @@ static void *sva_sec_cipher_async(void *arg)
SEC_TST_PRT("test sec cipher set key is failed!\n");
goto out;;
}
- i = cnt;
/* run task */
do {
try_do_again:
@@ -666,7 +665,6 @@ try_do_again:
req->src = pdata->bd_pool->bds[j].src;
req->dst = pdata->bd_pool->bds[j].dst;
ret = wd_do_cipher_async(h_sess, req);
- i--;
if (ret == -EBUSY) { // busy
usleep(100);
goto try_do_again;
diff --git a/v1/wd_rsa.c b/v1/wd_rsa.c
index 61de3cc..49249b4 100644
--- a/v1/wd_rsa.c
+++ b/v1/wd_rsa.c
@@ -105,8 +105,10 @@ struct wcrypto_rsa_prikey2 {
};
struct wcrypto_rsa_prikey {
- struct wcrypto_rsa_prikey1 pkey1;
- struct wcrypto_rsa_prikey2 pkey2;
+ union {
+ struct wcrypto_rsa_prikey1 pkey1;
+ struct wcrypto_rsa_prikey2 pkey2;
+ } pkey;
};
/* RSA CRT private key parameter types */
@@ -444,7 +446,7 @@ static int create_ctx_key(struct wcrypto_rsa_ctx_setup *setup,
WD_ERR("alloc prikey2 fail!\n");
return -WD_ENOMEM;
}
- pkey2 = &ctx->prikey->pkey2;
+ pkey2 = &ctx->prikey->pkey.pkey2;
memset(ctx->prikey, 0, len);
init_pkey2(pkey2, ctx->key_size);
} else {
@@ -459,7 +461,7 @@ static int create_ctx_key(struct wcrypto_rsa_ctx_setup *setup,
WD_ERR("alloc prikey1 fail!\n");
return -WD_ENOMEM;
}
- pkey1 = &ctx->prikey->pkey1;
+ pkey1 = &ctx->prikey->pkey.pkey1;
memset(ctx->prikey, 0, len);
init_pkey1(pkey1, ctx->key_size);
}
@@ -713,7 +715,7 @@ int wcrypto_set_rsa_prikey_params(void *ctx, struct wd_dtb *d, struct wd_dtb *n)
WD_ERR("ctx err in set rsa private key1!\n");
return -WD_EINVAL;
}
- pkey1 = &c->prikey->pkey1;
+ pkey1 = &c->prikey->pkey.pkey1;
if (d) {
if (d->dsize > pkey1->key_size || !d->data) {
WD_ERR("d err in set rsa private key1!\n");
@@ -747,7 +749,7 @@ void wcrypto_get_rsa_prikey_params(struct wcrypto_rsa_prikey *pvk, struct wd_dtb
return;
}
- pkey1 = &pvk->pkey1;
+ pkey1 = &pvk->pkey.pkey1;
if (d)
*d = &pkey1->d;
@@ -819,7 +821,7 @@ int wcrypto_set_rsa_crt_prikey_params(void *ctx, struct wd_dtb *dq,
return ret;
}
- pkey2 = &c->prikey->pkey2;
+ pkey2 = &c->prikey->pkey.pkey2;
ret = rsa_prikey2_param_set(pkey2, dq, WD_CRT_PRIKEY_DQ);
if (ret) {
WD_ERR("dq err in set rsa private key2!\n");
@@ -865,7 +867,7 @@ void wcrypto_get_rsa_crt_prikey_params(struct wcrypto_rsa_prikey *pvk,
return;
}
- pkey2 = &pvk->pkey2;
+ pkey2 = &pvk->pkey.pkey2;
if (dq)
*dq = &pkey2->dq;
diff --git a/wd_mempool.c b/wd_mempool.c
index cb8c80b..864ba13 100644
--- a/wd_mempool.c
+++ b/wd_mempool.c
@@ -71,7 +71,7 @@ static inline int wd_atomic_test_add(struct wd_ref *ref, int a, int u)
c = __atomic_load_n(&ref->ref, __ATOMIC_RELAXED);
if (c == u)
break;
- } while (! __atomic_compare_exchange_n(&ref->ref, &c, c + a, true,
+ } while (! __atomic_compare_exchange_n(&ref->ref, (__u32 *)&c, c + a, true,
__ATOMIC_RELAXED, __ATOMIC_RELAXED));
return c;
@@ -299,11 +299,6 @@ static int test_bit(struct bitmap *bm, unsigned int nr)
return !(*p & mask);
}
-inline static size_t wd_get_page_size(void)
-{
- return sysconf(_SC_PAGESIZE);
-}
-
void *wd_block_alloc(handle_t blkpool)
{
struct blkpool *bp = (struct blkpool*)blkpool;
diff --git a/wd_rsa.c b/wd_rsa.c
index 4bd1d30..8301d57 100644
--- a/wd_rsa.c
+++ b/wd_rsa.c
@@ -48,8 +48,10 @@ struct wd_rsa_prikey2 {
};
struct wd_rsa_prikey {
- struct wd_rsa_prikey1 pkey1;
- struct wd_rsa_prikey2 pkey2;
+ union {
+ struct wd_rsa_prikey1 pkey1;
+ struct wd_rsa_prikey2 pkey2;
+ } pkey;
};
/* RSA private key parameter types */
@@ -844,7 +846,7 @@ static int create_sess_key(struct wd_rsa_sess_setup *setup,
WD_ERR("failed to alloc sess prikey2!\n");
return -WD_ENOMEM;
}
- pkey2 = &sess->prikey->pkey2;
+ pkey2 = &sess->prikey->pkey.pkey2;
memset(sess->prikey, 0, len);
init_pkey2(pkey2, sess->key_size);
} else {
@@ -855,7 +857,7 @@ static int create_sess_key(struct wd_rsa_sess_setup *setup,
WD_ERR("failed to alloc sess prikey1!\n");
return -WD_ENOMEM;
}
- pkey1 = &sess->prikey->pkey1;
+ pkey1 = &sess->prikey->pkey.pkey1;
memset(sess->prikey, 0, len);
init_pkey1(pkey1, sess->key_size);
}
@@ -886,9 +888,9 @@ static void del_sess_key(struct wd_rsa_sess *sess)
}
if (sess->setup.is_crt)
- wd_memset_zero(prk->pkey2.data, CRT_PARAMS_SZ(sess->key_size));
+ wd_memset_zero(prk->pkey.pkey2.data, CRT_PARAMS_SZ(sess->key_size));
else
- wd_memset_zero(prk->pkey1.data, GEN_PARAMS_SZ(sess->key_size));
+ wd_memset_zero(prk->pkey.pkey1.data, GEN_PARAMS_SZ(sess->key_size));
free(sess->prikey);
free(sess->pubkey);
}
@@ -1041,7 +1043,7 @@ int wd_rsa_set_prikey_params(handle_t sess, struct wd_dtb *d, struct wd_dtb *n)
WD_ERR("invalid: sess err in set rsa private key1!\n");
return -WD_EINVAL;
}
- pkey1 = &c->prikey->pkey1;
+ pkey1 = &c->prikey->pkey.pkey1;
if (d) {
if (!d->dsize || !d->data || d->dsize > pkey1->key_size) {
WD_ERR("invalid: d err in set rsa private key1!\n");
@@ -1076,7 +1078,7 @@ void wd_rsa_get_prikey_params(struct wd_rsa_prikey *pvk, struct wd_dtb **d,
return;
}
- pkey1 = &pvk->pkey1;
+ pkey1 = &pvk->pkey.pkey1;
if (d)
*d = &pkey1->d;
@@ -1148,7 +1150,7 @@ int wd_rsa_set_crt_prikey_params(handle_t sess, struct wd_dtb *dq,
return ret;
}
- pkey2 = &c->prikey->pkey2;
+ pkey2 = &c->prikey->pkey.pkey2;
ret = rsa_prikey2_param_set(pkey2, dq, WD_CRT_PRIKEY_DQ);
if (ret) {
WD_ERR("failed to set dq for rsa private key2!\n");
@@ -1194,7 +1196,7 @@ void wd_rsa_get_crt_prikey_params(struct wd_rsa_prikey *pvk,
return;
}
- pkey2 = &pvk->pkey2;
+ pkey2 = &pvk->pkey.pkey2;
if (dq)
*dq = &pkey2->dq;
--
2.27.0

View File

@ -1,9 +1,12 @@
Name: libwd Name: libwd
Summary: User Space Accelerator Development Kit Summary: User Space Accelerator Development Kit
Version: 2.5.0 Version: 2.5.0
Release: 3 Release: 4
License: Apache-2.0 License: Apache-2.0
Source: %{name}-%{version}.tar.gz Source: %{name}-%{version}.tar.gz
Patch01: 0001-support-clang-compile.patch
Vendor: Huawei Corporation Vendor: Huawei Corporation
ExclusiveOS: linux ExclusiveOS: linux
URL: https://support.huawei.com URL: https://support.huawei.com
@ -187,6 +190,9 @@ fi
/sbin/ldconfig /sbin/ldconfig
%changelog %changelog
* Mon Sep 18 2023 renyi <977713017@qq.com> 2.5.0-4
- support clang compile
* Mon Sep 4 2023 JiangShui Yang <yangjiangshui@h-partners.com> 2.5.0-3 * Mon Sep 4 2023 JiangShui Yang <yangjiangshui@h-partners.com> 2.5.0-3
- libwd: Deleting rpath information from the dynamic library - libwd: Deleting rpath information from the dynamic library