ucx icon indicating copy to clipboard operation
ucx copied to clipboard

Failed to build: "cannot define new methods on non-local type *C.ucp_request_param_t"

Open banana-bred opened this issue 2 years ago • 1 comments

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

config.log

banana-bred avatar Nov 09 '23 22:11 banana-bred

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!

ParoXoN avatar Nov 13 '23 17:11 ParoXoN