[Pharo-project] Pharo won't make a VM in linux
This is a spin-off of the Alien's building thread, I think it deserved it's own thread. I first faced this while trying to build alien, but then I noticed it's unrelated. The VM is not building in linux, and I think it's not caused by my machine's configuration. I'm using 1.0RC2, with VMMaker loaded yesterday using configurationOfVMMaker. I also applied ObjectMemory initializeWithBytesToWord: Smalltalk wordSize. as told in the other thread to fix some issues. Plugins are: - internal: B3DAcceleratorPlugin, BaloonEnginePlugin, BitBltSimulation, FilePlugin, SocketPlugin. - By the way, I'm also having to include some dummy plugin as external. If I don't, cmake will make some weird stuff like creating a = directory and then fail. I use ADPCMCodecPlugin. The errors are these: ... 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 Maybe it should be linking to opengl lib but it isn't, what do you think? Regards, Javier. -- Javier Pimás Ciudad de Buenos Aires
Javier Pimás wrote:
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
Maybe it should be linking to opengl lib but it isn't, what do you think?
What version of OpenGL do you have installed on your machine? I haven't looked at the details, but I believe that the interface changed quite a lot between OpenGL 1.x and OpenGL 2.x, so if B3D is expecting 2.x and you have 1.x, or the other way around, you might get problems like this. Regards, -Martin
I'm cross-posting to vm-dev because I get the same errors with Squeak 3.10.2.7179 image. I have GL_VERSION = 3.2.0 NVIDIA 190.53 After navigating trough the makefiles, I found I was right, it's not linking to opengl. The linking command was autogenerated and sitting in blddir/CMakeFiles/squeakvm.dir/link.txt. Adding -lGL to it solved that problem. Does anybody know what caused the missing "-lGL" and how to solve it? Now I can get back to trying to compile alien! Regards, Javier. But I don't think it's a version problem, these undefined functions are there since OpenGL 1. the On Sun, Feb 21, 2010 at 4:27 PM, Martin McClure <martin@hand2mouse.com>wrote:
Javier Pimás wrote:
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
Maybe it should be linking to opengl lib but it isn't, what do you think?
What version of OpenGL do you have installed on your machine? I haven't looked at the details, but I believe that the interface changed quite a lot between OpenGL 1.x and OpenGL 2.x, so if B3D is expecting 2.x and you have 1.x, or the other way around, you might get problems like this.
Regards,
-Martin
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Javier Pimás Ciudad de Buenos Aires
Made some tests to find out what is happening, and found the problem. I can confirm that this happens both in squeak and pharo. The thing is that B3DAccelerator doesn't work as internal plugin in unix. Making it external worked fine. This lead me to some questions: - To make it work as internal the only thing needed is to add that -lGL to the linking process. Does anybody know how to modify the cmake files to do that? Maybe it's just a thing of adding a line to unix/plugins/B3DAcceleratorPlugin/config.cmake or unix/vm/config.cmake?? - Does anybody build the VM in unix? using cmake? Regards, Javier. On Mon, Feb 22, 2010 at 1:07 PM, Javier Pimás <elpochodelagente@gmail.com>wrote:
I'm cross-posting to vm-dev because I get the same errors with Squeak 3.10.2.7179 image. I have
GL_VERSION = 3.2.0 NVIDIA 190.53
After navigating trough the makefiles, I found I was right, it's not linking to opengl. The linking command was autogenerated and sitting in blddir/CMakeFiles/squeakvm.dir/link.txt. Adding -lGL to it solved that problem. Does anybody know what caused the missing "-lGL" and how to solve it?
Now I can get back to trying to compile alien!
Regards, Javier.
But I don't think it's a version problem, these undefined functions are there since OpenGL 1. the
On Sun, Feb 21, 2010 at 4:27 PM, Martin McClure <martin@hand2mouse.com>wrote:
Javier Pimás wrote:
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
Maybe it should be linking to opengl lib but it isn't, what do you think?
What version of OpenGL do you have installed on your machine? I haven't looked at the details, but I believe that the interface changed quite a lot between OpenGL 1.x and OpenGL 2.x, so if B3D is expecting 2.x and you have 1.x, or the other way around, you might get problems like this.
Regards,
-Martin
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Javier Pimás Ciudad de Buenos Aires
-- Javier Pimás Ciudad de Buenos Aires
Javier: I cannot help you, but I can advice you to ask this VM related questions not only in Pharo but also in the VM mailing list: vm-dev@lists.squeakfoundation.org as you will probably receive more help :) Cheers Mariano 2010/2/23 Javier Pimás <elpochodelagente@gmail.com>
Made some tests to find out what is happening, and found the problem. I can confirm that this happens both in squeak and pharo. The thing is that B3DAccelerator doesn't work as internal plugin in unix. Making it external worked fine.
This lead me to some questions:
- To make it work as internal the only thing needed is to add that -lGL to the linking process. Does anybody know how to modify the cmake files to do that? Maybe it's just a thing of adding a line to unix/plugins/B3DAcceleratorPlugin/config.cmake or unix/vm/config.cmake??
- Does anybody build the VM in unix? using cmake?
Regards, Javier.
On Mon, Feb 22, 2010 at 1:07 PM, Javier Pimás <elpochodelagente@gmail.com>wrote:
I'm cross-posting to vm-dev because I get the same errors with Squeak 3.10.2.7179 image. I have
GL_VERSION = 3.2.0 NVIDIA 190.53
After navigating trough the makefiles, I found I was right, it's not linking to opengl. The linking command was autogenerated and sitting in blddir/CMakeFiles/squeakvm.dir/link.txt. Adding -lGL to it solved that problem. Does anybody know what caused the missing "-lGL" and how to solve it?
Now I can get back to trying to compile alien!
Regards, Javier.
But I don't think it's a version problem, these undefined functions are there since OpenGL 1. the
On Sun, Feb 21, 2010 at 4:27 PM, Martin McClure <martin@hand2mouse.com>wrote:
Javier Pimás wrote:
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
Maybe it should be linking to opengl lib but it isn't, what do you think?
What version of OpenGL do you have installed on your machine? I haven't looked at the details, but I believe that the interface changed quite a lot between OpenGL 1.x and OpenGL 2.x, so if B3D is expecting 2.x and you have 1.x, or the other way around, you might get problems like this.
Regards,
-Martin
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Javier Pimás Ciudad de Buenos Aires
-- Javier Pimás Ciudad de Buenos Aires
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Javier, Yes, I can build a linux VM (on OSX) from a Pharo image. I always build B3DAcceleratorPlugin as an internal plugin. Cheers, Adrian On Feb 24, 2010, at 09:30 , Mariano Martinez Peck wrote:
Javier: I cannot help you, but I can advice you to ask this VM related questions not only in Pharo but also in the VM mailing list:
vm-dev@lists.squeakfoundation.org
as you will probably receive more help :)
Cheers
Mariano
2010/2/23 Javier Pimás <elpochodelagente@gmail.com>
Made some tests to find out what is happening, and found the problem. I can confirm that this happens both in squeak and pharo. The thing is that B3DAccelerator doesn't work as internal plugin in unix. Making it external worked fine.
This lead me to some questions:
- To make it work as internal the only thing needed is to add that -lGL to the linking process. Does anybody know how to modify the cmake files to do that? Maybe it's just a thing of adding a line to unix/plugins/B3DAcceleratorPlugin/config.cmake or unix/vm/config.cmake??
- Does anybody build the VM in unix? using cmake?
Regards, Javier.
On Mon, Feb 22, 2010 at 1:07 PM, Javier Pimás <elpochodelagente@gmail.com>wrote:
I'm cross-posting to vm-dev because I get the same errors with Squeak 3.10.2.7179 image. I have
GL_VERSION = 3.2.0 NVIDIA 190.53
After navigating trough the makefiles, I found I was right, it's not linking to opengl. The linking command was autogenerated and sitting in blddir/CMakeFiles/squeakvm.dir/link.txt. Adding -lGL to it solved that problem. Does anybody know what caused the missing "-lGL" and how to solve it?
Now I can get back to trying to compile alien!
Regards, Javier.
But I don't think it's a version problem, these undefined functions are there since OpenGL 1. the
On Sun, Feb 21, 2010 at 4:27 PM, Martin McClure <martin@hand2mouse.com>wrote:
Javier Pimás wrote:
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
Maybe it should be linking to opengl lib but it isn't, what do you think?
What version of OpenGL do you have installed on your machine? I haven't looked at the details, but I believe that the interface changed quite a lot between OpenGL 1.x and OpenGL 2.x, so if B3D is expecting 2.x and you have 1.x, or the other way around, you might get problems like this.
Regards,
-Martin
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- Javier Pimás Ciudad de Buenos Aires
-- Javier Pimás Ciudad de Buenos Aires
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (4)
-
Adrian Lienhard -
Javier Pimás -
Mariano Martinez Peck -
Martin McClure