Hi,
It turns out that these are inline functions, here is a new patch.
xan
________________________________
From: Michel Zou
Sent: Monday, August 9, 2021 5:18 PM
To: LIU Hao <[email protected]>; [email protected]
<[email protected]>
Subject: Re: [Mingw-w64-public] patch to add htonll/ntohll
I have no idea, I removed them if you think its unavailable.
________________________________
From: LIU Hao
Sent: Monday, August 9, 2021 5:02 PM
To: Michel Zou; [email protected]
Subject: Re: [Mingw-w64-public] patch to add htonll/ntohll
在 2021-08-09 21:20, Michel Zou 写道:
> diff --git a/mingw-w64-crt/libce/winsock.def b/mingw-w64-crt/libce/winsock.def
> index c9e2e958d..a75b84c69 100644
> --- a/mingw-w64-crt/libce/winsock.def
> +++ b/mingw-w64-crt/libce/winsock.def
The `#if` guards are okay. However, changes to libce are highly dubious; do you
have any reliable
sources about whether these functions are available on Windows CE? AFAICT
Windows CE predates
Windows 8 and probably hasn't got them.
--
Best regards,
LIU Hao
diff --git a/mingw-w64-headers/include/winsock2.h b/mingw-w64-headers/include/winsock2.h
index 0697e8c2a..fce0729b5 100644
--- a/mingw-w64-headers/include/winsock2.h
+++ b/mingw-w64-headers/include/winsock2.h
@@ -1011,6 +1011,9 @@ typedef unsigned int GROUP;
#ifndef __INSIDE_CYGWIN__
WINSOCK_API_LINKAGE u_long WSAAPI htonl(u_long hostlong);
WINSOCK_API_LINKAGE u_short WSAAPI htons(u_short hostshort);
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
+ __forceinline unsigned __int64 htonll(unsigned __int64 Value) { return (((unsigned __int64)htonl(Value & 0xFFFFFFFFUL)) << 32) | htonl((u_long)(Value >> 32)); }
+#endif
#endif /* !__INSIDE_CYGWIN__ */
WINSOCK_API_LINKAGE unsigned __LONG32 WSAAPI inet_addr(const char *cp);
WINSOCK_API_LINKAGE char *WSAAPI inet_ntoa(struct in_addr in);
@@ -1018,6 +1021,9 @@ typedef unsigned int GROUP;
#ifndef __INSIDE_CYGWIN__
WINSOCK_API_LINKAGE u_long WSAAPI ntohl(u_long netlong);
WINSOCK_API_LINKAGE u_short WSAAPI ntohs(u_short netshort);
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
+ __forceinline unsigned __int64 ntohll(unsigned __int64 Value) { return (((unsigned __int64)ntohl(Value & 0xFFFFFFFFUL)) << 32) | ntohl((u_long)(Value >> 32)); }
+#endif
#endif /* !__INSIDE_CYGWIN__ */
WINSOCK_API_LINKAGE int WSAAPI recv(SOCKET s,char *buf,int len,int flags);
WINSOCK_API_LINKAGE int WSAAPI recvfrom(SOCKET s,char *buf,int len,int flags,struct sockaddr *from,int *fromlen);
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public