Native build 5.5.1 on RPI2: issue with qxcbeglwindow.cpp:85:81: error: invalid conversion



  • Hi,
    I'm trying to natively build 5.5.1 on RPI2. My OS is ArchLinux ARM.
    I'm using following configure:

    PYTHON=/usr/bin/python2 ./configure -confirm-license -opensource \
        -prefix /usr \
        -bindir /usr/lib/qt/bin \
        -docdir /usr/share/doc/qt \
        -headerdir /usr/include/qt \
        -archdatadir /usr/lib/qt \
        -datadir /usr/share/qt \
        -sysconfdir /etc/xdg \
        -examplesdir /usr/share/doc/qt/examples \
        -plugin-sql-{psql,mysql,sqlite,odbc} \
        -system-sqlite \
        -openssl-linked \
        -nomake examples \
        -nomake tests \
        -no-rpath \
        -optimized-qmake \
        -system-harfbuzz \
        -no-use-gold-linker \
        -no-reduce-relocations \
        -no-sse2 \
        -no-sse3 \
        -no-ssse3 \
        -no-sse4.1 \
        -no-sse4.2 \
        -no-avx \
        -no-avx2 \
        -opengl es2 \
        -skip qtwebengine \
        -device linux-rasp-pi2-g++ \
        -device-option CROSS_COMPILE=/usr/bin/ \
        -force-pkg-config \
        -verbose \
        -eglfs 
    

    Configure reports following:

     Build parts ............ libs
      Mode ................... release
      Using sanitizer(s)...... none
      Using C++11 ............ yes
      Using gold linker....... no
      Using new DTAGS ........ yes
      Using PCH .............. yes
      Target compiler supports:
        Neon ................. yes
    
    Qt modules and options:
      Qt D-Bus ............... yes (loading dbus-1 at runtime)
      Qt Concurrent .......... yes
      Qt GUI ................. yes
      Qt Widgets ............. yes
      Large File ............. yes
      QML debugging .......... yes
      Use system proxies ..... no
    
    Support enabled for:
      Accessibility .......... yes
      ALSA ................... no
      CUPS ................... yes
      Evdev .................. yes
      FontConfig ............. yes
      FreeType ............... yes (system library)
      Glib ................... yes
      GStreamer .............. yes (0.10)
      GTK theme .............. no
      HarfBuzz ............... yes (system library)
      Iconv .................. yes
      ICU .................... yes
      Image formats: 
        GIF .................. yes (plugin, using bundled copy)
        JPEG ................. yes (plugin, using system library)
        PNG .................. yes (in QtGui, using system library)
      journald ............... no
      libinput................ yes
      mtdev .................. yes (system library)
      Networking: 
        getaddrinfo .......... yes
        getifaddrs ........... yes
        IPv6 ifname .......... yes
        libproxy.............. yes
        OpenSSL .............. yes (linked to the libraries)
      NIS .................... yes
      OpenGL / OpenVG: 
        EGL .................. yes
        OpenGL ............... yes (OpenGL ES 2.0+)
        OpenVG ............... no
      PCRE ................... system
      pkg-config ............. yes 
      PulseAudio ............. yes
      QPA backends: 
        DirectFB ............. no
        EGLFS ................ yes
          EGLFS i.MX6....... . no
          EGLFS KMS .......... no
          EGLFS Mali ......... no
          EGLFS Raspberry Pi . yes
          EGLFS X11 .......... yes
        LinuxFB .............. yes
        XCB .................. yes (system library)
          EGL on X ........... yes
          GLX ................ yes
          MIT-SHM ............ yes
          Xcb-Xlib ........... yes
          Xcursor ............ yes (loaded at runtime)
          Xfixes ............. yes (loaded at runtime)
          Xi ................. no
          Xi2 ................ yes
          Xinerama ........... yes (loaded at runtime)
          Xrandr ............. yes (loaded at runtime)
          Xrender ............ yes
          XKB ................ yes
          XShape ............. yes
          XSync .............. yes
          XVideo ............. yes
      Session management ..... yes
      SQL drivers: 
        DB2 .................. no
        InterBase ............ yes (plugin)
        MySQL ................ yes (plugin)
        OCI .................. no
        ODBC ................. yes (plugin)
        PostgreSQL ........... yes (plugin)
        SQLite 2 ............. no
        SQLite ............... yes (plugin, using system library)
        TDS .................. no
      tslib .................. no
      udev ................... yes
      xkbcommon-x11........... yes (system library)
      xkbcommon-evdev......... yes
      zlib ................... yes (system library)
    

    Unfortunatelly build fails with following error:

    make[7]: Entering directory '/home/piotro/ABS/qt5.5/src/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_egl'
    /usr/bin/g++ -c -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -O2 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++0x -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_TSLIB -DXCB_USE_XLIB -DXCB_USE_XINPUT2 -DXCB_USE_RENDER -DXCB_USE_SM -DXCB_USE_XLIB -DQ_FONTCONFIGDATABASE -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_PLATFORMSUPPORT_LIB -DQT_XCB_QPA_LIB_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../gl_integrations -I../../../xcb -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I../../../../../../include -I../../../../../../include/QtPlatformSupport -I../../../../../../include/QtPlatformSupport/5.5.1 -I../../../../../../include/QtPlatformSupport/5.5.1/QtPlatformSupport -I../../../../../../include/QtGui/5.5.1 -I../../../../../../include/QtGui/5.5.1/QtGui -I/home/piotro/ABS/qt5.5/src/qt-everywhere-opensource-src-5.5.1/qtbase/include/QtQGui -I../../../../../../include/QtGui -I../../../../../../include/QtCore/5.5.1 -I../../../../../../include/QtCore/5.5.1/QtCore -I../../../../../../include/QtCore -I.moc -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I../../../../../../mkspecs/devices/linux-rasp-pi2-g++ -o .obj/qxcbeglwindow.o qxcbeglwindow.cpp
    qxcbeglwindow.cpp: In member function 'virtual void QXcbEglWindow::create()':
    qxcbeglwindow.cpp:85:81: error: invalid conversion from 'xcb_window_t {aka unsigned int}' to 'EGLNativeWindowType {aka void*}' [-fpermissive]
         m_surface = eglCreateWindowSurface(m_glIntegration->eglDisplay(), m_config, m_window, 0);
                                                                                     ^
    In file included from qxcbeglinclude.h:43:0,
                     from qxcbeglwindow.h:39,
                     from qxcbeglwindow.cpp:34:
    /opt/vc/include/EGL/egl.h:265:31: note:   initializing argument 3 of 'void* eglCreateWindowSurface(EGLDisplay, EGLConfig, EGLNativeWindowType, const EGLint*)'
     EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
                                   ^
    Makefile:1808: recipe for target '.obj/qxcbeglwindow.o' failed
    make[7]: *** [.obj/qxcbeglwindow.o] Error 1
    make[7]: Leaving directory '/home/piotro/ABS/qt5.5/src/qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_egl'
    Makefile:42: recipe for target 'sub-xcb_egl-make_first' failed
    make[6]: *** [sub-xcb_egl-make_first] Error 2
    

    I'm not sure is it problem of incompatibility between RPI2 EGL and X11 windowing or
    simply kind go bug in qxcbeglwindow.cpp?
    If it is incompatibility thing - is there possibility to selectively disable building EGL on X11 but leaving rest as "ON".

    Thx in advance for help!



  • Hmm...
    Really nobody can help here?
    Sad.....


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Are you following this guide ?



  • @SGaist
    Thx for replay.
    It's pleasure to be here!

    Regarding Native Build of Qt5 on a Raspberry Pi guide: yes. I'm basing on this.
    It is great that we have such guide. I'm following it and this allow me to prepare build environment (dependencies, etc) on ArchLinux ARM in a way that majority of Qt5.5 components can be build. I believe it is prove that my build environment is quite OK.

    Unfortunately building process fails with error I mention in OP.

    Now I'm in blocked mode as I don't know: is this (1)bug or rather (2)expected error because RPI EGL and X11 windowing incompatibility.

    I'm assuming it is rather (1) as configure process wants to build EGL on X11.
    If it wants do it then Qt developers assume this is possible......(or Qt configure wrongly wants do it platform on which it is impossible).

    So I need some clarification here.....
    -if it is bug then how to fix it
    -if RPI2 can't have EGL on X11 - how to selectively disable it.

    (I don't want to go with solutions like totally disabling xcb or egl)

    br

    Without help of somebody exactly knowing what is root cause I can't move forward


  • Lifetime Qt Champion

    Since it's the xcb module, I'd try to build with Qt's provided xcb.



  • Indeed, going with bundled xcb helps. I was able to successfully build whole 5.5.1
    My app works OK with EGLFS.
    This time EGL on X11 is disabled by configure automatically however.
    Thx for help!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.