New comment by fvalasiad on void-packages repository https://github.com/void-linux/void-packages/pull/45202#issuecomment-1649490737 Comment: After some digging I found the commit that broke musl support ``` commit 41cc117b3f37ab4b9b4ac8a815cd2a496d38fb4b (HEAD) Author: Billy Laws Date: Sat Jun 3 21:57:42 2023 +0100 commit 41cc117b3f37ab4b9b4ac8a815cd2a496d38fb4b (HEAD) Author: Billy Laws Date: Sat Jun 3 21:57:42 2023 +0100 server: Avoid using SOL_IPX to detect whether IPX is supported. diff --git a/server/sock.c b/server/sock.c index 088e6d63079..34be6ea22ef 100644 --- a/server/sock.c +++ b/server/sock.c @@ -62,6 +62,7 @@ #ifdef HAVE_NETIPX_IPX_H # include +# define HAS_IPX #elif defined(HAVE_LINUX_IPX_H) # ifdef HAVE_ASM_TYPES_H # include @@ -70,8 +71,6 @@ # include # endif # include -#endif -#if defined(SOL_IPX) || defined(SO_DEFAULT_HEADERS) # define HAS_IPX #endif ``` the problem with it is at the following code: ``` #ifdef HAS_IPX int ipx_type = protocol - WS_NSPROTO_IPX; #ifdef SOL_IPX setsockopt( sockfd, SOL_IPX, IPX_TYPE, &ipx_type, sizeof(ipx_type) ); #else struct ipx val; /* Should we retrieve val using a getsockopt call and then * set the modified one? */ val.ipx_pt = ipx_type; setsockopt( sockfd, 0, SO_DEFAULT_HEADERS, &val, sizeof(val) ); #endif #endif ``` previously `HAS_IPX` wasn't defined at all, now it is defined while `SOL_IPX` isn't and so we branch to #else without checking for the existence of `SO_DEFAULT_HEADERS` as the macro originally did. I will consider reverting the commit to upstream wine.