The current POGL code is not ANSI clean. I would like to see it modified
to meet stricter compile options (such as -std=c89 -pedantic for gcc).
Some current output from gcc -std=c89 -pedantic that need to be
(1) /usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h:1625:40: warning: anonymous variadic macros were introduced in C99
This comes from perl itself. The fix here is to configure and build
perl with the same strict compiler options.
(2) /usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h:1672: warning: ISO C90 does not support 'long long'
(3) OpenGL.xs:53: warning: ISO C forbids braced-groups within expressions
Some of the macros used in the XS boot process have
this usage. Need to investigate where that happens and
what the corrected code would be.
(4) gl_exclude.h:5: error: expected identifier or '(' before '/' token
// are not ANSI standard comments for C.
Need to replace with /* ... */ instead.
(5) pogl_gl_top.xs:111: warning: ISO C forbids conversion of function pointer to object pointer type
pogl_gl_top.xs:111: warning: ISO C forbids assignment between function pointer and 'void *'
This is from incorrect constructs in creating the function
pointers for OpenGL extensions at runtime. The problem
could be fixed by replacing (void *) by the actual function
pointer typecasts. Instead, the problem will be deferred
until the GLEW re-implementation which already does
Log in to post a comment.