1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-08 03:45:57 +00:00

ws2_32: 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: da4e359a70
This commit is contained in:
Jinoh Kang 2023-07-27 22:39:50 +09:00 committed by Alexandre Julliard
parent 14d4a896bd
commit 0deab78dc5

View File

@ -75,7 +75,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