[Vm-dev] Confused by FFI at Mac & Cog

Eliot Miranda eliot.miranda at gmail.com
Mon Dec 27 19:52:11 UTC 2010


On Mon, Dec 27, 2010 at 11:49 AM, Esteban Lorenzano <estebanlm at gmail.com>wrote:

>
> btw... quick question: ReentrantFFIPlugin will obsolete I32ABI?
>

Only the callout functionality, not the data access or callback
functionality.

HTH
Eliot


> Cheers,
> Esteban
>
> El 27/12/2010, a las 4:46p.m., Eliot Miranda escribió:
>
> Hi Igor,
>
>     that's all legacy.  The Cog sources require only ReentrantFFIPlugin (at
> least on x86).  As far as other processors I've written ReentrantFFIPlugin
> to allow straight-forward porting to other platforms.  I can consult if
> anyone is motivated to try and port to PowerPC, ARM etc.  The essential idea
> is to use C's alloca to allocate the space for the outgoing arguments on the
> stack and hence do all the marshalling in C.  Passing register arguments is
> done by explicitly passing the register args, leavign the rest to be passed
> on teh stack throguh the alloca'ed space.
>
> In short, all that assembler support code is obsolete.
>
> best
> Eliot
>
> On Mon, Dec 27, 2010 at 7:20 AM, Igor Stasenko <siguctua at gmail.com> wrote:
>
>>
>> Hi,
>> I am trying to figure out, how to build FFI plugin on macs for cog vm.
>>
>> the platforms/Mac\ OS/plugins/SqueakFFIPrims contains following files:
>>
>>
>> Info-SqueakFFIPlugin__Upgraded_.plist
>> SqueakFFI.xcodeproj.zip
>> SqueakFFIPrims.proj.xml
>> ppc-darwin-Carbon-UI.c
>> ppc-darwin-asm-MacIntel.S
>> ppc-global.h
>> resources
>> sqMacFFI.s
>> sqMacFFIPPC.c
>> sqMacIntel-Win32.c
>> x86-sysv-MacIntel.c
>> x86-sysv-asm-MacIntel.S
>>
>>
>> something tells me that i don't need to compile ppc* files, because
>> Cog doesn't works on that arch anyways..
>> so, i tried to use
>> sqMacIntel-Win32.c
>>
>> and failed.. then tried to use
>>
>> x86-sysv-MacIntel.c
>>
>> and it fails to compile with same error(s):
>>
>> /platforms/Mac OS/plugins/SqueakFFIPrims/x86-sysv-MacIntel.c:127:
>> error: ‘FFICallTypeCDecl’ undeclared (first use in this function)
>> /platforms/Mac OS/plugins/SqueakFFIPrims/x86-sysv-MacIntel.c:128:
>> error: ‘FFICallTypeApi’ undeclared (first use in this function)
>>
>> These constants are defined only in FFIConstants shared pool.. and
>> somehow they should be made available to
>> these .c files..
>> But our beloved VMMaker's code generator don't generating headers
>> which can be included by other .c files,
>> and all class var constants are just printed inside a body of
>> generated .c file , like SqueakFFIPrims.c
>> which means that these constants should be defined externally manually
>> somewhere.
>>
>> So, it seems like  FFI is broken for Mac+Cog.
>>
>> P.S. Eliot's default .xcodeproj for FFI plugin are not builds because
>> its not including one of the files above, which making a build
>> complete (otherwise you got undefined symbols).
>>
>> Please shed a light, if FFI for Mac + Cog were in working state at
>> some day? Or i doing something completely wrong?
>>
>> Of course i can disable it from build and forget about it, since we
>> have new stuff coming (of course if Santa decide that we were good
>> boys),
>> but still..
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101227/2a886a26/attachment.htm


More information about the Vm-dev mailing list