<div dir="ltr"><div class="gmail_extra">Hi Tobias,<br><br><div class="gmail_quote">On Tue, Sep 24, 2013 at 2:13 PM, Tobias Pape <span dir="ltr">&lt;<a href="mailto:Das.Linux@gmx.de" target="_blank">Das.Linux@gmx.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> <br>Dear Eliot, all<br>

<br>
Am 24.09.2013 um 20:16 schrieb Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;:<br>
<br>
&gt; Thanks Marcel!!  Can I fold this into my makefiles?<br>
<br>
Is gcc 3 really necessary for Cog?  “yes” clearly<br>
is a proper answer, but last year, as I had to fiddle<br>
with the Self VM and make it compile, even Old gcc4<br>
were a pain.<br></blockquote><div><br></div><div>All I wanted to do was to thank Marcel for his advice on setting up a functional build environment, and include whatever parts of that were relevant.  I am actually trying to use gcc 4 for cygwin but this is on the back burner because the win32api headers in latest cygwin releases were damaged when last I tried to build (it appears someone has supplied the 64-bit version in the 32-bit context, grr...).  I tried to set up the Makefile to select either gcc3 or gcc4 depending on cygwin version.  I was doing this primarily to build a correct SqueakSSL plugin, which would not build with the older win32 api in the older gcc3-based cygwin I&#39;ve been using since 2009.  Alas I failed to build using a more up-to-date cygwin.  So you can imagine I was very pleased to see that Marcel had made progress.</div>
<div><br></div><div>So IMO, no gcc 3 should *not* be necessary to build Cog.  But a functional build environment is needed, and right now I don&#39;t have a funcitonal gcc4-based build environment :-(</div><div><br></div>
<div>Anyone who wants to try and fix this is very welcome.  I can supply them with the Makefile that selects the appropriate gcc version.  So far I have this in my not-yet-checked-in experimental Makefile:</div><div><br></div>
<div><div># C compiler settings (gcc-3.4.4 cygwin 1.5.25(0.156/4/2) vs gcc-4.5.2 1.7.17(0.262/5/3))</div><div># determine cygwin version using uname -r</div><div>#</div><div># determine &quot;old&quot; (eg 1.5.25(0.156/4/2)) or &quot;new&quot; cygwin (eg 1.7.17(0.262/5/3))</div>
<div>ifeq ($(shell ls /usr/bin/i686-pc-mingw32-gcc.exe),/usr/bin/i686-pc-mingw32-gcc.exe)</div><div>NEWMGW=true</div><div>endif</div><div><br></div><div>ifdef NEWMGW</div><div>CC:=i686-pc-mingw32-gcc</div><div>else</div><div>
CC:=gcc</div><div>endif</div></div><div><br></div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

  Ian apparently has done some tweaks to the build system<br>
for the win32 branch[1]. It also uses MSYS and MinGW but<br>
probably more recent gcc&#39;en (but I&#39;m not sure)[2].<br>
  Just out of curiosity, have you sync&#39;ed the cog-branch<br>
platform dir after the initial branching?<br></blockquote><div><br></div><div>Not carefully.  I try to merge when I see relevant changes going into trunk, but I&#39;ve probably missed a few.</div><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Please do not regard me as a show stopper or „Spaßbremse“,<br>
but I figure, that the entry barrier to work with the<br>
Squeak VM or Cog is quite high, even if you don&#39;t want<br>
touch the interpreter/jit at all. We should make it<br>
more approachable.<br></blockquote><div><br></div><div>+1000.  But I need help.  I don&#39;t have time to attend to this now :-(</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

  I think Mariano did a good job for an introduction<br>
to building a Squeak/Cog VM[3], But his 2nd-level<br>
tool-chain (sources from gitorious+CMake via CMakeVMMaker)[4]<br>
seems vastly different from the current Makefile-based<br>
approach, but apparently, the CMake toolchain can make use<br>
of more recent compilers.<br>
<br>
Where are we headed?<br></blockquote><div><br></div><div>Onwards and upwards ;-)  Personally I hate both autoconf and CMake, but better the devil you know, and have hence stuck with autoconf on unix.  On Mac &amp; cygwin I use ungenerated makefiles.  I&#39;m open to change but I don&#39;t want to do the work.  If someone can help produce functional build environments I&#39;ll gladly try them out and fold them back in if they work.  But they must work for the Squeak VM, the Squeak MT VM and the Newspeak VM.  That&#39;s what I build across three platforms right now and I don&#39;t want to waste the cycles trying to get new stuff to work with no guarantee of success...  Call me a cynic ;-)</div>
<div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Best<br>

        -Tobias<br>
<br>
<br>
<br>
[1] <a href="http://squeakvm.org/cgi-bin/viewvc.cgi/squeak/trunk/platforms/win32/" target="_blank">http://squeakvm.org/cgi-bin/viewvc.cgi/squeak/trunk/platforms/win32/</a><br>
[2] <a href="http://squeakvm.org/cgi-bin/viewvc.cgi/squeak/trunk/platforms/win32/HowToBuild.txt?revision=2612&amp;view=markup" target="_blank">http://squeakvm.org/cgi-bin/viewvc.cgi/squeak/trunk/platforms/win32/HowToBuild.txt?revision=2612&amp;view=markup</a><br>

[3] <a href="https://marianopeck.wordpress.com/2011/04/10/building-the-vm-from-scratch-using-git-and-cmakevmmaker/" target="_blank">https://marianopeck.wordpress.com/2011/04/10/building-the-vm-from-scratch-using-git-and-cmakevmmaker/</a><br>

[4] I would call the MSYS+MinGW tool-chain 1st level in this case<br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>