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
|
||||
CL_FLAGS = /nologo /O2 /WX /W3 /D_CRT_SECURE_NO_WARNINGS
|
||||
|
||||
!IF DEFINED(DEBUG)
|
||||
LINK_FLAGS = $(LINK_FLAGS) /DEBUG
|
||||
CL_FLAGS = $(CL_FLAGS) /Zi /DFACTOR_DEBUG
|
||||
!ENDIF
|
||||
CL_FLAGS_VISTA = /D_WIN32_WINNT=0x0600
|
||||
|
||||
!IF "$(PLATFORM)" == "x86-32"
|
||||
LINK_FLAGS = $(LINK_FLAGS) /safeseh
|
||||
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"
|
||||
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
|
||||
|
||||
ML_FLAGS = /nologo /safeseh
|
||||
|
|
@ -103,6 +114,8 @@ default:
|
|||
@echo Where platform is one of:
|
||||
@echo x86-32
|
||||
@echo x86-64
|
||||
@echo x86-32-vista
|
||||
@echo x86-64-vista
|
||||
@exit 1
|
||||
|
||||
x86-32:
|
||||
|
|
@ -111,6 +124,12 @@ x86-32:
|
|||
x86-64:
|
||||
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:
|
||||
del vm\*.obj
|
||||
if exist factor.lib del factor.lib
|
||||
|
|
@ -120,6 +139,6 @@ clean:
|
|||
if exist factor.dll del factor.dll
|
||||
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
|
||||
|
|
|
|||
|
|
@ -254,6 +254,8 @@ VM_C_API LONG exception_handler(PEXCEPTION_RECORD e, void* frame, PCONTEXT c,
|
|||
cancellation requests to unblock the thread. */
|
||||
VOID CALLBACK dummy_cb (ULONG_PTR dwParam) { }
|
||||
|
||||
// CancelSynchronousIo is not in Windows XP
|
||||
#if _WIN32_WINNT >= 0x0600
|
||||
static void wake_up_thread(HANDLE thread) {
|
||||
if (!CancelSynchronousIo(thread)) {
|
||||
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) {
|
||||
switch (dwCtrlType) {
|
||||
|
|
|
|||
|
|
@ -5,8 +5,11 @@
|
|||
#include <wchar.h>
|
||||
#endif
|
||||
|
||||
#if _WIN32_WINNT != 0x0600
|
||||
#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
|
||||
#define UNICODE
|
||||
|
|
|
|||
Loading…
Reference in New Issue