Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007237 [Squeak] VM feature always 11-28-08 16:16 10-23-10 16:59
Reporter lewis View Status public  
Assigned To lewis
Priority normal Resolution open Platform
Status acknowledged   OS
Projection none   OS Version
ETA none Fixed in Version Product Version
  Product Build
Summary 0007237: Make FFI work on 64 bit platforms
Description FFI has a number of 32 bit dependencies that prevent operation on 64 bit point size machines. Details were reported on the vm-dev list:

http://lists.squeakfoundation.org/pipermail/vm-dev/2008-May/001945.html [^]

Overall changes involve:
 - Add FFIPlugin>>primitiveSizeOfPointer for runtime address size check
 - ExternalAddress is either 4 or 8 bytes wide, initialized at image startup
 - Remove all casts from pointer to int for FFI plugin and interpreter
   (VM minor version bump)
 - Recompile all methods with cdecl or apicall pragmas (must to done for any
   image to run properly on 64 bit host)
Steps To Reproduce
Additional Information With changes applied, status is as follows:
Platform FFI testing as of Mon May 26 14:26:22 EDT 2008
"GREEN" means no compiler warnings, all SUnits pass, and the X11/Win32 examples work.

======================================================================================================
VM config.guess FFI implementation host image status
-- ------------ ------------------- ---- ----- ------
win32 32 bit Windows on AMD64 sqWin32FFI.c 32 bit 32 bit GREEN
win32 32 bit Windows on AMD64 sqWin32FFI.c 32 bit 64 bit tbd
unix i686-pc-linux-gnu x86-sysv.c+x86-sysv-asm.S 32 bit 32 bit GREEN
unix i686-pc-linux-gnu x86-sysv.c+x86-sysv-asm.S 32 bit 64 bit GREEN
unix i686-pc-linux-gnu any-libffi.c 32 bit 32 bit GREEN
unix i686-pc-linux-gnu any-libffi.c 32 bit 64 bit GREEN
unix x86_64-unknown-linux-gnu any-libffi.c 64 bit 32 bit GREEN
unix x86_64-unknown-linux-gnu any-libffi.c 64 bit 64 bit GREEN
unix x86_64-unknown-linux-gnu x86_64-sysv.c+x86_64_sysv-asm.S 64 bit 32 bit Not implemented(*)
unix x86_64-unknown-linux-gnu x86_64-sysv.c+x86_64_sysv-asm.S 64 bit 64 bit Not implemented(*)
unix ppc-darwin.c+ppc-darwin-asm.S ? 32 bit Needs testing(**)
unix ppc-darwin.c+ppc-darwin-asm.S ? 64 bit Needs testing(**)
unix ppc-sysv.c+ppc-sysv-asm.S ? 32 bit Needs testing(**)
unix ppc-darwin.c+ppc-darwin-asm.S ? 64 bit Needs testing(**)
Mac OS ... (should be easy update)
RiscOS ... (no FFI implementation?)
Attached Files  ffi-patches-5-dtl.zip [^] (26,996 bytes) 11-28-08 16:25
 FFI-primitiveFFIIntegerAt-dtl-M6987-M7237.1.cs [^] (2,773 bytes) 04-03-09 02:48

- Relationships

SYSTEM WARNING: Creating default object from empty value

related to 0006987assigned lewis signed32BitValueOf:, signed64BitValueOf: etc. broken 
related to 0007720assigned lewis FFI silently accept a 64bits argument > LLONG_MAX instead of failing 

- Notes
(0013074 - 381 - 381 - 381 - 591 - 591 - 591)
lewis
04-03-09 02:53

FFI-primitiveFFIIntegerAt-dtl-M6987-M7237.1.cs is a fix for an FFI issue reported in Mantis 6987 in the test cases FFITestCase.st (see attachments to 0006987). This fix should be applied after the 64-bit FFI updates in order to fully resolve the issues in 0006987. Note that FFI-primitiveFFIIntegerAt-dtl-M6987-M7237.1.cs requires an update to sqMemoryAccess.h in the platform sources.
 
(0013889 - 182 - 192 - 192 - 192 - 192 - 192)
lewis
10-23-10 16:59

This issue affects VM, a plugin in VMMaker, the image, and the external FFI package. VM issues are a prerequisite to fixing the rest, so recategorize to "VM" and assign it to myself.
 

- Issue History
Date Modified Username Field Change
11-28-08 16:16 lewis New Issue
11-28-08 16:16 lewis Status new => assigned
11-28-08 16:16 lewis Assigned To  => andreas
11-28-08 16:24 lewis Issue Monitored: lewis
11-28-08 16:25 lewis File Added: ffi-patches-5-dtl.zip
04-03-09 02:43 lewis Relationship added related to 0006987
04-03-09 02:48 lewis File Added: FFI-primitiveFFIIntegerAt-dtl-M6987-M7237.1.cs
04-03-09 02:53 lewis Note Added: 0013074
04-08-10 14:32 laza Project Squeak => Squeak Packages
10-23-10 16:54 lewis Project Squeak Packages => Squeak
10-23-10 16:59 lewis Note Added: 0013889
10-23-10 16:59 lewis Assigned To andreas => lewis
10-23-10 16:59 lewis Status assigned => acknowledged
10-23-10 16:59 lewis Category FFI => VM
01-22-13 13:36 lewis Relationship added related to 0007720


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
59 total queries executed.
38 unique queries executed.
Powered by Mantis Bugtracker