Git Product home page Git Product logo

go-libutp's Introduction

go-libutp

GoDoc CircleCI Go Report Card Appveyor Status

This is a Go wrapper for libutp.

go-libutp's People

Contributors

anacrolix avatar aqk avatar arvidn avatar b-c avatar ckerr avatar dependabot[bot] avatar figbert avatar ghazel avatar huahang avatar kaustavha avatar mafintosh avatar mct avatar mh-cbon avatar mikedld avatar nenad avatar rmcdonald avatar ssiloti avatar ssuominengentoo avatar ucwong avatar xercesblue avatar yumkam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-libutp's Issues

Getting crashes

Getting crashes, coming from libutp, looks like connectivity problem is causing it.

Here is the log part.


07:51:14.868 T:140043090876160  NOTICE: [plugin.video.elementum] elementum: /ext-go/2/src/github.com/anacrolix/go-libutp/utp_internal.cpp:3314: int utp_getpeername(utp_socket*, sockaddr*, socklen_t*): Assertion `conn' failed.
07:51:15.874 T:140043090876160  NOTICE: [plugin.video.elementum]
07:51:15.874 T:140043090876160  NOTICE: [plugin.video.elementum] PC=0x7fc0019d90bb m=7 sigcode=18446744073709551610
07:51:15.875 T:140043090876160  NOTICE: [plugin.video.elementum] signal arrived during cgo execution
07:51:15.875 T:140043090876160  NOTICE: [plugin.video.elementum]
07:51:15.876 T:140043090876160  NOTICE: [plugin.video.elementum] goroutine 10768 [syscall, locked to thread]:
07:51:15.877 T:140043090876160  NOTICE: [plugin.video.elementum] runtime.cgocall(0xb9be00, 0xc420d62b30, 0x1)
07:51:15.877 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/runtime/cgocall.go:131 +0xe2 fp=0xc420d62b00 sp=0xc420d62ac0
07:51:15.878 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/go-libutp._Cfunc_utp_getpeername(0x0, 0xc421148cb0, 0xc4203c0f38, 0x0)
07:51:15.878 T:140043090876160  NOTICE: [plugin.video.elementum] 	github.com/anacrolix/go-libutp/_obj/_cgo_gotypes.go:294 +0x4d fp=0xc420d62b30 sp=0xc420d62b00
07:51:15.882 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/go-libutp.(*Conn).RemoteAddr.func1(0x0, 0xc421148cb0, 0xc4203c0f38, 0xd0eae0)
07:51:15.883 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/go-libutp/conn.go:196 +0x74 fp=0xc420d62b68 sp=0xc420d62b30
07:51:15.883 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/go-libutp.(*Conn).RemoteAddr(0xc42060ab40, 0x1432790, 0xc4226debd0)
07:51:15.884 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/go-libutp/conn.go:197 +0x76 fp=0xc420d62ba8 sp=0xc420d62b68
07:51:15.884 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/torrent.(*connection).remoteAddr(0xc4200c7b80, 0x13, 0xc42332f620)
07:51:15.885 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/torrent/connection.go:111 +0x34 fp=0xc420d62bd0 sp=0xc420d62ba8
07:51:15.885 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/torrent.(*Torrent).addrActive(0xc4206c7680, 0xc42332f620, 0x13, 0x5)
07:51:15.886 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/torrent/torrent.go:205 +0xdd fp=0xc420d62c70 sp=0xc420d62bd0
07:51:15.892 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/torrent.(*Client).initiateConn(0xc420219880, 0x0, 0x0, 0x0, 0xc420f07234, 0x4, 0x4, 0x9fd6, 0xe37ef1, 0x1, ...)
07:51:15.893 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/torrent/client.go:513 +0x1d0 fp=0xc420d62d50 sp=0xc420d62c70
07:51:15.905 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/torrent.(*Client).openNewConns(0xc420219880, 0xc4206c7680)
07:51:15.908 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/torrent/client.go:1185 +0x227 fp=0xc420d62ee0 sp=0xc420d62d50
07:51:15.909 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/torrent.(*Client).noLongerHalfOpen(0xc420219880, 0xc4206c7680, 0xc422d0b6e0, 0x13)
07:51:15.910 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/torrent/client.go:598 +0xb6 fp=0xc420d62f40 sp=0xc420d62ee0
07:51:15.912 T:140043090876160  NOTICE: [plugin.video.elementum] github.com/anacrolix/torrent.(*Client).outgoingConnection(0xc420219880, 0xc4206c7680, 0xc422d0b6e0, 0x13, 0xe37ef1, 0x1)
07:51:15.913 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/torrent/client.go:686 +0xdf fp=0xc420d62fb0 sp=0xc420d62f40
07:51:15.919 T:140043090876160  NOTICE: [plugin.video.elementum] runtime.goexit()
07:51:15.921 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/runtime/asm_amd64.s:2197 +0x1 fp=0xc420d62fb8 sp=0xc420d62fb0
07:51:15.921 T:140043090876160  NOTICE: [plugin.video.elementum] created by github.com/anacrolix/torrent.(*Client).initiateConn
07:51:15.922 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/2/src/github.com/anacrolix/torrent/client.go:517 +0x2d2
07:51:15.924 T:140043090876160  NOTICE: [plugin.video.elementum]
07:51:15.925 T:140043090876160  NOTICE: [plugin.video.elementum] goroutine 1 [IO wait, 1 minutes]:
07:51:15.926 T:140043090876160  NOTICE: [plugin.video.elementum] net.runtime_pollWait(0x7fc002663c00, 0x72, 0x143f1e0)
07:51:15.926 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/runtime/netpoll.go:164 +0x59
07:51:15.927 T:140043090876160  NOTICE: [plugin.video.elementum] net.(*pollDesc).wait(0xc4201ce7d8, 0x72, 0x143a010, 0xc4204132c0)
07:51:15.928 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/fd_poll_runtime.go:75 +0x38
07:51:15.942 T:140043090876160  NOTICE: [plugin.video.elementum] net.(*pollDesc).waitRead(0xc4201ce7d8, 0xffffffffffffffff, 0x0)
07:51:15.942 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/fd_poll_runtime.go:80 +0x34
07:51:15.942 T:140043090876160  NOTICE: [plugin.video.elementum] net.(*netFD).accept(0xc4201ce770, 0x0, 0x143d6e0, 0xc4204132c0)
07:51:15.943 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/fd_unix.go:430 +0x1e5
07:51:15.943 T:140043090876160  NOTICE: [plugin.video.elementum] net.(*TCPListener).accept(0xc4201995a0, 0xc4205ce3a0, 0xd017a0, 0xffffffffffffffff)
07:51:15.944 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/tcpsock_posix.go:136 +0x2e
07:51:15.944 T:140043090876160  NOTICE: [plugin.video.elementum] net.(*TCPListener).AcceptTCP(0xc4201995a0, 0xc4207a3cb8, 0xc4207a3cc0, 0xc4207a3cb0)
07:51:15.946 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/tcpsock.go:215 +0x49
07:51:15.946 T:140043090876160  NOTICE: [plugin.video.elementum] net/http.tcpKeepAliveListener.Accept(0xc4201995a0, 0xe676a0, 0xc4205ce320, 0x14441e0, 0xc420559380)
07:51:15.947 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/http/server.go:3044 +0x2f
07:51:15.955 T:140043090876160  NOTICE: [plugin.video.elementum] net/http.(*Server).Serve(0xc420574210, 0x1443a60, 0xc4201995a0, 0x0, 0x0)
07:51:15.956 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/http/server.go:2643 +0x228
07:51:15.956 T:140043090876160  NOTICE: [plugin.video.elementum] net/http.(*Server).ListenAndServe(0xc420574210, 0xc420574210, 0xc4203382a6)
07:51:15.956 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/http/server.go:2585 +0xb0
07:51:15.957 T:140043090876160  NOTICE: [plugin.video.elementum] net/http.ListenAndServe(0xc4203382a6, 0x6, 0x0, 0x0, 0x5, 0xc4203382a6)
07:51:15.957 T:140043090876160  NOTICE: [plugin.video.elementum] 	/usr/local/go/src/net/http/server.go:2787 +0x7f
07:51:15.958 T:140043090876160  NOTICE: [plugin.video.elementum] main.main()
07:51:15.958 T:140043090876160  NOTICE: [plugin.video.elementum] 	/ext-go/1/src/github.com/elgatito/elementum/main.go:179 +0x9ce
07:51:15.959 T:140043090876160  NOTICE: [plugin.video.elementum]

go build ucat/main.go fails on linux and windows (undefined: utp.Socket)

When I run:
GOOS=windows GOARCH=amd64 go build ucat/main.go
or
GOOS=linux GOARCH=amd64 go build ucat/main.go

It seems to fail with the following error:

# github.com/anacrolix/go-libutp
../../work/src/github.com/anacrolix/go-libutp/status.go:9:2: undefined: mu
../../work/src/github.com/anacrolix/go-libutp/status.go:10:8: undefined: mu
../../work/src/github.com/anacrolix/go-libutp/status.go:11:20: undefined: libContextToSocket

Now I checked out status.go, and it doesn't seem to do much interesting. So after deleting status.go it ends up failing with the following error:

GOOS=windows GOARCH=amd64 go build ucat/main.go
# command-line-arguments
ucat/main.go:16:43: undefined: utp.Socket
ucat/main.go:40:21: undefined: utp.Socket
ucat/main.go:42:11: undefined: utp.NewSocket
ucat/main.go:44:11: undefined: utp.NewSocket
ucat/main.go:53:4: not enough arguments to return
ucat/main.go:55:4: not enough arguments to return

The "undefined: utp.Socket" error is something I myself got when I started using anacrolix/go-libutp instead of anacrolix/utp. Weirdly enough it does compile on DARWIN.

Build Error : cannot define new methods on non-local type

github.com/anacrolix/go-libutp
/github/home/go/pkg/mod/github.com/anacrolix/[email protected]/callbacks.go:16:10: cannot define new methods on non-local type *C.utp_callback_arguments
/github/home/go/pkg/mod/github.com/anacrolix/[email protected]/callbacks.go:24:10: cannot define new methods on non-local type *C.utp_callback_arguments
/github/home/go/pkg/mod/github.com/anacrolix/[email protected]/callbacks.go:28:10: cannot define new methods on non-local type *C.utp_callback_arguments
/github/home/go/pkg/mod/github.com/anacrolix/[email protected]/callbacks.go:32:10: cannot define new methods on non-local type *C.utp_callback_arguments
/github/home/go/pkg/mod/github.com/anacrolix/[email protected]/callbacks.go:36:10: cannot define new methods on non-local type *C.utp_callback_arguments
/github/home/go/pkg/mod/github.com/anacrolix/[email protected]/utp.go:29:12: cannot define new methods on non-local type *C.utp_context
/github/home/go/pkg/mod/github.com/anacrolix/[email protected]/utp.go:40:12: cannot define new methods on non-local type *C.utp_context
make: *** [Makefile:21: app] Error 1
Error: Process completed with exit code 2.

Add SOCKS5 support

This would probably be done by allowing to hook uses of net.PacketConn.

Build error

Hi, I'm trying to use the downstream project https://github.com/anacrolix/torrent and I get the following error when building.

external/com_github_anacrolix_go_libutp/utp_templates.h:69:2: error: 'FORCEINLINE' does not name a type
   69 |  FORCEINLINE uint16 host_to_network(uint16 i) { return htons(i); }
      |  ^~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h:70:2: error: 'FORCEINLINE' does not name a type
   70 |  FORCEINLINE uint32 host_to_network(uint32 i) { return htonl(i); }
      |  ^~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h:71:2: error: 'FORCEINLINE' does not name a type
   71 |  FORCEINLINE int32 host_to_network(int32 i) { return htonl(i); }
      |  ^~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h:72:2: error: 'FORCEINLINE' does not name a type
   72 |  FORCEINLINE uint16 network_to_host(uint16 i) { return ntohs(i); }
      |  ^~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h:73:2: error: 'FORCEINLINE' does not name a type
   73 |  FORCEINLINE uint32 network_to_host(uint32 i) { return ntohl(i); }
      |  ^~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h:74:2: error: 'FORCEINLINE' does not name a type
   74 |  FORCEINLINE int32 network_to_host(int32 i) { return ntohl(i); }
      |  ^~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h: In member function 'T big_endian<T>::operator=(T)':
external/com_github_anacrolix_go_libutp/utp_templates.h:80:38: error: 'host_to_network' is not a member of 'aux'
   80 |  T operator=(T i) { m_integer = aux::host_to_network(i); return i; }
      |                                      ^~~~~~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h: In member function 'big_endian<T>::operator T() const':
external/com_github_anacrolix_go_libutp/utp_templates.h:81:35: error: 'network_to_host' is not a member of 'aux'
   81 |  operator T() const { return aux::network_to_host(m_integer); }
      |                                   ^~~~~~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_templates.h: At global scope:
external/com_github_anacrolix_go_libutp/utp_templates.h:100:29: error: 'FORCEINLINE' does not name a type
  100 | template<typename T> static FORCEINLINE void QuickSortT(T *base, size_t num, int (*comp)(const T *, const T *)) { qsort(base, num, sizeof(T), (SortCompareProc*)comp); }
      |                             ^~~~~~~~~~~
In file included from external/com_github_anacrolix_go_libutp/utp_internal.h:36,
                 from external/com_github_anacrolix_go_libutp/utp_api.cpp:26:
external/com_github_anacrolix_go_libutp/utp_packedsockaddr.h:49:17: error: 'SOCKADDR_STORAGE' does not name a type
   49 |  void set(const SOCKADDR_STORAGE* sa, socklen_t len);
      |                 ^~~~~~~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_packedsockaddr.h:51:23: error: 'SOCKADDR_STORAGE' does not name a type
   51 |  PackedSockAddr(const SOCKADDR_STORAGE* sa, socklen_t len);
      |                       ^~~~~~~~~~~~~~~~
external/com_github_anacrolix_go_libutp/utp_packedsockaddr.h:54:2: error: 'SOCKADDR_STORAGE' does not name a type
   54 |  SOCKADDR_STORAGE get_sockaddr_storage(socklen_t *len) const;
      |  ^~~~~~~~~~~~~~~~
compilepkg: error running subcommand /usr/bin/gcc: exit status 1

Build fails with go 1.9.4

With new go, version 1.9.4, the build fails:

$ go build github.com/anacrolix/go-libutp
go build github.com/anacrolix/go-libutp: invalid flag in #cgo CFLAGS: -fno-exceptions
$

[BUG] Reading produce UTP_ECONNRESET on client side under an heavy load of the server.

While remaking a transport the transport for libp2p lib I was getting some stream error under one test, this test was making a lot of connection, after some digging I found these error are coming when some layer tries to read from the Conn object.

Here is my bug reproducing repo :
/ipfs/QmQvCivXZtrK87DgEBK2LJDwYCSiANdVHCsdxaV8n5abFn
To reproduce the bug just build it and start it.
It will create one utp socket on 127.0.0.1:4500 wich accept and start an handler function wich just read and write what it read until the conn die.
After it start 100 goroutine each creating a new socket and dialling the first socket, then sending an array of byte and verifying what was sended and what was received is the same.
Then most of the time (it never not happend to me but the number of times vary a lot, if for you it doesn't trigger maybe try with more dialler (via the test var, also the addr is not used in the dialler (I forgoted to put it also here) so if you must change it change it also in the hi func)).
And you should see some UTP_ECONNRESET errors.
As you can see that an sample case :

At connector 16 error for reading:
UTP_ECONNRESET
At connector 82 error for reading:
UTP_ECONNRESET
At connector 18 error for reading:
UTP_ECONNRESET
At connector 46 error for reading:
UTP_ECONNRESET
At connector 66 error for reading:
UTP_ECONNRESET
At connector 68 error for reading:
UTP_ECONNRESET
At connector 92 error for reading:
UTP_ECONNRESET
At connector 14 error for reading:
UTP_ECONNRESET
At connector 83 error for reading:
UTP_ECONNRESET
At connector 44 error for reading:
UTP_ECONNRESET

varnings

slicken@slk:~/ts$ go version
go version go1.14.4 linux/amd64

slicken@slk:~/go/src/github.com/slicken/ts$ go build -o app

# github.com/anacrolix/go-libutp
In file included from utp_api.cpp:26:
utp_internal.h: In constructor ‘UTPSocketKey::UTPSocketKey(const PackedSockAddr&, uint32)’:
utp_internal.h:79:32: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct UTPSocketKey’; use assignment instead [-Wclass-memaccess]
   79 |   memset(this, 0, sizeof(*this));
      |                                ^
utp_internal.h:74:8: note: ‘struct UTPSocketKey’ declared here
   74 | struct UTPSocketKey {
      |        ^~~~~~~~~~~~
# github.com/anacrolix/go-libutp
In file included from utp_callbacks.h:27,
                 from utp_callbacks.cpp:25:
utp_internal.h: In constructor ‘UTPSocketKey::UTPSocketKey(const PackedSockAddr&, uint32)’:
utp_internal.h:79:32: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct UTPSocketKey’; use assignment instead [-Wclass-memaccess]
   79 |   memset(this, 0, sizeof(*this));
      |                                ^
utp_internal.h:74:8: note: ‘struct UTPSocketKey’ declared here
   74 | struct UTPSocketKey {
      |        ^~~~~~~~~~~~
# github.com/anacrolix/go-libutp
In file included from utp_internal.cpp:34:
utp_internal.h: In constructor ‘UTPSocketKey::UTPSocketKey(const PackedSockAddr&, uint32)’:
utp_internal.h:79:32: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct UTPSocketKey’; use assignment instead [-Wclass-memaccess]
   79 |   memset(this, 0, sizeof(*this));
      |                                ^
utp_internal.h:74:8: note: ‘struct UTPSocketKey’ declared here
   74 | struct UTPSocketKey {
      |        ^~~~~~~~~~~~

got latest version of go & go-libutp

go-libutp build issues on Windows

From @shellus on July 20, 2017 3:38

C:\Users\shellus\go\src\github.com\shellus\untitled>go get github.com/anacrolix/torrent
# github.com/anacrolix/go-libutp
..\..\anacrolix\go-libutp\utp.go:12:1: error: unknown type name 'uint64_t'
 uint64_t errorCallback(utp_callback_arguments *);
 ^~~~~~~~
..\..\anacrolix\go-libutp\utp.go:13:1: error: unknown type name 'uint64_t'
 uint64_t logCallback(utp_callback_arguments *);
 ^~~~~~~~
..\..\anacrolix\go-libutp\utp.go:14:1: error: unknown type name 'uint64_t'
 uint64_t acceptCallback(utp_callback_arguments *);
 ^~~~~~~~
..\..\anacrolix\go-libutp\utp.go:15:1: error: unknown type name 'uint64_t'
 uint64_t sendtoCallback(utp_callback_arguments *);
 ^~~~~~~~
..\..\anacrolix\go-libutp\utp.go:16:1: error: unknown type name 'uint64_t'
 uint64_t stateChangeCallback(utp_callback_arguments *);
 ^~~~~~~~
..\..\anacrolix\go-libutp\utp.go:17:1: error: unknown type name 'uint64_t'
 uint64_t readCallback(utp_callback_arguments *);
 ^~~~~~~~

C:\Users\shellus\go\src\github.com\shellus\untitled>

Copied from original issue: anacrolix/torrent#171

build issues when cross compiling for android & iOS

Hello, I'm having issues to compile go-libutp on Mac m1 Ventura

Go Environment:
GO111MODULE=""
GOARCH="arm64"
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOVERSION="go1.18.3"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/simbadmarino/Documents/btfs-sharedLib/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/89/7_dkrhfd345107kdvp3gk4p40000gn/T/go-build1930779843=/tmp/go-build -gno-record-gcc-switches -fno-common"

Makefile screenshot:

image

What did I do?

make iOS OR make android

What did I expected?

build is successful

What happened?

  • Following error is shown for iOS:

github.com/anacrolix/go-libutp

ld: building for macOS, but linking in object file built for iOS Simulator, file '/var/folders/89/7_dkrhfd345107kdvp3gk4p40000gn/T/go-build127800418/b955/_cgo_main.o' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:19: ios-x86_64] Error 2

  • Following error is shown for Android:

github.com/anacrolix/go-libutp

ld: warning: ignoring file $WORK/b956/_x005.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
ld: warning: ignoring file $WORK/b956/_cgo_main.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
ld: warning: ignoring file $WORK/b956/_x004.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
ld: warning: ld: warning: ignoring file $WORK/b956/_x001.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )ld: warning: ignoring file $WORK/b956/_x003.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
ld: warning: ignoring file $WORK/b956/_x007.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )

ld: warning: ignoring file $WORK/b956/_x002.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
ignoring file $WORK/b956/_x006.o, building for macOS-arm64 but attempting to link with file built for unknown-unsupported file format ( 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 )
Undefined symbols for architecture arm64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:33: android-armv7a] Error 2

Any ideas or support is appreciated. I have tried with old go versions and newer and same result.

Using go-libutp in meshbird

Hello! I have successfully implemented go-libutp into meshbird (see my fork), but currently I am struggling with UTP_ETIMEOUT. For me it seems like there is too little time for request. While scanning my traffic via Wireshark, I've mentioned that req-resp time could go up to 20 mins. It is a lot of time, but at least something happens. How can I increase time so I may see if it will help me solve the problem I have.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.