@bencoman commented on this pull request.


In CMakeLists.txt:

> @@ -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


In platforms/minheadless/windows/sqPlatformSpecific-Win32.c:

> @@ -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


In CMakeLists.txt:

> @@ -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


In platforms/minheadless/windows/sqWin32Main.c:

> @@ -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.


In platforms/minheadless/windows/sqPlatformSpecific-Win32.h:

> @@ -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.


In platforms/minheadless/windows/sqPlatformSpecific-Win32.c:

> @@ -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.


In platforms/minheadless/common/sqMain.c:

> @@ -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.


In platforms/Cross/plugins/IA32ABI/xabicc.c:

> @@ -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)


In platforms/Cross/plugins/IA32ABI/ia32abicc.c:

> @@ -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)


In platforms/Cross/plugins/IA32ABI/x64win64abicc.c:

> @@ -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


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.