bencoman commented on this pull request.
@@ -2,6 +2,15 @@
cmake_minimum_required(VERSION 3.1) project(OpenSmalltalkVM)
+# The following is temporary while understanding/debugging CMake build. +message("START VARIABLES (A)") +get_cmake_property(_variableNames VARIABLES) +list (SORT _variableNames) +foreach (_variableName ${_variableNames}) + message(STATUS "${_variableName}=${${_variableName}}") +endforeach() +message("END VARIABLES (A)") +
Ignore lines 5-13, they were just adding verbosity for debugging
@@ -77,7 +77,7 @@ static void printCrashDebugInformation(LPEXCEPTION_POINTERS exp);
#define PROCESS_PER_MONITOR_DPI_AWARE 2 #endif
-typedef HRESULT WINAPI (*SetProcessDpiAwarenessFunctionPointer) (int awareness); +typedef HRESULT (WINAPI *SetProcessDpiAwarenessFunctionPointer) (int awareness);
I see this is already covered in #311
@@ -530,6 +540,15 @@ endif()
add_library(${VM_LIBRARY_NAME} ${VM_CORE_LIBRARY_TYPE} ${VM_SOURCES} ${VM_INTERNAL_PLUGIN_SOURCES})
+# The following is temporary while understanding/debugging CMake build. +message("START VARIABLES (B)") +get_cmake_property(_variableNames VARIABLES) +list (SORT _variableNames) +foreach (_variableName ${_variableNames}) + message(STATUS "${_variableName}=${${_variableName}}") +endforeach() +message("END VARIABLES (B)") +
Ignore lines 543-551, they were just adding verbosity for debugging
@@ -28,6 +28,7 @@
*/
#define WIN32_LEAN_AND_MEAN +#define BUILD_VM_CORE
Not required per Ronie's comment. It was to work around an unknown symbol "_imp_osvm_main", which BUILD_OSVM_STATIC fixed already.
@@ -114,7 +114,7 @@ size_t sqImageFileWrite(const void *ptr, size_t sz, size_t count, sqImageFile h)
error "Not Win32!" #endif /* WIN32 */
-int ioSetCursorARGB(sqInt bitsIndex, sqInt w, sqInt h, sqInt x, sqInt y); +sqInt ioSetCursorARGB(sqInt bitsIndex, sqInt w, sqInt h, sqInt x, sqInt y);
Required. Latest Cog branch minheadless/x64 had the same compile error. Including this change only let the build complete.
@@ -115,7 +115,12 @@ void
ioInitPlatformSpecific(void) { /* Setup the FPU */ - _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | _MCW_IC); + /**** 2018.08.07.BenComan TODO, help required. + **** x64 does not support _MCW_PC or _MCW_IC per https://msdn.microsoft.com/en-us/library/e9b52ceh.aspx + ****/ + //Original Line// _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | _MCW_IC); + _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC); +
Required. I've included this per Ronie's comment. Fixes a runtime error.
@@ -25,6 +25,7 @@
* * Author: roniesalg@gmail.com */ +#define BUILD_VM_CORE
Not required per Ronie's comment. It was to work around an unknown symbol "_imp_osvm_main", which BUILD_OSVM_STATIC fixed already.
@@ -5,7 +5,7 @@
* The plugin is misnamed. It should be the AlienPlugin, but its history * dictates otherwise. */ -#if i386|i486|i586|i686 +#if i386|i486|i586|i686|_M_IX86
Not required. Already fixed by PR #311 using... ```#if defined(_M_I386) || defined(_X86_) || defined(i386) || defined(i486) || defined(i586) || defined(i686) || defined(__i386__) || defined(__386__) || defined(X86) || defined(I386)```
@@ -8,7 +8,7 @@
/* null if compiled on other than x86, to get around gnu make bugs or * misunderstandings on our part. */ -#if i386|i486|i586|i686 +#if i386|i486|i586|i686|_M_IX86
Not required. Already fixed by PR #311 using... ```#if defined(_M_I386) || defined(_X86_) || defined(i386) || defined(i486) || defined(i586) || defined(i686) || defined(__i386__) || defined(__386__) || defined(X86) || defined(I386)```
@@ -38,6 +38,9 @@ extern
#endif struct VirtualMachine* interpreterProxy;
+#ifdef _MSC_VER +# define alloca _alloca +#endif
Required. Solves MSVC build error... LNK2019 unresolved external symbol 'alloca' referenced in function callIA32IntegralReturn -- File PharoVMCore.lib(xabicc.c.obj)
Visual Studio 2017" has no "alloca" only "_alloca" https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/alloca