amd64 native VM missing from SDKs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

amd64 native VM missing from SDKs

Timmy Douglas-3

I wanted to play around with croquet but I haven't found a 64bit VM in
either of the SDKs that I have downloaded. I have a amd64 squeak VM,
but it isn't linked to the OpenAL libs so it segfaults on OpenAL's
createContext. (With my squeak vm, the networked version outputs:
SocketPlugin: ignoring unknown option 'SO_REUSEPORT'
and then throws a two zero divide errors in squeak. It doesn't go any
further)


I do not want to install 32bit libraries, but I'd be willing to do a
/little/ VM hacking if it hasn't already been done. The problem is
that I can't find the vm sources (are they in monticello?) and I'm not
really familiar with slang or monticello. When I got the 64bit squeak
vm working on this machine, I basically just modified C code from a
subversion checkout using a few patches from the internet.


thanks
Reply | Threaded
Open this post in threaded view
|

Re: amd64 native VM missing from SDKs

Bert Freudenberg

On Jan 20, 2008, at 12:17 , Timmy Douglas wrote:

>
> I wanted to play around with croquet but I haven't found a 64bit VM in
> either of the SDKs that I have downloaded.
> I do not want to install 32bit libraries, but I'd be willing to do a
> /little/ VM hacking if it hasn't already been done.

Sources are at squeakvm.org - be sure to read the 64 bit FAQ first:

http://www.squeakvm.org/squeak64/faq.html

- Bert -

Reply | Threaded
Open this post in threaded view
|

Re: amd64 native VM missing from SDKs

Timmy Douglas-3
Bert Freudenberg <[hidden email]> writes:

> On Jan 20, 2008, at 12:17 , Timmy Douglas wrote:
>
>>
>> I wanted to play around with croquet but I haven't found a 64bit VM in
>> either of the SDKs that I have downloaded.
>> I do not want to install 32bit libraries, but I'd be willing to do a
>> /little/ VM hacking if it hasn't already been done.
>
> Sources are at squeakvm.org - be sure to read the 64 bit FAQ first:
>
> http://www.squeakvm.org/squeak64/faq.html


ok I didn't realize that the croquet and squeak vm used the same
source code base. Because that version seems to be too old to run
croquet, I rebuilt my squeak vm using the latest subversion sources:


(crashes when I drag out the simple demo world)
timmy@timmy-desktop:~/src/croquet/CroquetSDK-1.0.18$ squeak Croquet.1.0.18
Using default visual.

Segmentation fault

31897832 OpenAL>createContext
31897348 OpenAL>initialize
31893424 OpenAL class>new
31893568 [] in OpenALHarness>initialize
31893332 BlockContext>on:do:
31893228 BlockContext>ifError:
30067592 OpenALHarness>initialize
30067500 CroquetHarnessWithMenu>initialize
30067224 Behavior>new
30066948 SimpleDemoMaster>setup
30067040 [] in CroquetParticipant>step
30066856 BlockContext>ensure:
30066764 CroquetParticipant>step
30066672 BFDParticipant>step
30066580 CroquetParticipantWithMenu>step
30066488 Morph>stepAt:
30066396 MorphicAlarm>value:
30066304 WorldState>runLocalStepMethodsIn:
30066212 WorldState>runStepMethodsIn:
30066120 PasteUpMorph>runStepMethods
30066028 WorldState>doOneCycleNowFor:
30065844 WorldState>doOneCycleFor:
30065752 PasteUpMorph>doOneCycle
29083120 [] in Project class>spawnNewProcess
29083212 [] in BlockContext>newProcess
Aborted (core dumped)


It also seems I still get zerodivide errors from:
Float>>/
Float(Number)>>roundTo:
Scrollbar>>setValue:
PluggableListMorph(ScrollPane)>>hSetScrollDelta
PluggableListMorph(ScrollPane)>>extent:

which make it almost impossible to use the system browser.


When I run it under gdb, it acts a little different but it still
crashes after I try to drag out the simple world and cancel the
emergency evaluator



(gdb) run Croquet.1.0.18
Starting program: /usr/local/bin/squeak Croquet.1.0.18
Using default visual.

Program received signal SIGSEGV, Segmentation fault.
ioLoadExternalFunctionOfLengthFromModuleOfLength (functionNameIndex=<value optimized out>, functionNameLength=16,
    moduleNameIndex=<value optimized out>, moduleNameLength=14)
    at /home/timmy/src/squeak/seaside-test/squeak-svn-source/platforms/Cross/vm/sqNamedPrims.c:325
325                     functionName[i] = functionNamePointer[i];
(gdb) bt
#0  ioLoadExternalFunctionOfLengthFromModuleOfLength (functionNameIndex=<value optimized out>, functionNameLength=16,
    moduleNameIndex=<value optimized out>, moduleNameLength=14)
    at /home/timmy/src/squeak/seaside-test/squeak-svn-source/platforms/Cross/vm/sqNamedPrims.c:325
#1  0x0000000000424307 in primitiveCalloutToFFI ()
    at /home/timmy/src/squeak/seaside-test/squeak-svn-source/platforms/unix/src/vm/interp.c:12750
#2  0x000000000041aa86 in dispatchFunctionPointer (aFunctionPointer=0x2aab004bae0c)
    at /home/timmy/src/squeak/seaside-test/squeak-svn-source/platforms/unix/src/vm/interp.c:3868
#3  0x000000000042e29e in interpret () at /home/timmy/src/squeak/seaside-test/squeak-svn-source/platforms/unix/src/vm/interp.c:7673
#4  0x000000000041926e in main (argc=<value optimized out>, argv=0x7fffc8d46398, envp=<value optimized out>)
    at /home/timmy/src/squeak/seaside-test/squeak-svn-source/platforms/unix/vm/sqUnixMain.c:1407
(gdb) l
320             int i;
321
322             if(functionNameLength > 255 || moduleNameLength > 255)
323                     return 0; /* can't cope with those */
324             for(i=0; i< functionNameLength; i++)
325                     functionName[i] = functionNamePointer[i];
326             functionName[functionNameLength] = 0;
327             for(i=0; i< moduleNameLength; i++)
328                     moduleName[i] = moduleNamePointer[i];
329             moduleName[moduleNameLength] = 0;
(gdb) print functionNamePointer
$3 = 0x2aab004bae0c <Address 0x2aab004bae0c out of bounds>

functionName is just uninitialized.

i = 0