[Vm-dev] compiling IA32ABI for cocoa cog

Eliot Miranda eliot.miranda at gmail.com
Wed Apr 13 01:34:57 UTC 2011


On Tue, Apr 12, 2011 at 6:30 PM, Esteban Lorenzano <estebanlm at gmail.com>wrote:

>
> Hi Eliot,
> yes... I need it, because cocoa cog vm is compiled
> with: -fvisibility=hidden, and so I need to explicitly export
> functions/variables I want to use outside. I could change the visibility,
> but I'm not sure if this is a good idea.
>

If you must, you must.  You can include specific declarations in the
class-side declareCVarsIn: methods, e.g. StackInterpreter
class>> declareCVarsIn:.


> Cheers,
> Esteban
>
> El 12/04/2011, a las 9:17p.m., Eliot Miranda escribió:
>
> Hi Esteban,
>
> On Tue, Apr 12, 2011 at 5:03 PM, Esteban Lorenzano <estebanlm at gmail.com>wrote:
>
>>
>> Hi,
>> I'm trying to compile new IA32ABI plugin, who should work with new
>> Threaded FFI.
>> As everybody requested, I'm trying to compile this plugin as an external
>> plugin, and for that reason I need variable
>>
>> sqInt inIOProcessEvents;
>>
>> to be
>>
>> EXPORT(sqInt) inIOProcessEvents;
>>
>> ...how can I modify VMMaker to ensure this?
>>
>
> Um, are you sure you need to.  If you have a look at
> http://www.squeakvm.org/svn/squeak/branches/Cog r2378 you'll see that
>  inIOProcessEvents is declared in cointerpmt.c and that IA32ABI.c imports it
> via
>
> src/plugins/IA32ABI/IA32ABI.c:  { extern int inIOProcessEvents; address =
> (sqInt)&inIOProcessEvents; }
>
> Doesn't that work?
>
> best,
> Eliot
>
> I tried touching StackInterpreter>>#mustBeGlobal:, but that generates bad
>> code on gcc3x-cointerpmt.c (it creates GIV(inIOProcessEvents) calls and that
>> does not work)
>>
>> so... any idea?
>>
>> thanks,
>> Esteban
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110412/73d2fce4/attachment.htm


More information about the Vm-dev mailing list