Today, Wine fails to build with musl libc and Linux kernel 5.14 uAPI header files.
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.
-- v2: server: Avoid relying on linux/ipx.h to define SOL_IPX. ws2_32: Avoid relying on linux/ipx.h to define SOL_IPX. ntdll: Avoid relying on linux/ipx.h to define SOL_IPX.
From: Jinoh Kang jinoh.kang.kr@gmail.com
Today, Wine fails to build with musl libc and Linux kernel 5.14 uAPI header files.
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: 954bf9e0505a7368c34047b311d613cff04393a1 --- dlls/ntdll/unix/socket.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index 6969f411955..e09bf34b07d 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -54,7 +54,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
From: Jinoh Kang jinoh.kang.kr@gmail.com
Today, Wine fails to build with musl libc and Linux kernel 5.14 uAPI header files.
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: da4e359a700209c840490483f5337a14aa1d448f --- dlls/ws2_32/unixlib.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/ws2_32/unixlib.c b/dlls/ws2_32/unixlib.c index 5cb64aad258..db36f18c7bd 100644 --- a/dlls/ws2_32/unixlib.c +++ b/dlls/ws2_32/unixlib.c @@ -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
From: Jinoh Kang jinoh.kang.kr@gmail.com
Today, Wine fails to build with musl libc and Linux kernel 5.14 uAPI header files.
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
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=135314
Your paranoid android.
=== debian11b (64 bit WoW report) ===
d3d11: d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 0.500000, clamp 0.000000: Got depth 4.99374978e-003, expected 4.99999989e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 0.500000, clamp -0.000010: Got depth 4.99374978e-003, expected 4.99999989e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 0.500000, clamp 0.000010: Got depth 2.50997487e-003, expected 2.50999994e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 1.000000, clamp 0.000000: Got depth 7.48750009e-003, expected 7.49999983e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 1.000000, clamp -0.000010: Got depth 7.48750009e-003, expected 7.49999983e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 1.000000, clamp 0.000010: Got depth 2.50997487e-003, expected 2.50999994e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 2.000000, clamp 0.000000: Got depth 1.24749998e-002, expected 1.24999997e-002. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 2.000000, clamp -0.000010: Got depth 1.24749998e-002, expected 1.24999997e-002. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 2.000000, clamp 0.000010: Got depth 2.50997487e-003, expected 2.50999994e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 128.000000, clamp 0.000000: Got depth 6.40899956e-001, expected 6.42499986e-001. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 128.000000, clamp -0.000010: Got depth 6.40899956e-001, expected 6.42499986e-001. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 128.000000, clamp 0.000010: Got depth 2.50997487e-003, expected 2.50999994e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 1000.000000, clamp 0.000010: Got depth 2.50997487e-003, expected 2.50999994e-003. d3d11.c:28634: Test failed: Format 0x28: slope 1.000000: scale 10000.000000, clamp 0.000010: Got depth 2.50997487e-003, expected 2.50999994e-003. d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 0.500000, clamp 0.000000: Got value 0x14745 (4.99373721e-003), expected 0x147ae (4.99999570e-003). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 0.500000, clamp -0.000010: Got value 0x14745 (4.99373721e-003), expected 0x147ae (4.99999570e-003). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 0.500000, clamp 0.000010: Got value 0x8528f (3.25097479e-002), expected 0x85293 (3.25099863e-002). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 1.000000, clamp 0.000000: Got value 0x1eab3 (7.48747634e-003), expected 0x1eb85 (7.49999331e-003). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 1.000000, clamp -0.000010: Got value 0x1eab3 (7.48747634e-003), expected 0x1eb85 (7.49999331e-003). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 1.000000, clamp 0.000010: Got value 0x8528f (3.25097479e-002), expected 0x85293 (3.25099863e-002). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 2.000000, clamp 0.000000: Got value 0x33190 (1.24750147e-002), expected 0x33333 (1.24999890e-002). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 2.000000, clamp -0.000010: Got value 0x33190 (1.24750147e-002), expected 0x33333 (1.24999890e-002). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 2.000000, clamp 0.000010: Got value 0x8528f (3.25097479e-002), expected 0x85293 (3.25099863e-002). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 128.000000, clamp 0.000000: Got value 0xa41204 (6.40899956e-001), expected 0xa47ae0 (6.42499983e-001). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 128.000000, clamp -0.000010: Got value 0xa41204 (6.40899956e-001), expected 0xa47ae0 (6.42499983e-001). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 128.000000, clamp 0.000010: Got value 0x8528f (3.25097479e-002), expected 0x85293 (3.25099863e-002). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 1000.000000, clamp 0.000010: Got value 0x8528f (3.25097479e-002), expected 0x85293 (3.25099863e-002). d3d11.c:28643: Test failed: Format 0x2d: slope 1.000000: scale 10000.000000, clamp 0.000010: Got value 0x8528f (3.25097479e-002), expected 0x85293 (3.25099863e-002). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 0.500000, clamp 0.000000: Got value 0x28e (9.97940078e-003), expected 0x290 (1.00099184e-002). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 0.500000, clamp -0.000010: Got value 0x28e (9.97940078e-003), expected 0x290 (1.00099184e-002). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 1.000000, clamp 0.000000: Got value 0x331 (1.24666207e-002), expected 0x334 (1.25123980e-002). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 1.000000, clamp -0.000010: Got value 0x331 (1.24666207e-002), expected 0x334 (1.25123980e-002). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 2.000000, clamp 0.000000: Got value 0x476 (1.74258035e-002), expected 0x47b (1.75020974e-002). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 2.000000, clamp -0.000010: Got value 0x476 (1.74258035e-002), expected 0x47b (1.75020974e-002). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 128.000000, clamp 0.000000: Got value 0xa411 (6.40894175e-001), expected 0xa47a (6.42496347e-001). d3d11.c:28651: Test failed: Format 0x37: slope 1.000000: scale 128.000000, clamp -0.000010: Got value 0xa411 (6.40894175e-001), expected 0xa47a (6.42496347e-001).
This merge request was approved by Zebediah Figura.