Module: wine Branch: master Commit: 915c3910143a83913db8d9bed8e8c97edc863beb URL: https://gitlab.winehq.org/wine/wine/-/commit/915c3910143a83913db8d9bed8e8c97...
Author: Jinoh Kang jinoh.kang.kr@gmail.com Date: Thu Jul 27 22:39:50 2023 +0900
server: Avoid relying on linux/ipx.h to define SOL_IPX.
musl libc doesn't supply any definitions for IPX, such as the SOL_IPX macro. However, it still provides linux/ipx.h from Linux uAPI header files if it exists.
Linux kernel wouldn't drop linux/ipx.h from uAPI headers until 5.15, although IPX support has already been marked obsolete since 2018.
Fix this by not defining HAS_IPX if linux/ipx.h has been included but nothing defines the SOL_IPX macro.
Status of IPX support from other libcs are noted below:
- bionic: netipx/ipx.h does not exist. linux/ipx.h may or may not exist. Note that sys/socket.h defines SOL_IPX even if linux/ipx.h is missing.
- glibc: netipx/ipx.h exists. In this case, Wine assumes IPX support even if the operating system does not support it in runtime.
- BSD variants: netipx/ipx.h may or may not exist. linux/ipx.h does not exist. Some BSDs supply SO_DEFAULT_HEADERS instead of SOL_IPX.
Fixes: 41cc117b3f37ab4b9b4ac8a815cd2a496d38fb4b
---
server/sock.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/server/sock.c b/server/sock.c index 550fe61e477..ce95b7f2998 100644 --- a/server/sock.c +++ b/server/sock.c @@ -71,7 +71,9 @@ # include <linux/types.h> # endif # include <linux/ipx.h> -# define HAS_IPX +# ifdef SOL_IPX +# define HAS_IPX +# endif #endif
#ifdef HAVE_LINUX_IRDA_H