<div dir="ltr">Hi Ben,<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 6, 2018 at 12:57 PM, Ben Coman <span dir="ltr"><<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 6 August 2018 at 23:54, Ben Coman <span dir="ltr"><<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><span class="m_133701224184377122gmail-"><br>On 6 August 2018 at 13:22, Ben Coman <<a href="mailto:btc@openinworld.com" target="_blank">btc@openinworld.com</a>> wrote:<br>> and ends up with 4 link errors (and 6600 warnings)<br>> Pharo.exe LNK1120 - 1 unresolved external<br>> Pharow.exe LNK1120 - 1unresolved external<br>> sqMain.c.obj LNK2019 - unresolved external symbol _imp_osvm_main referenced in function main<br>> sqWin32Main.c.obj LNK2019 - unresolved external symbol _imp_osvm_main referenced in function WinMain<br></span><div><br class="m_133701224184377122gmail-m_-1623683591090027992gmail-Apple-interchange-newline"><br>So the following change to sqMain.c fixes the link error...</div><div>    #define BUILD_VM_CORE<div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">    #include "OpenSmalltalkVM.h"<br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">    int</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">    main(int argc, const char **argv)</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">    {</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">        return osvm_main(argc, argv);</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">    }</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">and similar for sqWin32Main.c.</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div></div></div></blockquote><div><br></div><div>The next roadbump is...</div><div>LNK2019 unresolved external symbol 'alloca' referenced in function callIA32IntegralReturn  -- File PharoVMCore.lib(xabicc.c.obj)</div></div><br></div><div class="gmail_extra">From the root folder, doing...</div><div class="gmail_extra">

<div class="gmail_extra" style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">   find . -name xabicc.c</span><span> </span><br></div>result in...</div><div class="gmail_extra">   ./platforms/Cross/plugins/<wbr>IA32ABI/xabicc.c<br class="m_133701224184377122gmail-Apple-interchange-newline">

<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Googling for "alloca Visual Studio 2017" lead me to...</div><div class="gmail_extra">   <a href="https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/alloca" target="_blank">https://docs.microsoft.com/<wbr>en-us/cpp/c-runtime-library/<wbr>reference/alloca</a><br></div><div class="gmail_extra">which indicates there is no "alloca" only "_alloca"</div><div class="gmail_extra"><br></div><div class="gmail_extra">Now "

<span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">xabicc.c"</span> is a stub for including platform specific C code,</div><div class="gmail_extra">and the lovely defines-highlighting of <span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Visual Studio indicates "</span>x64win64abicc.c" is the active one right now,</div><div class="gmail_extra">so as a quick hack, 

<span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">jamming</span> a define just above that include... </div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">  #if i386|i486|i586|i686<br></div><div class="gmail_extra">  #  include "ia32abicc.c"</div><div class="gmail_extra">  #elif powerpc|ppc</div><div class="gmail_extra">  #  include "ppc32abicc.c"</div><div class="gmail_extra">  #elif x86_64|x64|__x86_64|__x86_64__<wbr>|_M_AMD64|_M_X64</div><div class="gmail_extra">  # if _WIN64</div><div class="gmail_extra">

<div class="gmail_extra" style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">  #     define alloca _alloca   // <<<QUICK HACK</div>

  #     include "x64win64abicc.c"</div><div class="gmail_extra">  #  else</div><div class="gmail_extra">  #     include "x64sysvabicc.c"</div><div class="gmail_extra">  #  endif</div><div class="gmail_extra">  #elif __ARM_ARCH__|__arm__|__arm32__<wbr>|ARM32</div><div class="gmail_extra">  #  include "arm32abicc.c"</div><div class="gmail_extra">  #endif</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div><div class="gmail_extra">allows CMake > Build All</div><div class="gmail_extra">==> Build succeeded.   Yay!</div><div class="gmail_extra"><br></div><div class="gmail_extra">To determine a suitable permanent home for that define, doing...</div><div class="gmail_extra">   grep -R " _alloca"  * <br></div><div class="gmail_extra">

<span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">from the root folder<span> </span></span>shows...</div><div class="gmail_extra"><div class="gmail_extra">  platforms/Cross/plugins/<wbr>IA32ABI/arm32abicc.c:# define alloca _alloca</div><div class="gmail_extra">  platforms/Cross/plugins/<wbr>IA32ABI/ia32abicc.c:# define alloca _alloca</div><div class="gmail_extra">  platforms/Cross/plugins/<wbr>IA32ABI/ppc32abicc.c:# define alloca _alloca</div><div class="gmail_extra">  platforms/Cross/plugins/<wbr>SqueakFFIPrims/sqFFIPlugin.c:# define alloca _alloca</div><div class="gmail_extra">  platforms/minheadless/windows/<wbr>sqPlatformSpecific-Win32.h:#    define alloca _alloca</div><div class="gmail_extra">  platforms/unix/config/<wbr>configure:#  define alloca _alloca</div><div class="gmail_extra">  platforms/win32/vm/<wbr>sqPlatformSpecific.h:#    define alloca _alloca</div><div class="gmail_extra">  processors/ARM/gdb-7.10/<wbr>include/alloca-conf.h:#    define alloca _alloca</div><div class="gmail_extra">  processors/IA32/bochs/bx_<wbr>debug/parser.c:#    define alloca _alloca</div><div class="gmail_extra">  src/plugins/SqueakFFIPrims/<wbr>ARM32FFIPlugin.c:# define alloca _alloca</div><div class="gmail_extra">  src/plugins/SqueakFFIPrims/<wbr>IA32FFIPlugin.c:# define alloca _alloca</div><div class="gmail_extra">  src/plugins/SqueakFFIPrims/<wbr>X64SysVFFIPlugin.c:# define alloca _alloca</div><div class="gmail_extra">  src/plugins/SqueakFFIPrims/<wbr>X64Win64FFIPlugin.c:# define alloca _alloca</div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Interesting that there is a similar define for <span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">ia32abicc.c,</span></div><div class="gmail_extra"><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">so comparing that with <span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">x64win64abicc.c (at </span></span><a href="https://www.diffchecker.com/mqCWMaTV" target="_blank">https://www.diffchecker.<wbr>com/mqCWMaTV</a>)</div><div class="gmail_extra">looks like it should be slotted into the latter about line 41.</div></div></blockquote><div><br></div><div>Feel free to make this edit and commit</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">Doing that ==> Build successful.</div><div class="gmail_extra"><br></div><div class="gmail_extra">cheers -ben</div></div>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>