OS support
Is it official that Dxx-rebirth is dropping support for XP?

I got feedback from one of the Rangers that Beta dxx-rebirth doesn't work on winXP any more.
We have a few pilots who still use winXP.
I tried it today on my XP machine and it is - nightly build from August doesn't work.
Initial BETA 1 (or 100) did work.

Error message says "The procedure entry point inet_ntop cold not be located in the dynamic link library WS2_32.dll"
Short answer: Rebirth should run on XP if it is built not to use that function. SConf will use that function if it is available in the headers, so building an XP-compatible Rebirth requires at least one of:
  • Set preprocessor define _WIN32_WINNT=0x501 to exclude post-Windows XP features (or _WIN32_WINNT=0x500 to exclude post-Windows 2000 features). Preferred, since this will also exclude from the Windows headers any other post-XP features, causing a build break rather than a runtime break (on XP) if any other code has unintentionally picked up a dependency on post-XP features.
  • Use old SDK headers that lack a declaration of inet_ntop. Discouraged, but supported so that people who use old headers for other reasons get the right result automatically.
  • Set sconf_inet_ntop_present=force-failure to force SConf not to detect inet_ntop and instead assume it is absent.
Regardless of the method chosen, inet_ntop is required for IPv6 support, so a build that works on Windows XP must disable IPv6 support. This is probably for the best, since the XP IPv6 support was very poor. I would not use IPv6 on Windows before Windows Vista. (I also wouldn't use Windows Vista on general principle, but that's another topic.)

An XP-compatible build should run fine on later Windows versions, so at the price of disabling IPv6 for all Windows users, fixing this is as simple as getting John to make one of those three changes part of his standard build going forward. If John is feeling generous and wants to produce an XP-compatible build and an IPv6-compatible build, and publish those separately, that will also work. The two should be able to cross-play (as well as play with non-Windows Rebirth) freely.

A quick search of Git history suggests I first introduced a dependency on inet_ntop in Show host address/port in timeout message, which is somewhat funny that it causes a problem because that was a mostly cosmetic patch to make the program easier to use (by showing more detailed information). I subsequently published Fix Windows net_udp.cpp build which, in addition to its titular purpose, added SConf support for detecting whether inet_ntop was present and falling back to inet_ntoa when it is not.
I can produce both an XP and Vista-10 build. I'll start this Saturday with the next build.
Thank you

Forum Jump:

Users browsing this thread: 1 Guest(s)