<br><br><div class="gmail_quote">On Thu, Jul 15, 2010 at 2:54 PM, Rob Withers <span dir="ltr">&lt;<a href="mailto:reefedjib@yahoo.com">reefedjib@yahoo.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
(I am having trouble quoting Eliot&#39;s email as well.  Plain text is best)<br></blockquote><div><br></div><div>OK.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
I finally figured out how to specify to configure to use -m32 on the CFLAGS entries.  It is a part of the invocation of configure.<br>
<br>
../../platforms/unix/config/configure CFLAGS=&quot;-m32 -g -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0&quot; LIBS=-lpthread<br>
<br>
I seem to have gotten past the problem with sqUnixHeartbeat.c and now I have a new problem:<br>
<br>
vm/vm.a(sqExternalSemaphores.o): In function `doSignalExternalSemaphores&#39;:<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:198: undefined reference to `sqLowLevelMFence&#39;<br></blockquote><div><br></div><div>gcc -E -dM should print predefined macros.  e.g.</div>
<div><br></div><div><div><div>McStalker.oscogvm$ gcc -m32 -E -dM platforms/Cross/vm/sqMemoryFence.h | egrep &quot;86|GNUC&quot;</div><div>#define __GNUC__ 4</div><div>#define __DBL_MAX__ 1.7976931348623157e+308</div><div>
#define __i386 1</div><div>#define i386 1</div><div>#define __i386__ 1</div><div>#define __GNUC_PATCHLEVEL__ 1</div><div>#define __GNUC_MINOR__ 2</div><div>#define __GNUC_GNU_INLINE__ 1</div><div>McStalker.oscogvm$ gcc -m64 -E -dM platforms/Cross/vm/sqMemoryFence.h | egrep &quot;86|GNUC&quot;</div>
<div>#define __GNUC__ 4</div><div>#define __DBL_MAX__ 1.7976931348623157e+308</div><div>#define __x86_64 1</div><div>#define __x86_64__ 1</div><div>#define __GNUC_PATCHLEVEL__ 1</div><div>#define __GNUC_MINOR__ 2</div><div>
#define __GNUC_GNU_INLINE__ 1</div></div></div><div><br></div><div>You&#39;ll then see what names are given to define x86/IA32 on your system.  You can then edit the following incantation to include your configuration (and let me know what it is).</div>
<div><br></div><div> #if defined(__GNUC__) &amp;&amp; (defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_))</div><div><br></div><div>HTH</div><div>Eliot</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:213: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:184: undefined reference to `sqLowLevelMFence&#39;<br>
vm/vm.a(sqExternalSemaphores.o): In function `signalSemaphoreWithIndex&#39;:<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:130: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:131: undefined reference to `sqAtomicAddConst&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:147: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:148: undefined reference to `sqCompareAndSwap&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:152: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:153: undefined reference to `sqCompareAndSwap&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:135: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:136: undefined reference to `sqCompareAndSwap&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:140: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:141: undefined reference to `sqCompareAndSwap&#39;<br>
vm/vm.a(sqTicker.o): In function `checkHighPriorityTickees&#39;:<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:211: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:217: undefined reference to `sqCompareAndSwapRes&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:227: undefined reference to `sqLowLevelMFence&#39;<br>
vm/vm.a(sqTicker.o): In function `addHighPriorityTickee&#39;:<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:185: undefined reference to `sqLowLevelMFence&#39;<br>
vm/vm.a(sqTicker.o): In function `ioSynchronousCheckForEvents&#39;:<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:128: undefined reference to `sqLowLevelMFence&#39;<br>
vm/vm.a(sqTicker.o): In function `addHighPriorityTickee&#39;:<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:193: undefined reference to `sqLowLevelMFence&#39;<br>
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:193: undefined reference to `sqLowLevelMFence&#39;<br>
collect2: ld returned 1 exit status<br>
make: *** [squeak] Error 1<div class="im"><br>
<br>
--------------------------------------------------<br>
From: &quot;Levente Uzonyi&quot; &lt;<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>&gt;<br></div>
Sent: Thursday, July 15, 2010 3:38 PM<br>
To: &quot;Squeak Virtual Machine Development Discussion&quot; &lt;<a href="mailto:vm-dev@lists.squeakfoundation.org" target="_blank">vm-dev@lists.squeakfoundation.org</a>&gt;<div class="im"><br>
Subject: Re: [Vm-dev] Cog on linux<br>
<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><div><div></div><div class="h5">
On Thu, 15 Jul 2010, Rob Withers wrote:<br>
<br>
(Pine is unable to quote your mail...)<br>
<br>
The question is: is your OS 32 or 64-bit? The CPU doesn&#39;t matter here. If your OS is 64-bit then you&#39;ll probably need the gcc-multilibs package (or equivalent for your platform) and as Eliot suggested the -m32 switch for compilation and linking. To run the resulting VM, you&#39;ll need the ia32-libs package (or equivalent for your platform), but you already have that if you can run the prebuilt SqueakVM.<br>

<br>
<br>
Levente <br>
</div></div></blockquote>
<br>
</blockquote></div><br>