ucx
ucx copied to clipboard
Failed to build: "cannot define new methods on non-local type *C.ucp_request_param_t"
Describe the bug
UCX fails to build.
Steps to Reproduce
Followed the build instructions
$ ./autogen.sh
$ ./contrib/configure-release --prefix=$(pwd)/RightHere
$ make -j8
<SNIP>
cd /home/user/.cache/paru/clone/openucx/src/ucx/bindings/go/src/ucx ;\
go build
# ucx
./request.go:32:10: cannot define new methods on non-local type *C.ucp_request_param_t
# ucx
../../ucx/request.go:32:10: cannot define new methods on non-local type *C.ucp_request_param_t
make[2]: *** [Makefile:622: build] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:639: goperftest] Error 1
make[2]: Leaving directory '/home/user/.cache/paru/clone/openucx/src/ucx/bindings/go'
make[1]: *** [Makefile:769: all-recursive] Error 1
make[1]: Leaving directory '/home/user/.cache/paru/clone/openucx/src/ucx'
make: *** [Makefile:635: all] Error 2
Setup and versions
OS: Artix Linux x86_64
Additional information
$ echo go glibc binutils openmpi gcc rdma-core numactl | tr ' ' '\n' | xargs -I{} sh -c 'echo {} $(pacman -Qi {} | grep Version)' | column -t
go Version : 2:1.21.4-1
glibc Version : 2.38-7
binutils Version : 2.41-3
openmpi Version : 4.1.5-5
gcc Version : 13.2.1-3
rdma-core Version : 44.0-2
numactl Version : 2.0.16-1
I ran into the very same issue with the same set of libs on Arch x86_64:
$ echo go glibc binutils openmpi gcc rdma-core numactl | tr ' ' '\n' | xargs -I{} sh -c 'echo {} $(pacman -Qi {} | grep Version)' | column -t
go Version : 2:1.21.4-1
glibc Version : 2.38-7
binutils Version : 2.41-3
openmpi Version : 4.1.5-5
gcc Version : 13.2.1-3
rdma-core Version : 44.0-2
numactl Version : 2.0.16-1
I was able to work around the issue by using the previous stable version of go, 1.20.11 (from https://go.dev/dl/) instead of 1.21.4.
If you already have go installed, you can use it to grab a different version as described at: https://go.dev/doc/manage-install
I was using the AUR package to build it, so I set GOPATH and GOBIN to point to the 1.20.11 directory, but you should just be able to run
go1.20.11 build
and have it work.
Good luck!