[Vm-dev] Re: Error while compiling

Igor Stasenko siguctua at gmail.com
Fri Jan 13 00:56:13 UTC 2012


On 12 January 2012 22:44, Guillermo Polito <guillermopolito at gmail.com> wrote:
>
> Compiling with CogUnixConfig works... are the class names ok? Or Maybe the No in the NoGL means something different, hehe.
>

because this config was focused more on building VM binary without
linkage to OpenGL libs,
so you can start VM without GL libs installed in your system.
And  B3DAcceleratorPlugin is built as external module, and there is no
restrictions on it.

To avoid building it, you need to just exclude it from build, like:

| conf |
conf := CogUnixNoGLConfig new.
conf externalPlugins: (conf externalPlugins copyWithout:
#B3DAcceleratorPlugin ).
conf generateSources;generate

but there are some other things needs to be updated, like
#addDriver: sources:generator: method which now don't needs to be
overridden in subclass,
because it can only change #linkFlags

> Thanks,
> Guille
>
> On Thu, Jan 12, 2012 at 6:37 PM, Guillermo Polito <guillermopolito at gmail.com> wrote:
>>
>> BTW, what more annoys me is that I generated the sources with CogUnixNoGLConfig, hehe
>>
>> Guille
>>
>>
>> On Thu, Jan 12, 2012 at 6:25 PM, Guillermo Polito <guillermopolito at gmail.com> wrote:
>>>
>>> When I compile the last version of the Vm in my 32bit ubuntu, I get the following:
>>>
>>> In file included from /home/guille/Dev/Pharo/cogvm/coglinux/blessed/platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.c:30:0:
>>> /home/guille/Dev/Pharo/cogvm/coglinux/blessed/platforms/Cross/plugins/B3DAcceleratorPlugin/sqOpenGLRenderer.h:13:16: error: redefinition of ‘struct glRenderer’
>>> /home/guille/Dev/Pharo/cogvm/coglinux/blessed/platforms/unix/plugins/B3DAcceleratorPlugin/sqUnixOpenGL.h:6:16: note: originally defined here
>>>
>>>
>>> Diving into the code, I found that in sqUnixOpenGL.h there is code like:
>>>
>>> ...
>>>
>>> typedef struct glRenderer
>>> {
>>>   int      bufferRect[4];
>>>   int      viewport[4];
>>>   int      used;
>>>   void     *drawable;
>>>   void     *context;
>>> } glRenderer;
>>>
>>> #if defined(USE_X11_GLX) || defined (USE_QUARTZ_CGL)
>>>
>>> # define GL_RENDERER_DEFINED     1
>>> # define MAX_RENDERER        16
>>>
>>> # if defined(HAVE_GL_GL_H)
>>> #   include <GL/gl.h>
>>> # else
>>> #   if defined(HAVE_OPENGL_GL_H)
>>> #     include <OpenGL/gl.h>
>>> #   else
>>> #     error *** cannot find gl.h
>>> #   endif
>>> # endif
>>>
>>> #endif
>>>
>>> ...
>>>
>>> Shouldn't the typedef be written inside the #if and #endif?
>>> If so, how do I publish the fix?
>>>
>>> Cheers,
>>> Guille
>>
>>
>
>



-- 
Best regards,
Igor Stasenko.


More information about the Vm-dev mailing list