Fixing compile errors on Windows
parent
786b9096e2
commit
6e26c7b554
|
@ -6,5 +6,5 @@ EXE_EXTENSION=.exe
|
||||||
CONSOLE_EXTENSION=.com
|
CONSOLE_EXTENSION=.com
|
||||||
DLL_EXTENSION=.dll
|
DLL_EXTENSION=.dll
|
||||||
SHARED_DLL_EXTENSION=.dll
|
SHARED_DLL_EXTENSION=.dll
|
||||||
LINKER = $(CC) -shared -mno-cygwin -o
|
LINKER = $(CPP) -shared -mno-cygwin -o
|
||||||
LINK_WITH_ENGINE = -l$(DLL_PREFIX)factor$(DLL_SUFFIX)
|
LINK_WITH_ENGINE = -l$(DLL_PREFIX)factor$(DLL_SUFFIX)
|
||||||
|
|
|
@ -128,7 +128,7 @@ PRIMITIVE(dlsym)
|
||||||
gc_root<byte_array> name(dpop());
|
gc_root<byte_array> name(dpop());
|
||||||
name.untag_check();
|
name.untag_check();
|
||||||
|
|
||||||
vm_char *sym = (vm_char *)(name.untagged() + 1);
|
symbol_char *sym = name->data<symbol_char>();
|
||||||
|
|
||||||
if(library.value() == F)
|
if(library.value() == F)
|
||||||
box_alien(ffi_dlsym(NULL,sym));
|
box_alien(ffi_dlsym(NULL,sym));
|
||||||
|
|
|
@ -17,7 +17,7 @@ long exception_handler(PEXCEPTION_POINTERS pe)
|
||||||
CONTEXT *c = (CONTEXT*)pe->ContextRecord;
|
CONTEXT *c = (CONTEXT*)pe->ContextRecord;
|
||||||
|
|
||||||
if(in_code_heap_p(c->EIP))
|
if(in_code_heap_p(c->EIP))
|
||||||
signal_callstack_top = (void *)c->ESP;
|
signal_callstack_top = (stack_frame *)c->ESP;
|
||||||
else
|
else
|
||||||
signal_callstack_top = NULL;
|
signal_callstack_top = NULL;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ long exception_handler(PEXCEPTION_POINTERS pe)
|
||||||
|
|
||||||
void c_to_factor_toplevel(cell quot)
|
void c_to_factor_toplevel(cell quot)
|
||||||
{
|
{
|
||||||
if(!AddVectoredExceptionHandler(0, (void*)exception_handler))
|
if(!AddVectoredExceptionHandler(0, exception_handler))
|
||||||
fatal_error("AddVectoredExceptionHandler failed", 0);
|
fatal_error("AddVectoredExceptionHandler failed", 0);
|
||||||
c_to_factor(quot);
|
c_to_factor(quot);
|
||||||
RemoveVectoredExceptionHandler((void*)exception_handler);
|
RemoveVectoredExceptionHandler((void*)exception_handler);
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
#define UNICODE
|
#define UNICODE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <shellapi.h>
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <shellapi.h>
|
||||||
|
|
||||||
namespace factor
|
namespace factor
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,12 +14,12 @@ void init_ffi(void)
|
||||||
|
|
||||||
void ffi_dlopen(dll *dll)
|
void ffi_dlopen(dll *dll)
|
||||||
{
|
{
|
||||||
dll->dll = LoadLibraryEx(alien_offset(dll->path), NULL, 0);
|
dll->dll = LoadLibraryEx((WCHAR *)alien_offset(dll->path), NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *ffi_dlsym(dll *dll, symbol_char *symbol)
|
void *ffi_dlsym(dll *dll, symbol_char *symbol)
|
||||||
{
|
{
|
||||||
return GetProcAddress(dll ? (HMODULE)dll->dll : hFactorDll, symbol);
|
return (void *)GetProcAddress(dll ? (HMODULE)dll->dll : hFactorDll, symbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ffi_dlclose(dll *dll)
|
void ffi_dlclose(dll *dll)
|
||||||
|
@ -93,7 +93,8 @@ const vm_char *vm_executable_path(void)
|
||||||
|
|
||||||
PRIMITIVE(existsp)
|
PRIMITIVE(existsp)
|
||||||
{
|
{
|
||||||
vm_char *path = (vm_char *)(untag_check<byte_array>(dpop()) + 1);
|
vm_char *path = untag_check<byte_array>(dpop())->data<vm_char>();
|
||||||
|
wprintf(L"existsp: path is %s\n",path);
|
||||||
box_boolean(windows_stat(path));
|
box_boolean(windows_stat(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +114,7 @@ segment *alloc_segment(cell size)
|
||||||
getpagesize(), PAGE_NOACCESS, &ignore))
|
getpagesize(), PAGE_NOACCESS, &ignore))
|
||||||
fatal_error("Cannot allocate high guard page", (cell)mem);
|
fatal_error("Cannot allocate high guard page", (cell)mem);
|
||||||
|
|
||||||
segment *block = safe_malloc(sizeof(segment));
|
segment *block = (segment *)safe_malloc(sizeof(segment));
|
||||||
|
|
||||||
block->start = (cell)mem + getpagesize();
|
block->start = (cell)mem + getpagesize();
|
||||||
block->size = size;
|
block->size = size;
|
||||||
|
|
Loading…
Reference in New Issue