Compiling with a Windows 2000 SP4 target (3.2.10.2)

These are old archives. They are kept for historic purposes only.
Post Reply
GrandAdmiralThrawn
Posts: 5
Joined: Thu Jun 30, 2011 6:24 pm

Compiling with a Windows 2000 SP4 target (3.2.10.2)

Post by GrandAdmiralThrawn »

Greetings!

I have seen that the latest UnrealIRCd versions are built using a VC2012 or maybe VC2010 compiler and probably a v110_xp platform target? I am in the nice position of being able to get pretty much any VisualStudio version I want for free, so I thought I'd just recompile UnrealIRCd myself. That did work for both VS2010 and VS2008 (which is supposed to support Windows 2000 as a target) using additional libraries from [here] plus an OpenSSL version updated to 1.0.1g.

However, my resulting build will fail to run on an actual Windows 2000 Server SP4, which is fully updated and has the proper redistributables installed (VS2008 SP1). This is a very antique Pentium PRO machine, and since early Intel P6 chips have a level 2 cache TLB shootdown bug that prevents NT5.1 or newer NT kernels from running in SMP, I have to stay on Win2000 to be able to use multiple processors, as the NT5.0 kernel does not yet feature dirty TLB shootdown. Also, I cannot migrate to Linux or BSD UNIX, because I rely on some software that exists only in the Redmond world, so bad luck there I guess.

Now, how on earth can I compile the UnrealIRCd server for a Windows 2000 platform target? I have googled around like crazy, and for VC project files it seems to be very easy, but since this works with nmake and that plain makefile.win32, I have no idea as to how I could do that?

My binary does work on Windows XP, which is why I am assuming a v110_xp platform target. I guess I would need to change that to v90 and maybe do some other stuff to make the resulting code compatible with NT5.0 / Windows 2000.

Any ideas?! Or should I just try yet another even older compiler?

This is the error I am currently encountering when running the WIRCD.EXE binary:

Code: Select all

The procedure entry point getaddrinfo could not be located in ws2_32 dll
Seems getaddrinfo() was added only with WinXP and later OSes. I have found a shady solution for nmap on Win2000 [here], but I'm not sure if I can pull that off?!

Thanks for any help!
GrandAdmiralThrawn
Posts: 5
Joined: Thu Jun 30, 2011 6:24 pm

Re: Compiling with a Windows 2000 SP4 target (3.2.10.2)

Post by GrandAdmiralThrawn »

Ok, it seems this getaddrinfo() stuff is related to IPv6. I tried to link in wspiapi.h after ws2tcpip.h in common.h to make the function available, but it didn't work. Maybe I can somehow just completely disable IPv6 to work my way around this requirement? I'm not planning to install the IPv6 tech preview for Win2000, I just don't need the protocol at all, I'm 100% on IPv4.

Any ideas? Could disabling IPv6 help? And if yes, how would I do that?

I really hope the problem lies within UnrealIRCd itself and not in any of the libs it's linking against...
GrandAdmiralThrawn
Posts: 5
Joined: Thu Jun 30, 2011 6:24 pm

Re: Compiling with a Windows 2000 SP4 target (3.2.10.2)

Post by GrandAdmiralThrawn »

Nobody can help?

Is there no way I can try and disable IPv6 by supplying any option or setting any variable or so? I'd really like to see whether ripping out IPv6 can solve this getaddrinfo() problem, cause it worked for my OpenSSL 1.0.1g build.. I have now already recompiled the dependencies tre, curl, c-ares and disabled IPV6 for curl, which has such an option. Didn't work either.

I think I may need to disable it in UnrealIRCD itself for this to work.

Anyone?
Stealth
Head of Support
Posts: 2086
Joined: Tue Jun 15, 2004 8:50 pm
Location: Chino Hills, CA, US
Contact:

Re: Compiling with a Windows 2000 SP4 target (3.2.10.2)

Post by Stealth »

Windows 2000 is a very old operating system (14 years!) and support will be hard to come by. We can only really help with currently supported versions of Windows (Vista, 7, 8, 2003, 2008, 2012), as UnrealIRCd is designed to run on fully featured and up-to-date operating systems. The only thing I can suggest doing if you need to compile Unreal yourself on Windows 2000 is to obtain an older version, or to compile it on another system and copy the binaries to your Windows 2000. If compiling it on another PC still causes it to crash on Windows 2000 then it may not be compatible with Windows 2000 at all.

There should be no need to target the compiler specifically for Windows 2000. The default parameters should compile and run on any compatible OS version.

Lastly, we cannot help you modify the source. The best I can suggest would be to create a bug on http://bugs.unrealircd.com, though expect it to be closed due to attempting to operate Unreal on a much outdated OS.
Syzop
UnrealIRCd head coder
Posts: 2112
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl
Contact:

Re: Compiling with a Windows 2000 SP4 target (3.2.10.2)

Post by Syzop »

Yes, as mentioned in one of the bug# there won't be support for Windows 2000 in UnrealIRCd as this is a very outdated OS and apparently recent Visual Studio compiles don't work on it.

If you're looking for a fix then I'm afraid you're on your own.
Post Reply