Windows: Add two new targets, x86-32-vista and x86-64-vista for bjourne's
ctrl-c patch. We still support Windows XP by default for now. Closesdb4
parent
0226718a82
commit
c3210f9f4f
31
Nmakefile
31
Nmakefile
|
|
@ -6,17 +6,28 @@ BOOTIMAGE_VERSION = latest
|
||||||
|
|
||||||
LINK_FLAGS = /nologo shell32.lib
|
LINK_FLAGS = /nologo shell32.lib
|
||||||
CL_FLAGS = /nologo /O2 /WX /W3 /D_CRT_SECURE_NO_WARNINGS
|
CL_FLAGS = /nologo /O2 /WX /W3 /D_CRT_SECURE_NO_WARNINGS
|
||||||
|
CL_FLAGS_VISTA = /D_WIN32_WINNT=0x0600
|
||||||
!IF DEFINED(DEBUG)
|
|
||||||
LINK_FLAGS = $(LINK_FLAGS) /DEBUG
|
|
||||||
CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
!IF "$(PLATFORM)" == "x86-32"
|
!IF "$(PLATFORM)" == "x86-32"
|
||||||
LINK_FLAGS = $(LINK_FLAGS) /safeseh
|
LINK_FLAGS = $(LINK_FLAGS) /safeseh
|
||||||
PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
|
PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
|
||||||
|
|
||||||
|
!ELSEIF "$(PLATFORM)" == "x86-32-vista"
|
||||||
|
LINK_FLAGS = $(LINK_FLAGS) /safeseh
|
||||||
|
CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA)
|
||||||
|
PLAF_DLL_OBJS = vm\os-windows-x86.32.obj vm\safeseh.obj vm\cpu-x86.obj
|
||||||
|
|
||||||
!ELSEIF "$(PLATFORM)" == "x86-64"
|
!ELSEIF "$(PLATFORM)" == "x86-64"
|
||||||
PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
|
PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
|
||||||
|
|
||||||
|
!ELSEIF "$(PLATFORM)" == "x86-64-vista"
|
||||||
|
CL_FLAGS = $(CL_FLAGS) $(CL_FLAGS_VISTA)
|
||||||
|
PLAF_DLL_OBJS = vm\os-windows-x86.64.obj vm\cpu-x86.obj
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
!IF DEFINED(DEBUG)
|
||||||
|
LINK_FLAGS = $(LINK_FLAGS) /DEBUG
|
||||||
|
CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
ML_FLAGS = /nologo /safeseh
|
ML_FLAGS = /nologo /safeseh
|
||||||
|
|
@ -103,6 +114,8 @@ default:
|
||||||
@echo Where platform is one of:
|
@echo Where platform is one of:
|
||||||
@echo x86-32
|
@echo x86-32
|
||||||
@echo x86-64
|
@echo x86-64
|
||||||
|
@echo x86-32-vista
|
||||||
|
@echo x86-64-vista
|
||||||
@exit 1
|
@exit 1
|
||||||
|
|
||||||
x86-32:
|
x86-32:
|
||||||
|
|
@ -111,6 +124,12 @@ x86-32:
|
||||||
x86-64:
|
x86-64:
|
||||||
nmake /nologo PLATFORM=x86-64 /f Nmakefile all
|
nmake /nologo PLATFORM=x86-64 /f Nmakefile all
|
||||||
|
|
||||||
|
x86-32-vista:
|
||||||
|
nmake /nologo PLATFORM=x86-32-vista /f Nmakefile all
|
||||||
|
|
||||||
|
x86-64-vista:
|
||||||
|
nmake /nologo PLATFORM=x86-64-vista /f Nmakefile all
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
del vm\*.obj
|
del vm\*.obj
|
||||||
if exist factor.lib del factor.lib
|
if exist factor.lib del factor.lib
|
||||||
|
|
@ -120,6 +139,6 @@ clean:
|
||||||
if exist factor.dll del factor.dll
|
if exist factor.dll del factor.dll
|
||||||
if exist factor.dll.lib del factor.dll.lib
|
if exist factor.dll.lib del factor.dll.lib
|
||||||
|
|
||||||
.PHONY: all default x86-32 x86-64 clean
|
.PHONY: all default x86-32 x86-64 x86-32-vista x86-64-vista clean
|
||||||
|
|
||||||
.SUFFIXES: .rs
|
.SUFFIXES: .rs
|
||||||
|
|
|
||||||
|
|
@ -254,6 +254,8 @@ VM_C_API LONG exception_handler(PEXCEPTION_RECORD e, void* frame, PCONTEXT c,
|
||||||
cancellation requests to unblock the thread. */
|
cancellation requests to unblock the thread. */
|
||||||
VOID CALLBACK dummy_cb (ULONG_PTR dwParam) { }
|
VOID CALLBACK dummy_cb (ULONG_PTR dwParam) { }
|
||||||
|
|
||||||
|
// CancelSynchronousIo is not in Windows XP
|
||||||
|
#if _WIN32_WINNT >= 0x0600
|
||||||
static void wake_up_thread(HANDLE thread) {
|
static void wake_up_thread(HANDLE thread) {
|
||||||
if (!CancelSynchronousIo(thread)) {
|
if (!CancelSynchronousIo(thread)) {
|
||||||
DWORD err = GetLastError();
|
DWORD err = GetLastError();
|
||||||
|
|
@ -268,6 +270,9 @@ static void wake_up_thread(HANDLE thread) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static void wake_up_thread(HANDLE thread) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
static BOOL WINAPI ctrl_handler(DWORD dwCtrlType) {
|
static BOOL WINAPI ctrl_handler(DWORD dwCtrlType) {
|
||||||
switch (dwCtrlType) {
|
switch (dwCtrlType) {
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,11 @@
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if _WIN32_WINNT != 0x0600
|
||||||
#undef _WIN32_WINNT
|
#undef _WIN32_WINNT
|
||||||
#define _WIN32_WINNT 0x0501 // For AddVectoredExceptionHandler
|
#define _WIN32_WINNT 0x0501 // For AddVectoredExceptionHandler, WinXP support
|
||||||
|
//#define _WIN32_WINNT 0x0600 // For CancelSynchronousIo
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef UNICODE
|
#ifndef UNICODE
|
||||||
#define UNICODE
|
#define UNICODE
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue