From nobody Sat May 20 20:04:06 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNvml0X6cz4BTHs; Sat, 20 May 2023 20:04:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNvml01qRz41pS; Sat, 20 May 2023 20:04:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684613047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X1ml/0+zcUOQGIbouS9RguUMoslcGYuLuwwYzkgjRXs=; b=S9uegeP2idz04l9NDZ8eQXgZSLgvAZPp+YV5dSDs1m1h0ttV5P9CynduSvmpuau7VVlXgY /BOSQv5TJrthZWFXNFKBroxHFxLjS9IYednHN8yCa4jhXuNVc608mIYkl33ONal5QgPGY+ EdkVnUNn8Zg0yb7/KsdGcnfWCEfJCrj8HxrG7w5Wj/6ngDbceTIuKk+r6RXlam+Jq2I2SJ 2sAMUUqoNHEz5dwi9qtgdYb3IVoeSb/a8dInLxEqnHYNXsGtARM69BDATFSK/1sPji6tAc 4iLSti7C8K2NOuq8jyr3Nnda4PJ2JaqX19N0mlgc2xm9p98VPutqW9DUPIYrPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684613047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X1ml/0+zcUOQGIbouS9RguUMoslcGYuLuwwYzkgjRXs=; b=cZ8gW6FM2IJEvnieNsmHMi8ZIplHUOSF5LOgdmfcGrNq6ZpwyiJrWic0541+/UYpTpTpQc gvuGbMx0zO3kHCzlXyP+AW/FZ8UhNYiVJgzYOwbZUbD9HcvyGzsf9RkqQAGirGi3c1neJF rOPTBZKzGKC6E2p9Yph1BTrkGzjByQGLTgqfnvoz/O78ToIUry6YX0RVEUoTJeuuThqNRx S+kTeV1JY+rNFzNHh7T++7Fn2SkUNvZzA5DDcCbSwwo9ZnU2IMA91mrWP0gEgwQnwuoWgi DlxGar28NdLh86ra63ExoxSOqAeUiuwLWF4prdTrXT2xMFLV0Ied3Uaq0yMSjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684613047; a=rsa-sha256; cv=none; b=seD1vDsm1YgknTatHsU57TXAY5EQNDW8rcxGMaVYWDQ9b4/y0WhO+7yfOU0CZ0TYuoy3eY 6QjDCGFrTWrcQKVQzRGr6J7AWSyES2RRpAshfkzgLYOlKDDCvmeINZYu2m0Ara2fnZVph4 aC25OyH9/ATIO/F8R2RWxP6UgyMXR6lAcR/lmMtVALhtENObw23CJtkb3FLRXUh4I13+ID sv/a6QDhbPBeXqnSENUCxl6QYuW6DAEX+0U1bFg8UkIyMEqgycRBf9vnqDbpFyDAA7ptqO i+/zlaCx2JbvjdHRwKU1QcSq9R94ondozDTXiB0jztaNNatfvL09Lbeu4WKD2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QNvmk6BLzzNNY; Sat, 20 May 2023 20:04:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34KK462m057885; Sat, 20 May 2023 20:04:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34KK46Tk057884; Sat, 20 May 2023 20:04:06 GMT (envelope-from git) Date: Sat, 20 May 2023 20:04:06 GMT Message-Id: <202305202004.34KK46Tk057884@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dimitry Andric Subject: git: 26bc5ce8ba1e - main - net/libfabric: fix build with clang 16 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 26bc5ce8ba1e9cfbb40d77530b99307a98eac10d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/ports/commit/?id=26bc5ce8ba1e9cfbb40d77530b99307a98eac10d commit 26bc5ce8ba1e9cfbb40d77530b99307a98eac10d Author: Dimitry Andric AuthorDate: 2023-05-20 18:27:11 +0000 Commit: Dimitry Andric CommitDate: 2023-05-20 20:02:45 +0000 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. PR: 271537 Approved by: yuri (maintainer) MFH: 2023Q2 --- net/libfabric/Makefile | 1 + net/libfabric/files/patch-include_ofi__hook.h | 11 ++++++++ .../files/patch-prov_hook_src_hook__domain.c | 29 ++++++++++++++++++++++ .../files/patch-prov_rxm_src_rxm__domain.c | 25 +++++++++++++++++++ .../files/patch-prov_verbs_src_fi__verbs.h | 11 ++++++++ .../files/patch-prov_verbs_src_verbs__domain.c | 16 ++++++++++++ .../files/patch-prov_verbs_src_verbs__ep.c | 11 ++++++++ 7 files changed, 104 insertions(+) diff --git a/net/libfabric/Makefile b/net/libfabric/Makefile index 5dc71c377423..e91c9773efd7 100644 --- a/net/libfabric/Makefile +++ b/net/libfabric/Makefile @@ -1,5 +1,6 @@ PORTNAME= libfabric DISTVERSION= 1.15.1 +PORTREVISION= 1 CATEGORIES= net MASTER_SITES= https://github.com/ofiwg/${PORTNAME}/releases/download/v${DISTVERSION}/ 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 ++#include + + + 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;