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

John M McIntosh johnmci at smalltalkconsulting.com
Mon Dec 27 22:05:43 UTC 2010


Well actually the assembler for PPC exists as I wrote it for Alien, but not the part that does the callbacks. 

Although people *might* think PPC is dead, the  United States of America's school systems are firmly entrenched in dead technology.
Something about funding... 

On 2010-12-27, at 11:46 AM, Eliot Miranda wrote:

> 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.
> 

--
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101227/c41112a5/attachment-0001.htm


More information about the Vm-dev mailing list