On 7 August 2018 at 05:12, Eliot Miranda <eliot.miranda@gmail.com> wrote:
Hi Ben,
Feel free to make this edit and commit
I'm pushing changes here... https://github.com/bencoman/opensmalltalk-vm/tree/MinimalisticHeadless-x64-m... and the diff can be tracked here... https://github.com/bencoman/opensmalltalk-vm/compare/MinimalisticHeadless...... ------------------------ On 6 August 2018 at 13:22, Ben Coman <btc@openinworld.com> wrote:
On 6 August 2018 at 11:50, Ben Coman <btc@openinworld.com> wrote:
https://github.com/ronsaldo/opensmalltalk-vm/blob/be7b1c03/platforms/ minheadless/windows/sqPlatformSpecific-Win32.c#L80 typedef HRESULT WINAPI (*SetProcessDpiAwarenessFunctionPointer) (int awareness); C2059 sqPlatformSpecific-Win32.c:80 syntax error: '(' E0651 a calling convention may not be followed by a nested declarator.
The following change reduces build errors to 1... typedef HRESULT (*SetProcessDpiAwarenessFunctionPointer) (int awareness);
but I'm not sure of the implications.
I found the correct solution to this... "The trick is placing the [call declaration] inside the parentheses" https://stackoverflow.com/questions/4830355/function-pointer-and-calling-con... i.e. the following compiles cleanly typedef HRESULT (WINAPI *SetProcessDpiAwarenessFunctionPointer) (int awareness); ----------------------------- Now running the VM (without parameters) I get... Debug Assertion Failed! Program: ...\x64-Debug\dist\pharo.exe File: minkernel\crts\ucrt\src\appcrt\tran\amd64\ieee.c Line: 106 Expression: (mask&~(_MCW_DN | _MCW_EM | _MCW_RC))==0 at the call to _controlfp(FPU_DEFAULT, _MCW_EM | _MCW_RC | _MCW_PC | _MCW_IC); https://github.com/ronsaldo/opensmalltalk-vm/blob/be7b1c03/platforms/minhead... According to https://msdn.microsoft.com/en-us/library/e9b52ceh.aspx x64 does not support _MCW_PC or _MCW_IC but I'm clueless about the implications of these FPU flags. Could our math guys please advise? Eliminating those two flags allows a VM run successfully without loading an Image. i.e. it successfully passes... osvm_initialize(); osvm_parseCommandLineArguments(argc, argv); osvm_initializeVM(); Next is to try loading an Image. cheers -ben