• Jinoh Kang's avatar
    ws2_32: Avoid relying on linux/ipx.h to define SOL_IPX. · 0deab78d
    Jinoh Kang authored
    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: da4e359a
    0deab78d
Name
Last commit
Last update
..
tests Loading commit data...
Makefile.in Loading commit data...
async.c Loading commit data...
hosts Loading commit data...
inaddr.c Loading commit data...
networks Loading commit data...
protocol Loading commit data...
protocol.c Loading commit data...
services Loading commit data...
socket.c Loading commit data...
unixlib.c Loading commit data...
version.rc Loading commit data...
ws2_32.spec Loading commit data...
ws2_32_private.h Loading commit data...