Tim Van Holder
2007-08-18 16:11:27 UTC
Hi,
I've been setting up Hercules for "real" Visual Studio builds (i.e. not
using the makefiles), targeting both Win32 and x64 (no ia64, sorry).
The current state of my efforts:
- Configure script created that generates the solution & projects (and
extracts the correct version number from configure.ac).
Currently only configurable by editing it, but I plan to add some sort
of GUI (probably some IE based HTML page).
The idea is to be easily able to choose:
* which VS version to target (VS2005 and VC2005 Express currently, but
VS2003, VS2007 and possibly VS2002 and VC6 support is planned (but
would require assistance from people that have those editions
installed)
* whether or not to use BZ2, ZLib, PCRE, as well as what library names
to use
* whether or not to include x64 targets (currently applies to VS2005
only; the Express versions don't support x64 builds)
* whatever other config options make sense for a Windows build
- Adjusted sources to get rid of all compiler warnings for the x64 build
(mostly adding casts, typically for size_t values).
However, I'm hitting 2 brick walls, one small and one big.
- The small one is that the debug build OOPSes during the load of the
config file - it trips a runtime pointer check (IsValidHeapPtr
returning FALSE). The retail build loads the config file without and
apparent ill effect, so this _could_ be a false positive, but it
prevents any kind of debugging at the moment.
- The big one is that Microsof's compiler does not support __asm for
non-Win32 targets - and that means that the fetestexcept and
feclearexcept functions from ieee-w32.h do not compile. I currently
disabled those lines to test the build process, but I don't expect
hercules to run normally without those functions in working order.
Unfortunately my assembly knowledge is nonexistant, so I am hoping
that someone on this list knows enough about x64 asm to provide me
with pure asm equivalents of those two functions (my build system
already sets up an ieee-w64.asm file for build with yasm - I just need
contents for that source :D).
Once I have those routines, I'll set up my old OS image and do some
basic "does it run?" tests; if those go OK I'll post the diffs here
for review.
I've been setting up Hercules for "real" Visual Studio builds (i.e. not
using the makefiles), targeting both Win32 and x64 (no ia64, sorry).
The current state of my efforts:
- Configure script created that generates the solution & projects (and
extracts the correct version number from configure.ac).
Currently only configurable by editing it, but I plan to add some sort
of GUI (probably some IE based HTML page).
The idea is to be easily able to choose:
* which VS version to target (VS2005 and VC2005 Express currently, but
VS2003, VS2007 and possibly VS2002 and VC6 support is planned (but
would require assistance from people that have those editions
installed)
* whether or not to use BZ2, ZLib, PCRE, as well as what library names
to use
* whether or not to include x64 targets (currently applies to VS2005
only; the Express versions don't support x64 builds)
* whatever other config options make sense for a Windows build
- Adjusted sources to get rid of all compiler warnings for the x64 build
(mostly adding casts, typically for size_t values).
However, I'm hitting 2 brick walls, one small and one big.
- The small one is that the debug build OOPSes during the load of the
config file - it trips a runtime pointer check (IsValidHeapPtr
returning FALSE). The retail build loads the config file without and
apparent ill effect, so this _could_ be a false positive, but it
prevents any kind of debugging at the moment.
- The big one is that Microsof's compiler does not support __asm for
non-Win32 targets - and that means that the fetestexcept and
feclearexcept functions from ieee-w32.h do not compile. I currently
disabled those lines to test the build process, but I don't expect
hercules to run normally without those functions in working order.
Unfortunately my assembly knowledge is nonexistant, so I am hoping
that someone on this list knows enough about x64 asm to provide me
with pure asm equivalents of those two functions (my build system
already sets up an ieee-w64.asm file for build with yasm - I just need
contents for that source :D).
Once I have those routines, I'll set up my old OS image and do some
basic "does it run?" tests; if those go OK I'll post the diffs here
for review.