Solved the other problem, now I'm back to Alien. There are more issues.
There are some missing functions:
Linking C executable squeakvm
CMakeFiles/squeakvm.dir/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c.o: In function `sqGetInterpreterProxy':
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:358: undefined reference to `internalIsImmutable'
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:359: undefined reference to `internalIsMutable'
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:360: undefined reference to `primitiveFailFor'
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:361: undefined reference to `classAlien'
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:362: undefined reference to `getStackPointer'
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:363: undefined reference to `sendInvokeCallbackStackRegistersJmpbuf'
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:364: undefined reference to `reestablishContextPriorToCallback'
/home/javier/st/squeak-svn/platforms/Cross/vm/sqVirtualMachine.c:365: undefined reference to `classUnsafeAlien'
collect2: ld returned 1 exit status
make[2]: *** [squeakvm] Error 1
make[1]: *** [CMakeFiles/squeakvm.dir/all] Error 2
make: *** [all] Error 2
I'm so close...
Thanks,
�������������������� Javier.
take it easy man, you look a bit nervous ;) . It is compiling now!!! but....
Alien compiled fine, but here I'm having some other problems, not related to alien itself, but to the vm building.
I had to add B3DAccelerator plugin because there were some errors, and now these errors mutated to:
Linking C executable squeakvm����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
B3DAcceleratorPlugin/libB3DAcceleratorPlugin.a(sqOpenGLRenderer.c.o): In function `glRenderVertexBuffer':��������������������������������������������������������������������������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.c:846: undefined reference to `glColorMaterial'������������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.c:847: undefined reference to `glGetError'����������������������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.c:848: undefined reference to `glEnable'��������������������������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.c:849: undefined reference to `glGetError'
...
/home/javier/st/squeak-svn/platforms/unix/plugins/B3DAcceleratorPlugin/sqUnixOpenGL.c:159: undefined reference to `glLightModelfv'
/home/javier/st/squeak-svn/platforms/unix/plugins/B3DAcceleratorPlugin/sqUnixOpenGL.c:160: undefined reference to `glGetError'
collect2: ld returned 1 exit status
make[2]: *** [squeakvm] Error 1
make[1]: *** [CMakeFiles/squeakvm.dir/all] Error 2
make: *** [all] Error 2
I think it should be linking to opengl lib but it isn't, maybe?. I also read in other thread that SocketPlugin is necesary but it didn't compile either. It said:
[ 34%] Building C object SocketPlugin/CMakeFiles/SocketPlugin.dir/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c.o��������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c: In function ���netAddressToInt���:������������������������������������������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:206: error: ���nil��� undeclared (first use in this function)��������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:206: error: (Each undeclared identifier is reported only once������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:206: error: for each function it appears in.)��������������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c: In function ���primitiveResolverGetAddressInfo���:����������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:324: error: ���nil��� undeclared (first use in this function)��������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c: In function ���primitiveResolverGetAddressInfoResult���:����������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:380: error: ���nil��� undeclared (first use in this function)��������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c: In function ���primitiveResolverGetNameInfoHostResult���:��������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:461: error: ���nil��� undeclared (first use in this function)��������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c: In function ���primitiveResolverGetNameInfoServiceResult���:��������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:500: error: ���nil��� undeclared (first use in this function)��������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c: In function ���primitiveResolverHostNameResult���:����������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:539: error: ���nil��� undeclared (first use in this function)��������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c: In function ���primitiveResolverStartNameLookup���:��������������������������������������������������������������������������������
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c:626: error: ���nil��� undeclared (first use in this function)��������������������������������������������������������������
make[2]: *** [SocketPlugin/CMakeFiles/SocketPlugin.dir/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/SocketPlugin/SocketPlugin.c.o] Error 1������������������������������������������������
make[1]: *** [SocketPlugin/CMakeFiles/SocketPlugin.dir/all] Error 2������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
make: *** [all] Error 2��
To solve this I tryied adding a
#define nil ((void*)0L)
as Marco said (for alien plugin) and almost worked, but gave errors, so I used:
#define nil 0L
I have to say that I've compiled some Pharo and Squeak VMs before and didn't get those errors. It may be related to loading VMMaker with ConfigurationOfVMMaker (I always did it manually before), or because of an updated version.
I'm very close to be able to test it, any ideas??
Regards,
�������������������� Javier.On Sat, Feb 20, 2010 at 6:17 PM, John M McIntosh <johnmci@smalltalkconsulting.com> wrote:
Oh fine, stupid tool sets, ��update your VMMaker image with:��Name: Alien-VMMaker-Plugins-John M McIntosh.8Author: John M McIntoshTime: 20 February 2010, 1:16:02 pmUUID: a8e7e044-bf22-4013-85b7-c70d2081cd4eAncestors: Alien-VMMaker-Plugins-John M McIntosh.7nil is null is (void*) 0 YES? Well not in non macintosh build chains since nil is UNDEFINED. Fine change nil to null that is in sq.hOn 2010-02-20, at 11:20 AM, Javier Pim��s wrote:nice! this is way better, but I still have this:
/home/javier/st/squeak-svn/platforms/unix/src32/vm/intplugins/IA32ABI/IA32ABI.c: In function ���primCallOutDoubleReturn���:--===========================================================================John M. McIntosh <johnmci@smalltalkconsulting.com> �� Twitter: ��squeaker68882Corporate Smalltalk Consulting Ltd.����http://www.smalltalkconsulting.com===========================================================================
--
Javier Pim��s
Ciudad de Buenos Aires