opengl plugin FTBFS with clang
Bug #1095915 reported by
Sam Spilsbury
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Fix Released
|
Medium
|
Sam Spilsbury | ||
Mesa |
Won't Fix
|
Medium
|
|||
compiz (Ubuntu) |
Fix Released
|
Medium
|
Sam Spilsbury |
Bug Description
[ 35%] Building CXX object plugins/
/home/smspillaz
assigning to 'GLShaderSource
GLchar **, const GLint *)') from incompatible type 'void (GLuint, GLsizei,
const GLchar *const *, const GLint *)': type mismatch at 3rd parameter
('const GLchar **' (aka 'const char **') vs 'const GLchar *const *' (aka
'const char *const *'))
GL:
1 error generated.
Related branches
lp:~compiz-team/compiz/compiz.fix_1095915
- PS Jenkins bot (community): Approve (continuous-integration)
- Daniel van Vugt: Approve
-
Diff: 12 lines (+1/-1)1 file modifiedplugins/opengl/src/screen.cpp (+1/-1)
Changed in compiz: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
assignee: | nobody → Sam Spilsbury (smspillaz) |
milestone: | none → 0.9.9.0 |
Changed in compiz: | |
status: | Confirmed → In Progress |
Changed in compiz (Ubuntu): | |
status: | New → In Progress |
importance: | Undecided → Medium |
assignee: | nobody → Sam Spilsbury (smspillaz) |
Changed in mesa: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Changed in compiz: | |
status: | In Progress → Fix Committed |
Changed in mesa: | |
status: | Confirmed → Won't Fix |
Changed in compiz: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
glShaderSource is defined in the GLES2 spec as so:
void glShaderSource( GLuint shader,
GLsizei count,
const GLchar **string,
const GLint *length);
However trunk mesa (and 9.1.0) has a definition like this:
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
The difference being const GLchar **string, vs const GLchar* const* string
That means that if you have a function pointer to glShaderSource using the old definition, and assign the new function to it, it will fail to compile.
(And I know that code using function pointers to core functionality is insane, but it is better than using ifdefs to switch between using function pointers where that functionality is extension-only, and real function declarations where it is core functionality)