[Vm-dev] Building StackVM on ARM linux meego-hartmann

Denis Kudriashov dionisiydk at gmail.com
Wed Oct 3 17:14:00 UTC 2012


I found comment:

/* Atomic increment of 32-bit values allows a lock-free implementation of
the
 * request side of signalSemaphoreWithIndex:
 */

    /* Currently we provide definitions for x86 and GCC only.  */
#if defined(__GNUC__) && (defined(i386) || defined(__i386) ||
defined(__i386__) || defined(_X86_))
#ifdef TARGET_OS_IS_IPHONE
#define sqAtomicAddConst(var,n) OSAtomicAdd32(n,&var)
#else
# define sqAtomicAddConst(var,n) \
    asm volatile ("lock addl %1, %0" : "=m" (var) : "i" (n), "m" (var))
#endif
#else
#ifdef TARGET_OS_IS_IPHONE
#define sqAtomicAddConst(var,n) OSAtomicAdd32(n,&var)
#endif
/* Dear implementor, you have choices.  Google atomic increment and you will
 * find a number of implementations for other architectures.
 */
#endif

I now try to google it.
Maybe you already know how to fix it?

2012/10/3 Denis Kudriashov <dionisiydk at gmail.com>

> Ok. I exclude IA32ABIPlugin. It's help. And now I have next problem:
>
> [ 87%] Building C object
> CMakeFiles/StackVM.dir/cogVM/blessed/platforms/Cross/vm/sqTicker.c.o
> In file included from /cogVM/blessed/platforms/Cross/vm/sqTicker.c:56:
> /cogVM/blessed/platforms/Cross/vm/sqAtomicOps.h:140: ошибка: #error atomic
> access of 64-bit variables not yet defined for this platform
> make[2]: ***
> [CMakeFiles/StackVM.dir/cogVM/blessed/platforms/Cross/vm/sqTicker.c.o]
> error 1
> make[1]: *** [CMakeFiles/StackVM.dir/all] error 2
> make: *** [all] error 2
>
>
> What I can do now?
>
>
> 2012/10/3 David T. Lewis <lewis at mail.msen.com>
>
>
>> On Wed, Oct 03, 2012 at 10:31:55AM +0200, Igor Stasenko wrote:
>> >
>> > On 3 October 2012 06:29, Denis Kudriashov <dionisiydk at gmail.com> wrote:
>> > >
>> > > Great. I remove it.
>> > > Now process stopped at ~30% on:
>> > >
>> > > tmp/cc33Ks89.s: Assembler messages:
>> > > /tmp/cc33Ks89.s:90: Error: ARM register expected -- `mov
>> [sp,#844],%edx'
>> > > /tmp/cc33Ks89.s:118: Error: bad instruction `fldl [r0,#0]'
>> > > make[2]: ***
>> [IA32ABI/CMakeFiles/IA32ABI.dir/cogVM/blessed/platforms/Cross/plugins/IA32ABI/ia32abicc.c.o]
>> > > ???????????? 1
>> >
>> > so remove that plugin from a build.
>> > You should start from minimum set of plugins and then proceed adding
>> > more once you can make them compiling/working.
>> >
>>
>> FYI, the smallest useable VM requires these plugins:
>>
>>   BitBltSimulation
>>   BalloonEnginePlugin
>>   FilePlugin
>>
>> But usually you will also want networking, so a good starting point for
>> a minimal VM is:
>>
>>   BitBltSimulation
>>   BalloonEnginePlugin
>>   FilePlugin
>>   SocketPlugin
>>
>> Dave
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20121003/ce357f76/attachment.htm


More information about the Vm-dev mailing list