Ok, I just remove keys from makefilelist. And now I have error<b> no high res clock defined:</b><br><br>sqLong<br>ioHighResClock(void)<br>{<br> /* return the value of the high performance counter */<br> sqLong value = 0;<br>
#if defined(__GNUC__) && ( defined(i386) || defined(__i386) || defined(__i386__) \<br> || defined(i486) || defined(__i486) || defined (__i486__) \<br> || defined(intel) || defined(x86) || defined(i86pc) )<br>
__asm__ __volatile__ ("rdtsc" : "=A"(value));<br>#else<br><b># error "no high res clock defined"</b><br>#endif<br> return value;<br>}<br><br>I try to just return value here;<br><br><div class="gmail_quote">
2012/10/3 Denis Kudriashov <span dir="ltr"><<a href="mailto:dionisiydk@gmail.com" target="_blank">dionisiydk@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I was incorrect. Problem happens early on defining atomic access of 64-bit variables.<br>So I just uncomment something like this:<br><br>/* Dear implementor, you have choices. For example consider defining get64 &<br>
* set64 thusly<br> * #define get64(var) read64(&(var))<br> * #define set64(var,val) write64(&(var),val)<br> * and get the JIT to generate read64 & write64 above atomic 64-bit read/write.<br> */<br><b># define get64(var) read64(&(var))<br>
# define set64(var,val) write64(&(var),val)<br></b> <br>//error atomic access of 64-bit variables not yet defined for this platform<br># endif<br>-------------------------------------<br><br>Now I have another problem:<br>
<br>[ 90%] Building C object CMakeFiles/StackVM.dir/cogVM/blessed/platforms/unix/vm/sqUnixHeartbeat.c.o<br>cc1: error: incorrect key "-mno-rtd"<br>cc1: error: incorrect key "-mno-accumulate-outgoing-args"<br>
make[2]: *** [CMakeFiles/StackVM.dir/cogVM/blessed/platforms/unix/vm/sqUnixHeartbeat.c.o] error 1<div class="im"><br>make[1]: *** [CMakeFiles/StackVM.dir/all] error 2<br>make: *** [all] error 2<br><br></div>What this keys mean? And what I can do?<div class="HOEnZb">
<div class="h5"><br>
<br>
<br><br><div class="gmail_quote">2012/10/3 Denis Kudriashov <span dir="ltr"><<a href="mailto:dionisiydk@gmail.com" target="_blank">dionisiydk@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I found comment:<br><br>/* Atomic increment of 32-bit values allows a lock-free implementation of the<br> * request side of signalSemaphoreWithIndex:<br> */<br><br> /* Currently we provide definitions for x86 and GCC only. */<br>
#if defined(__GNUC__) && (defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_))<br>#ifdef TARGET_OS_IS_IPHONE<br>#define sqAtomicAddConst(var,n) OSAtomicAdd32(n,&var)<br>#else<br># define sqAtomicAddConst(var,n) \<br>
asm volatile ("lock addl %1, %0" : "=m" (var) : "i" (n), "m" (var))<br>#endif<br>#else<br>#ifdef TARGET_OS_IS_IPHONE<br>#define sqAtomicAddConst(var,n) OSAtomicAdd32(n,&var)<br>
#endif<br>/* Dear implementor, you have choices. Google atomic increment and you will<br> * find a number of implementations for other architectures.<br> */<br>#endif<br><br>I now try to google it.<br>Maybe you already know how to fix it?<div>
<div><br>
<br><div class="gmail_quote">2012/10/3 Denis Kudriashov <span dir="ltr"><<a href="mailto:dionisiydk@gmail.com" target="_blank">dionisiydk@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ok. I exclude IA32ABIPlugin. It's help. And now I have next problem:<br><br>[ 87%] Building C object CMakeFiles/StackVM.dir/cogVM/blessed/platforms/Cross/vm/sqTicker.c.o<br>In file included from /cogVM/blessed/platforms/Cross/vm/sqTicker.c:56:<br>
/cogVM/blessed/platforms/Cross/vm/sqAtomicOps.h:140: ошибка: #error atomic access of 64-bit variables not yet defined for this platform<br>make[2]: *** [CMakeFiles/StackVM.dir/cogVM/blessed/platforms/Cross/vm/sqTicker.c.o] error 1<br>
make[1]: *** [CMakeFiles/StackVM.dir/all] error 2<br>make: *** [all] error 2<br><br><br>What I can do now?<br><br><br><div class="gmail_quote">2012/10/3 David T. Lewis <span dir="ltr"><<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>></span><div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br>
On Wed, Oct 03, 2012 at 10:31:55AM +0200, Igor Stasenko wrote:<br>
><br>
> On 3 October 2012 06:29, Denis Kudriashov <<a href="mailto:dionisiydk@gmail.com" target="_blank">dionisiydk@gmail.com</a>> wrote:<br>
> ><br>
> > Great. I remove it.<br>
> > Now process stopped at ~30% on:<br>
> ><br>
> > tmp/cc33Ks89.s: Assembler messages:<br>
> > /tmp/cc33Ks89.s:90: Error: ARM register expected -- `mov [sp,#844],%edx'<br>
> > /tmp/cc33Ks89.s:118: Error: bad instruction `fldl [r0,#0]'<br>
> > make[2]: *** [IA32ABI/CMakeFiles/IA32ABI.dir/cogVM/blessed/platforms/Cross/plugins/IA32ABI/ia32abicc.c.o]<br>
</div>> > ???????????? 1<br>
<div>><br>
> so remove that plugin from a build.<br>
> You should start from minimum set of plugins and then proceed adding<br>
> more once you can make them compiling/working.<br>
><br>
<br>
</div>FYI, the smallest useable VM requires these plugins:<br>
<br>
BitBltSimulation<br>
BalloonEnginePlugin<br>
FilePlugin<br>
<br>
But usually you will also want networking, so a good starting point for<br>
a minimal VM is:<br>
<br>
BitBltSimulation<br>
BalloonEnginePlugin<br>
FilePlugin<br>
SocketPlugin<br>
<br>
Dave<br>
<br>
</blockquote></div></div></div><br>
</blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>