Just for the record ...
Took me about an hour to figure out how to compile on Windows from the CVS
sources, and even then it was guesswork and I wasn't able to do it 100%.
The ".in" files I couldn't figure out how to process by hand. nmake on
Windows was useless for the makefiles, and "configure" can't be run at all.
I downloaded awk for Windows and muddled through making opcodes and stuff.
First pass at compiling the latest CVS sources ...
in os_win.c theres:
static int winFileHandle(OsFile *id){
return (int)((winFile*)id)->h;
}
This won't fly on 64-bit platforms. Windows file handles are declared as
HANDLE which is an alias for "void *". int's are 32-bits in 64-bit Windows
and will cause a pointer truncation.
Here's an excerpt from MSDN:
-----
This topic discusses coding issues for developing applications to run on
Windows 64-bit operating systems.
When you use Visual C++ to create applications to run on a 64-bit Windows
operating system, you should be aware of the following issues:
- An int and a long are 32-bit values on 64-bit Windows operating systems.
- size_t, time_t, and ptrdiff_t are 64-bit values on 64-bit Windows
operating systems.
- time_t is a 32-bit value on 32-bit Windows operating systems.
-----
Also, on Windows CE, LOCKFILE_FAIL_IMMEDIATELY does not exist. It's defined
in winbase.h as:
#define LOCKFILE_FAIL_IMMEDIATELY 0x00000001
I'm still working on integrating the CE locking code.
Robert