[Bug 292889] [NEW PORT] net/ucx: Unified Communication X (UCX) framework

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 17 Feb 2026 22:46:04 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292889

Generic Rikka <rikka.goering@outlook.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #268043|0                           |1
        is obsolete|                            |

--- Comment #22 from Generic Rikka <rikka.goering@outlook.de> ---
Created attachment 268148
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=268148&action=edit
[NEW PORT] net/ucx: Unified Communication X for high-performance messaging

(In reply to Robert Clausecker from comment #19)
Thanks a lot for the detailed review — this was extremely helpful.

I’ve attached an updated patchset addressing the points raised:
 - Generated files: dropped patches to generated Makefile.in / configure in
favor of patching Makefile.am / configure.ac, and enabled USES=autoreconf.
 - aarch64 build failure: fixed the missing declaration by including the
correct UCX header in src/ucs/arch/aarch64/cpu.h (adds <ucs/sys/ptr_arith.h>).
 - brk(): removed/disabled the FreeBSD brk emulation; ucm_brk_syscall() is now
Linux-only and returns ENOSYS elsewhere.
 - eventfd(): stopped patching it out on FreeBSD; added a configure check
(sys/eventfd.h) and guarded usage with HAVE_SYS_EVENTFD_H.
 - HOST_NAME_MAX: removed duplicate polyfills and introduced a single
centralized UCS_HOST_NAME_MAX helper.
 - header detection: removed the || defined(__FreeBSD__) fallbacks and fixed
header discovery via configure checks.
 - syscall usage: replaced Linux __NR_* usage with SYS_* where raw syscalls are
used, and used libc calls where appropriate on FreeBSD.
 - float word order: added a configure-time float word order test and rewrote
the float8 packing/unpacking to avoid ABI-fragile bitfields.
 - iphdr/ipv6hdr: dropped custom bitfield structs and switched to OS-provided
headers/structs (netinet/ip.h / netinet/ip6.h on FreeBSD).
 - tests: hooked up the test suite with TEST_TARGET=check.
 - architectures: set ONLY_FOR_ARCHS=amd64 aarch64 ppc64le and added an
explanatory ONLY_FOR_ARCHS_REASON (armv7 hits upstream “Unsupported
architecture”).

I don’t currently have an aarch64 machine available to run a full testport
locally; if someone can confirm the aarch64 build/testport result on 15, that’d
be greatly appreciated. If it still fails, I’ll either adjust the fix or drop
aarch64 from ONLY_FOR_ARCHS until it’s resolved.

Happy to iterate further if anything is still off.

-- 
You are receiving this mail because:
You are the assignee for the bug.