qtbase の compile タスクが "invalid conversion" エラーで失敗する

エラーメッセージ

build/tmp/work/armv7a-vfp-neon-mx5-poky-linux-gnueabi/qtbase/5.2.1-r0/qtbase-opensource-src-5.2.1/src/plugins/platforms/xcb/qxcbconnection.cpp:280:45: error: invalid conversion from 'EGLNativeDisplayType {aka void*}' to 'Display* {aka _XDisplay*}' [-fpermissive]
         m_connection = XGetXCBConnection(dpy);
                                             ^

環境

  • Yocto 1.6.2 (daisy)
  • meta-qt5 (daisy, commit 23405d3a66c308e0b2ea64308b834285850c5c9f)

原因

amd-gpu-x11-bin-mx51 レシピによってインストールされた eglplatform.h が X11 非互換版のため

解決方法

amd-gpu-x11-bin-mx51 レシピに次の行をアペンドする。

do_install_append() {
    # eglplatform_1.4.h contains X11 compatible headers
    rm ${D}${includedir}/EGL/eglplatform.h
    mv ${D}${includedir}/EGL/eglplatform_1.4.h ${D}${includedir}/EGL/eglplatform.h
}

参考文献

amd-gpu-x11-mx51: use x11 compatible eglplatform.h (392154fc) · Commits · yocto / meta-fsl-arm · GitLab