Open zwieblum opened 2 months ago
Is there an obvious patch in https://github.com/gambit/gambit we can backport? From a quick glance at https://github.com/gambit/gambit/blob/d2c2b46e69da1c5fc6ec8946bdc4e1e94479f961/lib/os_io.c#L4799 where this might be coming from this piece of code hasn't been changed for seven years (commit https://github.com/gambit/gambit/commit/353eec72a43db810e4f9ea957de26a7fe2fca373)
Please look again, the error is some lines above:
os_io.c:4649:1: warning: no semicolon at end of struct or union
4649 | } ___device_tcp_addr;
| ^
... but I don't have a clue jet :)
To clearify: gambit 4.9.2 compiles fine on it's own.
The first bug is introduced in the IPv6 patch from lambdanative:
https://github.com/part-cw/lambdanative/blob/5a73d44a59cf34e46637000dfe095d93015ea418/libraries/libgambit/fix_IPv6.patch#L52
it's missing the ;
at the end of the line.
But this only solves the first error, others still persist:
In file included from os_setup.h:8,
from os_io.c:14:
os_io.c: In function ‘try_connect’:
os_io.c:4701:35: error: passing argument 2 of ‘connect’ from incompatible pointer type [-Wincompatible-pointer-types]
4701 | &dev->addr,
| ^~~~~~~~~~
| |
| ___device_tcp_addr * {aka union ___device_tcp_addr_struct *}
os.h:1775:32: note: in definition of macro ‘SOCKET_CALL_ERROR’
1775 | #define SOCKET_CALL_ERROR(s) ((s) < 0)
| ^
In file included from /usr/include/netinet/in.h:23,
from /usr/include/netdb.h:27,
from os.h:1384:
/usr/include/x86_64-linux-gnu/sys/socket.h:126:52: note: expected ‘const struct sockaddr *’ but argument is of type ‘___device_tcp_addr *’ {aka ‘union ___device_tcp_addr_struct *’}
126 | extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
| ^
I fixed the missing semicolon but don't know about the other piece. @0-8-15 could you please take a look as you introduced the IPv6 patch originally? Thanks!
I just removed both libraries/libgambit/fix_IPv6*
and gambit 4.9.2 compiles fine again.
Please note: these libraries/libgambit/fix_IPv6*
patches also break compiltion of android target (clang14), but later in the process with an error due to not finding a generated gambit_SOMELONGNUMBER.h file.
So with the fix_IOv6 patches removed gambit 4.9.2 compiles and works works as it should.
I just tried to rebuild my toolchain and sumbld across this problem: gambitc 4.9.2 does not compile any more with latest gcc. 4gambit 4.7.9 still compiles fine.
The compilation breaks with these lines (and from there on a lot of following errors):
gcc version: