Modify

Opened 5 months ago

Last modified 3 months ago

#13031 new Bug Report - General

Fails to compile on Arch Arm

Reported by: eliteforce82nd@… Owned by: stuarta
Priority: major Milestone: 0.28.2
Component: MythTV - General Version: 0.28.1
Severity: medium Keywords: Archlinux Arch Arm
Cc: Ticket locked: no

Description

Unable to compile on Raspberry pi 3 using Arch Arm and git fixes/0.28 (latest commit at the time e26a33c) Seems to be in 0.28 release and 0.28.1 as well, most likely to be an enviroment setup issue, but I have no idea what package or library it needs, perhaps a configure phase issue?

make[2]: Leaving directory '/home/alarm/mythtv/mythtv/libs/libmythmpeg2'
cd libmythui/ && ( test -e Makefile || /usr/bin/qmake-qt5 -o Makefile /home/alarm/mythtv/mythtv/libs/libmythui/libmythui.pro QMAKE=/usr/bin/qmake-qt5 ) && make -f Makefile 
make[2]: Entering directory '/home/alarm/mythtv/mythtv/libs/libmythui'
g++ -c -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -march=armv7-a -DNDEBUG -fomit-frame-pointer -fPIC -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -pthread -g -Wall -Wpointer-arith -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -fvisibility-inlines-hidden -Wmissing-declarations -Wno-switch -Woverloaded-virtual -funit-at-a-time -fvisibility=hidden -std=gnu++11 -D_REENTRANT -fPIC -Dusing_libcec -D_GNU_SOURCE -DUSING_X11 -DUSING_DBUS -DUSE_JOYSTICK_MENU -DUSE_LIRC -DUSING_LIBCEC -DUSING_XRANDR -DUSING_QTWEBKIT -DMUI_API -DQT_OPENGL_LIB -DQT_WEBKITWIDGETS_LIB -DQT_WIDGETS_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -isystem /usr/include/libxml2 -isystem /usr/include/X11 -I../libmythbase -I../.. -I.. -I../../external/FFmpeg -isystem /usr/include/qt -isystem /usr/include/qt/QtOpenGL -isystem /usr/include/qt/QtWebKitWidgets -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtWebKit -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtXml -isystem /usr/include/qt/QtSql -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtDBus -isystem /usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o mythrender_opengl1.o mythrender_opengl1.cpp
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::Init2DState()':
mythrender_opengl1.cpp:33:18: error: 'GL_FLAT' was not declared in this scope
     glShadeModel(GL_FLAT);
                  ^~~~~~~
mythrender_opengl1.cpp:33:25: error: 'glShadeModel' was not declared in this scope
     glShadeModel(GL_FLAT);
                         ^
mythrender_opengl1.cpp:34:15: error: 'GL_POLYGON_SMOOTH' was not declared in this scope
     glDisable(GL_POLYGON_SMOOTH);
               ^~~~~~~~~~~~~~~~~
mythrender_opengl1.cpp:35:15: error: 'GL_LINE_SMOOTH' was not declared in this scope
     glDisable(GL_LINE_SMOOTH);
               ^~~~~~~~~~~~~~
mythrender_opengl1.cpp:36:15: error: 'GL_POINT_SMOOTH' was not declared in this scope
     glDisable(GL_POINT_SMOOTH);
               ^~~~~~~~~~~~~~~
mythrender_opengl1.cpp:37:37: error: 'glColor4f' was not declared in this scope
     glColor4f(0.0f, 0.0f, 0.0f, 0.0f);
                                     ^
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::SetColor(int, int, int, int)':
mythrender_opengl1.cpp:112:57: error: 'glColor4f' was not declared in this scope
     glColor4f(r / 255.0, g / 255.0, b / 255.0, a / 255.0);
                                                         ^
mythrender_opengl1.cpp: In member function 'virtual uint MythRenderOpenGL1::CreateHelperTexture()':
mythrender_opengl1.cpp:250:34: error: 'GL_RGBA16' was not declared in this scope
                                  GL_RGBA16, GL_NEAREST, GL_REPEAT);
                                  ^~~~~~~~~
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::SetMatrixView()':
mythrender_opengl1.cpp:291:18: error: 'GL_PROJECTION' was not declared in this scope
     glMatrixMode(GL_PROJECTION);
                  ^~~~~~~~~~~~~
mythrender_opengl1.cpp:291:31: error: 'glMatrixMode' was not declared in this scope
     glMatrixMode(GL_PROJECTION);
                               ^
mythrender_opengl1.cpp:292:20: error: 'glLoadIdentity' was not declared in this scope
     glLoadIdentity();
                    ^
mythrender_opengl1.cpp:294:76: error: 'glOrtho' was not declared in this scope
             m_viewport.top() + m_viewport.height(), m_viewport.top(), 1, -1);
                                                                            ^
mythrender_opengl1.cpp:295:18: error: 'GL_MODELVIEW' was not declared in this scope
     glMatrixMode(GL_MODELVIEW);
                  ^~~~~~~~~~~~
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::PushTransformation(const UIEffects&, QPointF&)':
mythrender_opengl1.cpp:302:18: error: 'glPushMatrix' was not declared in this scope
     glPushMatrix();
                  ^
mythrender_opengl1.cpp:303:45: error: 'glTranslatef' was not declared in this scope
     glTranslatef(center.x(), center.y(), 0.0);
                                             ^
mythrender_opengl1.cpp:304:37: error: 'glScalef' was not declared in this scope
     glScalef(fx.hzoom, fx.vzoom, 1.0);
                                     ^
mythrender_opengl1.cpp:305:32: error: 'glRotatef' was not declared in this scope
     glRotatef(fx.angle, 0, 0, 1);
                                ^
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::PopTransformation()':
mythrender_opengl1.cpp:313:17: error: 'glPopMatrix' was not declared in this scope
     glPopMatrix();
                 ^
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::DrawBitmapPriv(uint, const QRect*, const QRect*, uint, int, int, int, int)':
mythrender_opengl1.cpp:337:25: error: 'GL_VERTEX_ARRAY' was not declared in this scope
     glEnableClientState(GL_VERTEX_ARRAY);
                         ^~~~~~~~~~~~~~~
mythrender_opengl1.cpp:337:40: error: 'glEnableClientState' was not declared in this scope
     glEnableClientState(GL_VERTEX_ARRAY);
                                        ^
mythrender_opengl1.cpp:338:25: error: 'GL_TEXTURE_COORD_ARRAY' was not declared in this scope
     glEnableClientState(GL_TEXTURE_COORD_ARRAY);
                         ^~~~~~~~~~~~~~~~~~~~~~
mythrender_opengl1.cpp:342:66: error: 'glVertexPointer' was not declared in this scope
     glVertexPointer(2, GL_FLOAT, 0, m_textures[tex].m_vertex_data);
                                                                  ^
mythrender_opengl1.cpp:343:81: error: 'glTexCoordPointer' was not declared in this scope
     glTexCoordPointer(2, GL_FLOAT, 0, m_textures[tex].m_vertex_data + TEX_OFFSET);
                                                                                 ^
mythrender_opengl1.cpp:345:48: error: 'glDisableClientState' was not declared in this scope
     glDisableClientState(GL_TEXTURE_COORD_ARRAY);
                                                ^
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::DrawBitmapPriv(uint*, uint, const QRectF*, const QRectF*, uint)':
mythrender_opengl1.cpp:362:25: error: 'GL_VERTEX_ARRAY' was not declared in this scope
     glEnableClientState(GL_VERTEX_ARRAY);
                         ^~~~~~~~~~~~~~~
mythrender_opengl1.cpp:362:40: error: 'glEnableClientState' was not declared in this scope
     glEnableClientState(GL_VERTEX_ARRAY);
                                        ^
mythrender_opengl1.cpp:363:25: error: 'GL_TEXTURE_COORD_ARRAY' was not declared in this scope
     glEnableClientState(GL_TEXTURE_COORD_ARRAY);
                         ^~~~~~~~~~~~~~~~~~~~~~
mythrender_opengl1.cpp:376:68: error: 'glVertexPointer' was not declared in this scope
     glVertexPointer(2, GL_FLOAT, 0, m_textures[first].m_vertex_data);
                                                                    ^
mythrender_opengl1.cpp:377:83: error: 'glTexCoordPointer' was not declared in this scope
     glTexCoordPointer(2, GL_FLOAT, 0, m_textures[first].m_vertex_data + TEX_OFFSET);
                                                                                   ^
mythrender_opengl1.cpp:381:48: error: 'glDisableClientState' was not declared in this scope
     glDisableClientState(GL_TEXTURE_COORD_ARRAY);
                                                ^
mythrender_opengl1.cpp: In member function 'virtual void MythRenderOpenGL1::DrawRectPriv(const QRect&, const QBrush&, const QPen&, int)':
mythrender_opengl1.cpp:391:25: error: 'GL_VERTEX_ARRAY' was not declared in this scope
     glEnableClientState(GL_VERTEX_ARRAY);
                         ^~~~~~~~~~~~~~~
mythrender_opengl1.cpp:391:40: error: 'glEnableClientState' was not declared in this scope
     glEnableClientState(GL_VERTEX_ARRAY);
                                        ^
mythrender_opengl1.cpp:404:49: error: 'glVertexPointer' was not declared in this scope
         glVertexPointer(2, GL_FLOAT, 0, vertices);
                                                 ^
mythrender_opengl1.cpp:417:49: error: 'glVertexPointer' was not declared in this scope
         glVertexPointer(2, GL_FLOAT, 0, vertices);
                                                 ^
mythrender_opengl1.cpp:421:41: error: 'glDisableClientState' was not declared in this scope
     glDisableClientState(GL_VERTEX_ARRAY);
                                         ^
make[2]: *** [Makefile:3023: mythrender_opengl1.o] Error 1
make[2]: Leaving directory '/home/alarm/mythtv/mythtv/libs/libmythui'
make[1]: *** [Makefile:204: sub-libmythui-make_first] Error 2
make[1]: Leaving directory '/home/alarm/mythtv/mythtv/libs'
make: *** [Makefile:67: libs] Error 2

Attachments (0)

Change History (15)

comment:1 Changed 5 months ago by pbennett

  • Owner set to pbennett
  • Status changed from new to assigned

comment:2 Changed 5 months ago by pbennett

It looks like you have an incorrect gl.h

You can install the dependencies by using ansible

https://github.com/MythTV/ansible

for more instructions on building see here

https://www.mythtv.org/wiki/Build_from_Source

It includes details for Raspberry Pi.

comment:3 Changed 4 months ago by pbennett

  • Resolution set to Invalid
  • Status changed from assigned to closed

comment:4 Changed 4 months ago by jplum@…

I would beg to differ. This is the PKGBUILD, and build log from the distribution: https://github.com/archlinuxarm/PKGBUILDs/blob/master/community/mythtv/PKGBUILD https://archlinuxarm.org/builder/in-log/mythtv-0.28.1-6-armv7.log.html.gz

We have mesa 17.1.1, which includes: /usr/include/GL/gl.h /usr/include/GLES/gl.h

The log I have attached is for ARMv7 which is CPU armv7-a, and we have OpenGL/ES enabled (by not explicitly disabling it).

I see this as well, but I have checked inside the build chroot as the package was running to confirm that the various files are indeed in place. If you could give specific feedback as to how the files are inappropriate in some manner, we'll work to resolve that.

comment:5 Changed 4 months ago by pbennett

  • Resolution Invalid deleted
  • Status changed from closed to new

I will reopen the ticket and I can work with you to find what is going wrong. It may be a couple of weeks before I can get to it.

comment:6 Changed 4 months ago by pbennett

  • Status changed from new to assigned

comment:7 Changed 4 months ago by eliteforce82nd@…

Sorry I haven't been able to contribute much to this ticket or offer an update. I've been having performance problems with arch arm on my PI's. Display manager is choppy and laggy, slow input performance. Also desktop environments suffer the same like Xfce, Mate, LXDE. Plasma and LXQT is the only ones that has somewhat decent performance.

I think this may be related to mesa and X11 since QT based DE and display managers work decently.

Right now I can't get mythfrontend to work on arch arm or xubuntu, so stuck with raspbian for my frontends.

Hindsight, I should have never updated.

comment:8 Changed 4 months ago by stuarta

Good news is i've build an rpi3 version of this and can reproduce the error.

It's odd though, because the correct headers are in place from the mesa package which define the missing declarations.

comment:9 Changed 3 months ago by Stuart Auchterlonie <stuarta@…>

In 05ad15bab9c11b7f102efc42a435406d7d0157c9/mythtv:

Refs #13031 - Reorganise the OpenGL includes a bit to fix build issues on arch on rpi

comment:10 Changed 3 months ago by Stuart Auchterlonie <stuarta@…>

comment:11 Changed 3 months ago by Stuart Auchterlonie <stuarta@…>

In 6a683aff7834054238413e83b0cf3f832f91cacb/mythtv:

Refs #13031 - Reorganise the OpenGL includes a bit to fix build issues on arch on rpi

(cherry picked from commit 05ad15bab9c11b7f102efc42a435406d7d0157c9)

comment:12 Changed 3 months ago by Stuart Auchterlonie <stuarta@…>

comment:13 Changed 3 months ago by stuarta

  • Resolution set to Fixed
  • Status changed from assigned to closed

Patches merged to fixes/0.28, so this is now resolved.

comment:14 Changed 3 months ago by stuarta

  • Milestone changed from unknown to 0.28.2
  • Owner changed from pbennett to stuarta

comment:15 Changed 3 months ago by eliteforce82nd@…

  • Resolution Fixed deleted
  • Status changed from closed to new

Still can't compile mythtv on archarm.

Seems to multiple headers being included creating conflict.

make[2]: Leaving directory '/home/alarm/mythtv/mythtv/libs/libmythmpeg2'
cd libmythui/ && ( test -e Makefile || /usr/bin/qmake-qt5 -o Makefile /home/alarm/mythtv/mythtv/libs/libmythui/libmythui.pro QMAKE=/usr/bin/qmake-qt5 ) && make -f Makefile 
make[2]: Entering directory '/home/alarm/mythtv/mythtv/libs/libmythui'
g++ -c -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -march=armv7-a -DNDEBUG -fomit-frame-pointer -fPIC -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -pthread -g -Wall -Wpointer-arith -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -fvisibility-inlines-hidden -Wmissing-declarations -Wno-switch -Woverloaded-virtual -funit-at-a-time -fvisibility=hidden -std=gnu++11 -D_REENTRANT -fPIC -D_GNU_SOURCE -DUSING_VDPAU -DUSING_X11 -DUSING_DBUS -DUSE_JOYSTICK_MENU -DUSE_LIRC -DUSING_XRANDR -DUSE_OPENGL_PAINTER -DUSING_QTWEBKIT -DMUI_API -DQT_OPENGL_LIB -DQT_WEBKITWIDGETS_LIB -DQT_WIDGETS_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_SQL_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -isystem /usr/include/libxml2 -isystem /usr/include/X11 -I../libmythbase -I../.. -I.. -I../../external/FFmpeg -isystem /usr/include/qt -isystem /usr/include/qt/QtOpenGL -isystem /usr/include/qt/QtWebKitWidgets -isystem /usr/include/qt/QtWidgets -isystem /usr/include/qt/QtWebKit -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtXml -isystem /usr/include/qt/QtSql -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtDBus -isystem /usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o mythrender_opengl.o mythrender_opengl.cpp
In file included from /usr/include/GL/gl.h:2055:0,
                 from mythrender_opengl1.h:7,
                 from mythrender_opengl.cpp:24:
/usr/include/GL/glext.h:468:19: error: conflicting declaration 'typedef ptrdiff_t GLsizeiptr'
 typedef ptrdiff_t GLsizeiptr;
                   ^~~~~~~~~~
In file included from /usr/include/qt/QtGui/qopengl.h:107:0,
                 from /usr/include/qt/QtOpenGL/qgl.h:45,
                 from /usr/include/qt/QtOpenGL/QGLContext:1,
                 from mythrender_opengl.h:11,
                 from mythrender_opengl.cpp:1:
/usr/include/GLES3/gl3.h:73:25: note: previous declaration as 'typedef khronos_ssize_t GLsizeiptr'
 typedef khronos_ssize_t GLsizeiptr;
                         ^~~~~~~~~~
In file included from /usr/include/GL/gl.h:2055:0,
                 from mythrender_opengl1.h:7,
                 from mythrender_opengl.cpp:24:
/usr/include/GL/glext.h:469:19: error: conflicting declaration 'typedef ptrdiff_t GLintptr'
 typedef ptrdiff_t GLintptr;
                   ^~~~~~~~
In file included from /usr/include/qt/QtGui/qopengl.h:107:0,
                 from /usr/include/qt/QtOpenGL/qgl.h:45,
                 from /usr/include/qt/QtOpenGL/QGLContext:1,
                 from mythrender_opengl.h:11,
                 from mythrender_opengl.cpp:1:
/usr/include/GLES3/gl3.h:74:26: note: previous declaration as 'typedef khronos_intptr_t GLintptr'
 typedef khronos_intptr_t GLintptr;
                          ^~~~~~~~
make[2]: *** [Makefile:2823: mythrender_opengl.o] Error 1
make[2]: Leaving directory '/home/alarm/mythtv/mythtv/libs/libmythui'
make[1]: *** [Makefile:206: sub-libmythui-make_first] Error 2
make[1]: Leaving directory '/home/alarm/mythtv/mythtv/libs'
make: *** [Makefile:67: libs] Error 2

Add Comment

Modify Ticket

Action
as new The owner will remain stuarta.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.