Anonymous Login
2018-02-23 23:12 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0001996OpenClonkEnginepublic2018-02-12 16:03
Reporterpkern 
Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
StatusnewResolutionopen 
PlatformDebian GNU/Linux arm*OSLinuxOS Version 
Product Version 
Target VersionFixed in Version 
Summary0001996: OpenClonk 8.0 does not compile on Debian armel/armhf
DescriptionExample build log: https://buildd.debian.org/status/fetch.php?pkg=openclonk&arch=armel&ver=8.0-1&stamp=1518371426&raw=0

There are a bunch of warnings like these:

/usr/include/arm-linux-gnueabi/qt5/QtGui/qopenglcontext.h:55:2: warning: #warning qopenglfunctions.h is not compatible with GLEW, GLEW defines will be undefined [-Wcpp]
/usr/include/arm-linux-gnueabi/qt5/QtGui/qopenglcontext.h:56:2: warning: #warning To use GLEW with Qt, do not include <qopengl.h> or <QOpenGLFunctions> after glew.h [-Wcpp]

And then the main failures seem to be missing/broken/incompatible function prototypes and type definitions:

In file included from /usr/include/arm-linux-gnueabi/qt5/QtGui/qopengl.h:105:0,
                 from /usr/include/arm-linux-gnueabi/qt5/QtGui/QtGui:43,
                 from /usr/include/arm-linux-gnueabi/qt5/QtWidgets/QtWidgetsDepends:4,
                 from /usr/include/arm-linux-gnueabi/qt5/QtWidgets/QtWidgets:3,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQt.h:34,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQtState.h:27,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQt.cpp:23:
/usr/include/GLES3/gl31.h: At global scope:
/usr/include/GLES3/gl31.h:77:25: error: conflicting declaration 'typedef khronos_ssize_t GLsizeiptr'
 typedef khronos_ssize_t GLsizeiptr;
                         ^~~~~~~~~~
In file included from /<<PKGBUILDDIR>>/src/graphics/C4Shader.h:30:0,
                 from /<<PKGBUILDDIR>>/src/lib/StdMeshMaterial.h:20,
                 from /<<PKGBUILDDIR>>/src/graphics/C4Draw.h:22,
                 from /<<PKGBUILDDIR>>/src/landscape/C4Texture.h:26,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQt.cpp:20:
/usr/include/GL/glew.h:1680:19: note: previous declaration as 'typedef ptrdiff_t GLsizeiptr'
 typedef ptrdiff_t GLsizeiptr;
                   ^~~~~~~~~~

And lots of others, in this case a function:

In file included from /usr/include/arm-linux-gnueabi/qt5/QtGui/qopengl.h:105:0,
                 from /usr/include/arm-linux-gnueabi/qt5/QtGui/QtGui:43,
                 from /usr/include/arm-linux-gnueabi/qt5/QtWidgets/QtWidgetsDepends:4,
                 from /usr/include/arm-linux-gnueabi/qt5/QtWidgets/QtWidgets:3,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQt.h:34,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQtState.h:27,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQt.cpp:23:
/usr/include/GLES3/gl31.h:528:60: error: 'void __glewActiveTexture(GLenum)' redeclared as different kind of symbol
 GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
                                                            ^
In file included from /<<PKGBUILDDIR>>/src/graphics/C4Shader.h:30:0,
                 from /<<PKGBUILDDIR>>/src/lib/StdMeshMaterial.h:20,
                 from /<<PKGBUILDDIR>>/src/graphics/C4Draw.h:22,
                 from /<<PKGBUILDDIR>>/src/landscape/C4Texture.h:26,
                 from /<<PKGBUILDDIR>>/src/editor/C4ConsoleQt.cpp:20:
/usr/include/GL/glew.h:16749:40: note: previous declaration 'void (* __glewActiveTexture)(GLenum)'
 GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture;
                                        ^~~~~~~~~~~~~~~~~~~

(Look for the first "error:" in the build log.)

The emitted warning leads me to think that maybe, just maybe this is actually an issue with the OpenClonk source. ;-)

(Also this is a regression and 7.0 built successfully.)
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0006126

Caesar (developer)

We never explicitly stated this anywhere, but arm isn't really an architecture we support…

That being said, this problem might go away if you compile without the editor -DQt5Widgets_FOUND=off (I had the same thing when I had accidentally activated gles support on my Gentoo).

Asking further: does anyone think there any reason OpenClonk shouldn't be able to run on some arm devices? Is there a big difference between OpenGL ES 3.2 and the OpenGL 3.2 requirement we currently have?

~0006128

Luchs (developer)

>Is there a big difference between OpenGL ES 3.2 and the OpenGL 3.2 requirement we currently have?

I think the biggest similarity between OpenGL ES 3.2 and OpenGL 3.2 is the version number :)

OpenGL ES 3.2 is actually newer and has some features from OpenGL 4+, but does not support everything OpenGL 3.2 does. I don't know whether we use anything not in OpenGL ES, nobody has tried running OC on an ARM device yet.

In any case, the issue here seems to be that GLEW defines stuff from OpenGL, while Qt for some reason defines it from OpenGL ES. I wish we could somehow clean this up to get rid of that warning which also appears on x86.
+Notes

-Issue History
Date Modified Username Field Change
2018-02-12 10:51 pkern New Issue
2018-02-12 11:14 Caesar Note Added: 0006126
2018-02-12 16:03 Luchs Note Added: 0006128
+Issue History