FreeBSD Bugzilla – Attachment 242298 Details for
Bug 271537
net/libfabric: fix build with clang 16 on i386
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
net/libfabric: fix build with clang 16 on i386
net__libfabric-fix-clang16-build-1.diff (text/plain), 7.44 KB, created by
Dimitry Andric
on 2023-05-20 18:31:21 UTC
(
hide
)
Description:
net/libfabric: fix build with clang 16 on i386
Filename:
MIME Type:
Creator:
Dimitry Andric
Created:
2023-05-20 18:31:21 UTC
Size:
7.44 KB
patch
obsolete
>commit d6a407205b86366955b2f1fcc1594df2460f3e8e >Author: Dimitry Andric <dim@FreeBSD.org> >Date: 2023-05-20 20:27:11 +0200 > > net/libfabric: fix build with clang 16 > > Clang 16 has a new error about incompatible function types, which shows > up when building net/libfabric (on i386): > > prov/hook/src/hook_domain.c:124:12: error: incompatible function pointer types passing 'ssize_t (struct fid_ep *, size_t)' (aka 'int (struct fid_ep *, unsigned int)') to parameter of type 'ssize_t (*)(struct fid_ep *, uint64_t)' (aka 'int (*)(struct fid_ep *, unsigned long long)') [-Wincompatible-function-pointer-types] > hook_credit_handler); > ^~~~~~~~~~~~~~~~~~~ > prov/hook/src/hook_domain.c:150:17: error: incompatible function pointer types initializing 'void (*)(struct fid_ep *, uint64_t)' (aka 'void (*)(struct fid_ep *, unsigned long long)') with an expression of type 'void (struct fid_ep *, size_t)' (aka 'void (struct fid_ep *, unsigned int)') [-Wincompatible-function-pointer-types] > .add_credits = hook_add_credits, > ^~~~~~~~~~~~~~~~ > prov/hook/src/hook_domain.c:152:22: error: incompatible function pointer types initializing 'void (*)(struct fid_domain *, ssize_t (*)(struct fid_ep *, uint64_t))' (aka 'void (*)(struct fid_domain *, int (*)(struct fid_ep *, unsigned long long))') with an expression of type 'void (struct fid_domain *, ssize_t (*)(struct fid_ep *, size_t))' (aka 'void (struct fid_domain *, int (*)(struct fid_ep *, unsigned int))') [-Wincompatible-function-pointer-types] > .set_send_handler = hook_set_send_handler, > ^~~~~~~~~~~~~~~~~~~~~ > > The problem is that the 'credits' parameter used in these functions is > size_t in some cases, but uint64_t in other cases. On LP64 architectures > this does not result in any errors, but on e.g. i386 you get the above. > > Make the 'credits' parameter uint64_t everywhere to fix this issue. > >diff --git a/net/libfabric/files/patch-include_ofi__hook.h b/net/libfabric/files/patch-include_ofi__hook.h >new file mode 100644 >index 000000000000..bdc7ca538df7 >--- /dev/null >+++ b/net/libfabric/files/patch-include_ofi__hook.h >@@ -0,0 +1,11 @@ >+--- include/ofi_hook.h.orig 2022-04-30 21:46:31 UTC >++++ include/ofi_hook.h >+@@ -163,7 +163,7 @@ struct hook_domain { >+ struct fid_domain *hdomain; >+ struct hook_fabric *fabric; >+ struct ofi_ops_flow_ctrl *base_ops_flow_ctrl; >+- ssize_t (*base_credit_handler)(struct fid_ep *ep_fid, size_t credits); >++ ssize_t (*base_credit_handler)(struct fid_ep *ep_fid, uint64_t credits); >+ }; >+ >+ int hook_domain_init(struct fid_fabric *fabric, struct fi_info *info, >diff --git a/net/libfabric/files/patch-prov_hook_src_hook__domain.c b/net/libfabric/files/patch-prov_hook_src_hook__domain.c >new file mode 100644 >index 000000000000..513036779fdc >--- /dev/null >+++ b/net/libfabric/files/patch-prov_hook_src_hook__domain.c >@@ -0,0 +1,29 @@ >+--- prov/hook/src/hook_domain.c.orig 2022-04-30 21:46:31 UTC >++++ prov/hook/src/hook_domain.c >+@@ -102,7 +102,7 @@ static struct fi_ops_mr hook_mr_ops = { >+ .regattr = hook_mr_regattr, >+ }; >+ >+-static ssize_t hook_credit_handler(struct fid_ep *ep_fid, size_t credits) >++static ssize_t hook_credit_handler(struct fid_ep *ep_fid, uint64_t credits) >+ { >+ /* >+ * called from the base provider, ep_fid is the base ep, and >+@@ -114,7 +114,7 @@ static void hook_set_send_handler(struct fid_domain *d >+ } >+ >+ static void hook_set_send_handler(struct fid_domain *domain_fid, >+- ssize_t (*credit_handler)(struct fid_ep *ep, size_t credits)) >++ ssize_t (*credit_handler)(struct fid_ep *ep, uint64_t credits)) >+ { >+ struct hook_domain *domain = container_of(domain_fid, >+ struct hook_domain, domain); >+@@ -131,7 +131,7 @@ static int hook_enable_ep_flow_ctrl(struct fid_ep *ep_ >+ return ep->domain->base_ops_flow_ctrl->enable(ep->hep, threshold); >+ } >+ >+-static void hook_add_credits(struct fid_ep *ep_fid, size_t credits) >++static void hook_add_credits(struct fid_ep *ep_fid, uint64_t credits) >+ { >+ struct hook_ep *ep = container_of(ep_fid, struct hook_ep, ep); >+ >diff --git a/net/libfabric/files/patch-prov_rxm_src_rxm__domain.c b/net/libfabric/files/patch-prov_rxm_src_rxm__domain.c >new file mode 100644 >index 000000000000..f631f8233700 >--- /dev/null >+++ b/net/libfabric/files/patch-prov_rxm_src_rxm__domain.c >@@ -0,0 +1,25 @@ >+--- prov/rxm/src/rxm_domain.c.orig 2022-04-30 21:46:32 UTC >++++ prov/rxm/src/rxm_domain.c >+@@ -567,7 +621,7 @@ static struct fi_ops_mr rxm_domain_mr_thru_ops = { >+ .regattr = rxm_mr_regattr_thru, >+ }; >+ >+-static ssize_t rxm_send_credits(struct fid_ep *ep, size_t credits) >++static ssize_t rxm_send_credits(struct fid_ep *ep, uint64_t credits) >+ { >+ struct rxm_conn *rxm_conn = ep->fid.context; >+ struct rxm_ep *rxm_ep = rxm_conn->ep; >+@@ -620,11 +674,11 @@ defer: >+ return FI_SUCCESS; >+ } >+ >+-static void rxm_no_add_credits(struct fid_ep *ep_fid, size_t credits) >++static void rxm_no_add_credits(struct fid_ep *ep_fid, uint64_t credits) >+ { } >+ >+ static void rxm_no_credit_handler(struct fid_domain *domain_fid, >+- ssize_t (*credit_handler)(struct fid_ep *ep, size_t credits)) >++ ssize_t (*credit_handler)(struct fid_ep *ep, uint64_t credits)) >+ { } >+ >+ static int rxm_no_enable_flow_ctrl(struct fid_ep *ep_fid, uint64_t threshold) >diff --git a/net/libfabric/files/patch-prov_verbs_src_fi__verbs.h b/net/libfabric/files/patch-prov_verbs_src_fi__verbs.h >new file mode 100644 >index 000000000000..fe556dda9df8 >--- /dev/null >+++ b/net/libfabric/files/patch-prov_verbs_src_fi__verbs.h >@@ -0,0 +1,11 @@ >+--- prov/verbs/src/fi_verbs.h.orig 2022-05-13 15:08:17 UTC >++++ prov/verbs/src/fi_verbs.h >+@@ -943,7 +943,7 @@ ssize_t vrb_send_iov(struct vrb_ep *ep, struct ibv_sen >+ const struct iovec *iov, void **desc, int count, >+ uint64_t flags); >+ >+-void vrb_add_credits(struct fid_ep *ep, size_t credits); >++void vrb_add_credits(struct fid_ep *ep, uint64_t credits); >+ >+ int vrb_get_rai_id(const char *node, const char *service, uint64_t flags, >+ const struct fi_info *hints, struct rdma_addrinfo **rai, >diff --git a/net/libfabric/files/patch-prov_verbs_src_verbs__domain.c b/net/libfabric/files/patch-prov_verbs_src_verbs__domain.c >new file mode 100644 >index 000000000000..6a6314b03481 >--- /dev/null >+++ b/net/libfabric/files/patch-prov_verbs_src_verbs__domain.c >@@ -0,0 +1,16 @@ >+--- prov/verbs/src/verbs_domain.c.orig 2022-04-30 21:46:32 UTC >++++ prov/verbs/src/verbs_domain.c >+@@ -36,11 +36,11 @@ >+ #include "ofi_iov.h" >+ >+ #include "fi_verbs.h" >+-#include <malloc.h> >++#include <stdlib.h> >+ >+ >+ static void vrb_set_credit_handler(struct fid_domain *domain_fid, >+- ssize_t (*credit_handler)(struct fid_ep *ep, size_t credits)) >++ ssize_t (*credit_handler)(struct fid_ep *ep, uint64_t credits)) >+ { >+ struct vrb_domain *domain; >+ >diff --git a/net/libfabric/files/patch-prov_verbs_src_verbs__ep.c b/net/libfabric/files/patch-prov_verbs_src_verbs__ep.c >new file mode 100644 >index 000000000000..3b0a7ec88d24 >--- /dev/null >+++ b/net/libfabric/files/patch-prov_verbs_src_verbs__ep.c >@@ -0,0 +1,11 @@ >+--- prov/verbs/src/verbs_ep.c.orig 2022-05-10 03:27:55 UTC >++++ prov/verbs/src/verbs_ep.c >+@@ -38,7 +38,7 @@ static struct fi_ops_msg vrb_srq_msg_ops; >+ static struct fi_ops_msg vrb_srq_msg_ops; >+ >+ >+-void vrb_add_credits(struct fid_ep *ep_fid, size_t credits) >++void vrb_add_credits(struct fid_ep *ep_fid, uint64_t credits) >+ { >+ struct vrb_ep *ep; >+ struct util_cq *cq;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 271537
: 242298