Windows Build Failure
Windows Build Failure
I am trying to build the Windows version of 3.2.1 and it is generating a link warning of "warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library" and then it continues building, but my build fails to load with an access violation. I am running the build on Visual Studio .Net (Original) from the VS.Net Command Prompt on a WinXP Pro system. I have activated the zlib option and #undef the prefix_aq. Other than that, it is a standard set of source downloaded off the site. Not sure exactly why I am getting failures. Which version of VS was the makefile.win32 designed for? I have access to 6 enterprise, .net and .net 2003. Any help or a direction to go in would be appreciated. Thanks.
-
- Former UnrealIRCd head coder
- Posts: 811
- Joined: Sat Mar 06, 2004 8:47 pm
- Location: United States
- Contact:
I compile using VS.NET, but I believe others have used VS.NET 2003. VC6 probably shouldn't be used, it's old, and it's buggy.
That warning though shouldn't really have anything to do with the error you are receiving. Can you give the exact message you get when compiling fails? Not the warning, the actual error message.
That warning though shouldn't really have anything to do with the error you are receiving. Can you give the exact message you get when compiling fails? Not the warning, the actual error message.
-- codemastr
Update
I also get the following errors while trying to run a debug build:
src\ircd.c(842) warning C4090:'function': different 'const' qualifier
src\ircd.c(842) warning C4090:'function': different 'const' qualifier
src\res.c(137) warning C4133:'function': incompatible types - from 'int *' to 'const unsigned char *'
LINK: Warning LNK4224: /DEBUGTYPE:BOTH is no longer supported: ignored
LINK: Warning LNK4075: ignoring '/MAPINFO:LINES' due to '/INCREMENTAL' specification
Hope that helps.
(I did that on a completely clean version of source with only the changes I had mentioned before, and copying the contents of the include\win32 directory in to the include directory.)
src\ircd.c(842) warning C4090:'function': different 'const' qualifier
src\ircd.c(842) warning C4090:'function': different 'const' qualifier
src\res.c(137) warning C4133:'function': incompatible types - from 'int *' to 'const unsigned char *'
LINK: Warning LNK4224: /DEBUGTYPE:BOTH is no longer supported: ignored
LINK: Warning LNK4075: ignoring '/MAPINFO:LINES' due to '/INCREMENTAL' specification
Hope that helps.
(I did that on a completely clean version of source with only the changes I had mentioned before, and copying the contents of the include\win32 directory in to the include directory.)
Fatal Error
The code builds, it fails to execute the built file. It gave a fatal error and performed a core dump. Here is the core dump:
Generated at Tue Jul 06 16:59:30 2004
Windows XP Service Pack 1 (5.1.2600)
Unreal3.2.1[FinWXOoZE] (1.1.1.1.2.17 2004/07/03 19:04:02)
-----------------
Memory Information:
Physical: (Available:154MB/Total:510MB)
Virtual: (Available:2016MB/Total:2047MB)
-----------------
Exception:
Access Violation
-----------------
Backup Buffer:
-----------------
Registers:
EAX=0xffffffff EBX=0x7ffdf000 ECX=0x00000031
EDX=0x00000031 ESI=0x00000006 EDI=0x00000020
EIP=0x00431bd0 EBP=0x0012fb4c ESP=0x0012fb48
-----------------
Stack Trace:
Module: wircd
#0 c:\dev\unreal3.2\src\ircd.c:842: do_version_check
#1 c:\dev\unreal3.2\src\ircd.c:1161: InitwIRCD
#2 c:\dev\unreal3.2\src\win32\win32gui.c:646: WinMain
#3 f:\vs70builds\9466\vc\crtbld\crt\src\crtexe.c:392: WinMainCRTStartup
Module: kernel32
#4 f:\vs70builds\9466\vc\crtbld\crt\src\crtexe.c:392: GetCurrentDirectoryW
Generated at Tue Jul 06 16:59:30 2004
Windows XP Service Pack 1 (5.1.2600)
Unreal3.2.1[FinWXOoZE] (1.1.1.1.2.17 2004/07/03 19:04:02)
-----------------
Memory Information:
Physical: (Available:154MB/Total:510MB)
Virtual: (Available:2016MB/Total:2047MB)
-----------------
Exception:
Access Violation
-----------------
Backup Buffer:
-----------------
Registers:
EAX=0xffffffff EBX=0x7ffdf000 ECX=0x00000031
EDX=0x00000031 ESI=0x00000006 EDI=0x00000020
EIP=0x00431bd0 EBP=0x0012fb4c ESP=0x0012fb48
-----------------
Stack Trace:
Module: wircd
#0 c:\dev\unreal3.2\src\ircd.c:842: do_version_check
#1 c:\dev\unreal3.2\src\ircd.c:1161: InitwIRCD
#2 c:\dev\unreal3.2\src\win32\win32gui.c:646: WinMain
#3 f:\vs70builds\9466\vc\crtbld\crt\src\crtexe.c:392: WinMainCRTStartup
Module: kernel32
#4 f:\vs70builds\9466\vc\crtbld\crt\src\crtexe.c:392: GetCurrentDirectoryW
Ok
Ok, which version of the zlib libraries should I use. I downloaded the latest versions as of this morning and havn't altered them at all. I will try redownloading them just to be sure something wasn't messed up in the download though.
Ok, how would I check what the sets of flags are? I'm a CS major and done some basic work with make files, but I'm not exactly fluent in them, so I'm not sure exactly where the flags are that you want to have be the same. If you could describe where they are, I could probably figure it out from there. Thanks.
Also, I'm not sure exactly how I would rebuild the file zlibwapi.dll since I can't seem to find where it's source is built. (Or would I need to rebuild that file?)
Also, I'm not sure exactly how I would rebuild the file zlibwapi.dll since I can't seem to find where it's source is built. (Or would I need to rebuild that file?)
The zlib of the official windows unrealircd is compiled by me as follows:
--
Compiled with .zip from http://www.winimage.com/zLibDll/
(http://www.winimage.com/zLibDll/zlib121.zip)
Then editted win32\makefile.msc:
- Changed -MD to -MDd
- Added -D ZLIB_WINAPI to CFLAGS
- so the result is:
CFLAGS = -nologo -MDd -O2 $(LOC) -D ZLIB_WINAPI
Then compile...
copy stuff over etc...
--
--
Compiled with .zip from http://www.winimage.com/zLibDll/
(http://www.winimage.com/zLibDll/zlib121.zip)
Then editted win32\makefile.msc:
- Changed -MD to -MDd
- Added -D ZLIB_WINAPI to CFLAGS
- so the result is:
CFLAGS = -nologo -MDd -O2 $(LOC) -D ZLIB_WINAPI
Then compile...
copy stuff over etc...
--
Cool, Done
Ok, cool that worked. Now I just have to figure out some new things about the .conf and I'm golden. Thanks for the help.
Perhaps I spoke too soon.
For some reason the release build is still saying it is dependant upon the debug versions of the dlls. It wants files like msvcr70d.dll. Am I doing something wrong. I have commented out the debug=1 line. Is there someplace I can download the msc debug DLLs from if this is an artifact.
It is also crashing when the first user logs in. Here is the core dump:
Generated at Tue Jul 06 20:27:49 2004
Windows XP Service Pack 1 (5.1.2600)
Unreal3.2.1[FinWXOoE] (1.1.1.1.2.17 2004/07/03 19:04:02)
-----------------
Memory Information:
Physical: (Available:138MB/Total:510MB)
Virtual: (Available:2010MB/Total:2047MB)
-----------------
Exception:
Access Violation
-----------------
Backup Buffer:
OPER ajh16 password
-----------------
Registers:
EAX=0x01042460 EBX=0x010422f0 ECX=0xffffffff
EDX=0x01042460 ESI=0x00000018 EDI=0x00010000
EIP=0x00fdf599 EBP=0x0121fdf8 ESP=0x0121fccc
-----------------
Stack Trace:
Module: 653C26FE.commands
#0 (null):0: m_addmotd_Load
Module: wircd
#1 c:\dev\unreal3.2\src\parse.c:440: parse
#2 c:\dev\unreal3.2\src\packet.c:139: dopacket
#3 c:\dev\unreal3.2\src\s_bsd.c:1477: read_packet
#4 c:\dev\unreal3.2\src\s_bsd.c:1937: read_message
#5 c:\dev\unreal3.2\src\ircd.c:1529: SocketLoop
Module: MSVCR70D
#6 c:\dev\unreal3.2\src\ircd.c:1529: beginthread
Module: kernel32
#7 c:\dev\unreal3.2\src\ircd.c:1529: RegisterWaitForInputIdle
It is also crashing when the first user logs in. Here is the core dump:
Generated at Tue Jul 06 20:27:49 2004
Windows XP Service Pack 1 (5.1.2600)
Unreal3.2.1[FinWXOoE] (1.1.1.1.2.17 2004/07/03 19:04:02)
-----------------
Memory Information:
Physical: (Available:138MB/Total:510MB)
Virtual: (Available:2010MB/Total:2047MB)
-----------------
Exception:
Access Violation
-----------------
Backup Buffer:
OPER ajh16 password
-----------------
Registers:
EAX=0x01042460 EBX=0x010422f0 ECX=0xffffffff
EDX=0x01042460 ESI=0x00000018 EDI=0x00010000
EIP=0x00fdf599 EBP=0x0121fdf8 ESP=0x0121fccc
-----------------
Stack Trace:
Module: 653C26FE.commands
#0 (null):0: m_addmotd_Load
Module: wircd
#1 c:\dev\unreal3.2\src\parse.c:440: parse
#2 c:\dev\unreal3.2\src\packet.c:139: dopacket
#3 c:\dev\unreal3.2\src\s_bsd.c:1477: read_packet
#4 c:\dev\unreal3.2\src\s_bsd.c:1937: read_message
#5 c:\dev\unreal3.2\src\ircd.c:1529: SocketLoop
Module: MSVCR70D
#6 c:\dev\unreal3.2\src\ircd.c:1529: beginthread
Module: kernel32
#7 c:\dev\unreal3.2\src\ircd.c:1529: RegisterWaitForInputIdle
Re: Perhaps I spoke too soon.
The official Win32 Installer will download msvc70d.dll if you don't have it. It also comes with the correct build of zlibajh16 wrote:For some reason the release build is still saying it is dependant upon the debug versions of the dlls. It wants files like msvcr70d.dll. Am I doing something wrong. I have commented out the debug=1 line. Is there someplace I can download the msc debug DLLs from if this is an artifact.
![Smile :)](./images/smilies/icon_smile.gif)
Ok, but...
Ok, but I'm still getting a debug assertion error when I try to login.
Program: c:\Program Files\Unreal3.2\wircd.exe
File: dbgheap.c
Line 1132
Expression: _CrtlsValidHeapPointer(pUserData)
(I tried using the version of the zlibwapi.dll included with the win32 install, and I realized that you rename the recompiled zlib.dll to zlibwapi.dll, so I was able to figure out the corresponding .lib to go with it. But it still is crashing on the first user to connect.)
Program: c:\Program Files\Unreal3.2\wircd.exe
File: dbgheap.c
Line 1132
Expression: _CrtlsValidHeapPointer(pUserData)
(I tried using the version of the zlibwapi.dll included with the win32 install, and I realized that you rename the recompiled zlib.dll to zlibwapi.dll, so I was able to figure out the corresponding .lib to go with it. But it still is crashing on the first user to connect.)
Correction!
Correction. The server crashes when I attempt a /sethost. I had a /sethost running automatically in my perform.
Eureka!!!
Ok, I figured it out. I feel really stupid, but for some reason it didn't occur to me that the modules were being rebuilt, so I hadn't been updating them. I updated the modules to my build of them and things seem to be working beautifully. Thanks again for all the help.