Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Unsolved Cross compilation and Qt configuration issue with Xlib

    General and Desktop
    cross compile
    2
    4
    1094
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • X
      X-Krys last edited by X-Krys

      I'm trying to configure Qt to cross compile it for a different OS (Debian Stretch) than my host.

      I built a toolchain using Crosstool-NG and have a copy of my target sysroot on my host.

      I can't manage to get the EGLFS on X11 feature since Xlib test fails at config time.

      Here the configure output:

      Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
      Building for: devices/linux-generic-g++ (x86_64, CPU features: mmx sse sse2)
      Target compiler: gcc 8.2.0
      Configuration: cross_compile use_gold_linker sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples enable_new_dtags f16c largefile precompile_header rdrnd shani x86SimdAlways shared rpath release c++11 c++14 c++1z concurrent dbus reduce_exports reduce_relocations stl
      Build options:
        Mode ................................... release
        Optimize release build for size ........ no
        Building shared libraries .............. yes
        Using C standard ....................... C11
        Using C++ standard ..................... C++1z
        Using ccache ........................... no
        Using gold linker ...................... yes
        Using new DTAGS ........................ yes
        Using precompiled headers .............. yes
        Using LTCG ............................. no
        Target compiler supports:
          SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
          AVX .................................. AVX AVX2
          AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI
          Other x86 ............................ AES F16C RDRAND SHA
          Intrinsics without -mXXX option ...... yes
        Build parts ............................ libs
      Qt modules and options:
        Qt Concurrent .......................... yes
        Qt D-Bus ............................... yes
        Qt D-Bus directly linked to libdbus .... no
        Qt Gui ................................. yes
        Qt Network ............................. yes
        Qt Sql ................................. yes
        Qt Testlib ............................. yes
        Qt Widgets ............................. yes
        Qt Xml ................................. yes
      Support enabled for:
        Using pkg-config ....................... yes
        udev ................................... yes
        Using system zlib ...................... yes
      Qt Core:
        DoubleConversion ....................... yes
          Using system DoubleConversion ........ no
        GLib ................................... yes
        iconv .................................. no
        ICU .................................... yes
        Tracing backend ........................ <none>
        Logging backends:
          journald ............................. yes
          syslog ............................... no
          slog2 ................................ no
        Using system PCRE2 ..................... no
      Qt Network:
        getifaddrs() ........................... yes
        IPv6 ifname ............................ yes
        libproxy ............................... no
        Linux AF_NETLINK ....................... yes
        OpenSSL ................................ yes
          Qt directly linked to OpenSSL ........ no
        OpenSSL 1.1 ............................ yes
        DTLS ................................... yes
        SCTP ................................... no
        Use system proxies ..................... yes
      Qt Gui:
        Accessibility .......................... yes
        FreeType ............................... yes
          Using system FreeType ................ yes
        HarfBuzz ............................... yes
          Using system HarfBuzz ................ no
        Fontconfig ............................. yes
        Image formats:
          GIF .................................. yes
          ICO .................................. yes
          JPEG ................................. yes
            Using system libjpeg ............... no
          PNG .................................. yes
            Using system libpng ................ yes
        EGL .................................... yes
        OpenVG ................................. no
        OpenGL:
          Desktop OpenGL ....................... yes
          OpenGL ES 2.0 ........................ no
          OpenGL ES 3.0 ........................ no
          OpenGL ES 3.1 ........................ no
          OpenGL ES 3.2 ........................ no
        Vulkan ................................. no
        Session Management ..................... yes
      Features used by QPA backends:
        evdev .................................. yes
        libinput ............................... yes
        INTEGRITY HID .......................... no
        mtdev .................................. no
        tslib .................................. no
        xkbcommon .............................. yes
        X11 specific:
          XLib ................................. no
          XCB Xlib ............................. no
          EGL on X11 ........................... no
      QPA backends:
        DirectFB ............................... no
        EGLFS .................................. yes
        EGLFS details:
          EGLFS OpenWFD ........................ no
          EGLFS i.Mx6 .......................... no
          EGLFS i.Mx6 Wayland .................. no
          EGLFS RCAR ........................... no
          EGLFS EGLDevice ...................... yes
          EGLFS GBM ............................ no
          EGLFS VSP2 ........................... no
          EGLFS Mali ........................... no
          EGLFS Raspberry Pi ................... no
          EGLFS X11 ............................ no
        LinuxFB ................................ yes
        VNC .................................... yes
        Mir client ............................. no
        XCB:
          Using system-provided XCB libraries .. no
          XCB XKB .............................. no
          XCB XInput ........................... yes
          Native painting (experimental) ....... no
          GL integrations:
            GLX Plugin ......................... no
            EGL-X11 Plugin ..................... no
      Qt Sql:
        SQL item models ........................ yes
      Qt Widgets:
        GTK+ ................................... no
        Styles ................................. Fusion Windows
      Qt PrintSupport:
        CUPS ................................... no
      Qt Sql Drivers:
        DB2 (IBM) .............................. no
        InterBase .............................. no
        MySql .................................. no
        OCI (Oracle) ........................... no
        ODBC ................................... no
        PostgreSQL ............................. no
        SQLite2 ................................ no
        SQLite ................................. yes
          Using system provided SQLite ......... no
        TDS (Sybase) ........................... no
      Qt Testlib:
        Tester for item models ................. yes
      Qt SerialBus:
        Socket CAN ............................. yes
        Socket CAN FD .......................... yes
      Qt QML:
        QML network support .................... yes
        QML debugging and profiling support .... yes
        QML sequence object .................... yes
        QML list model ......................... yes
        QML XML http request ................... yes
        QML Locale ............................. yes
        QML delegate model ..................... yes
      Qt Quick:
        Direct3D 12 ............................ no
        AnimatedImage item ..................... yes
        Canvas item ............................ yes
        Support for Qt Quick Designer .......... yes
        Flipable item .......................... yes
        GridView item .......................... yes
        ListView item .......................... yes
        TableView item ......................... yes
        Path support ........................... yes
        PathView item .......................... yes
        Positioner items ....................... yes
        Repeater item .......................... yes
        ShaderEffect item ...................... yes
        Sprite item ............................ yes
      Qt Scxml:
        ECMAScript data model for QtScxml ...... yes
      Qt Gamepad:
        SDL2 ................................... no
      Qt 3D:
        Assimp ................................. yes
        System Assimp .......................... no
        Output Qt3D Job traces ................. no
        Output Qt3D GL traces .................. no
        Use SSE2 instructions .................. yes
        Use AVX2 instructions .................. no
        Aspects:
          Render aspect ........................ yes
          Input aspect ......................... yes
          Logic aspect ......................... yes
          Animation aspect ..................... yes
          Extras aspect ........................ yes
      Qt 3D Renderers:
        OpenGL Renderer ........................ yes
      Qt 3D GeometryLoaders:
        Autodesk FBX ........................... no
      Qt Wayland Drivers:
        EGL .................................... yes
        Raspberry Pi ........................... no
        XComposite EGL ......................... no
        XComposite GLX ......................... no
        DRM EGL ................................ yes
        libhybris EGL .......................... no
        Shm emulation server buffer integration . yes
      Qt Wayland Client ........................ yes
      Qt Wayland Compositor .................... yes
      Qt Wayland Compositor Layer Plugins:
        VSP2 hardware layer integration ........ no
      Qt Bluetooth:
        BlueZ .................................. no
        BlueZ Low Energy ....................... no
        Linux Crypto API ....................... no
        WinRT Bluetooth API (desktop & UWP) .... no
      Qt Sensors:
        sensorfw ............................... no
      Qt Quick Controls 2:
        Styles ................................. Default Fusion Imagine Material Universal
      Qt Quick Templates 2:
        Hover support .......................... yes
        Multi-touch support .................... yes
      Qt Positioning:
        Gypsy GPS Daemon ....................... no
        WinRT Geolocation API .................. no
      Qt Location:
        Qt.labs.location experimental QML plugin . yes
        Geoservice plugins:
          OpenStreetMap ........................ yes
          HERE ................................. yes
          Esri ................................. yes
          Mapbox ............................... yes
          MapboxGL ............................. yes
          Itemsoverlay ......................... yes
      QtXmlPatterns:
        XML schema support ..................... yes
      Qt Multimedia:
        ALSA ................................... no
        GStreamer 1.0 .......................... yes
        GStreamer 0.10 ......................... no
        Video for Linux ........................ yes
        OpenAL ................................. no
        PulseAudio ............................. yes
        Resource Policy (libresourceqt5) ....... no
        Windows Audio Services ................. no
        DirectShow ............................. no
        Windows Media Foundation ............... no
      Qt Tools:
        QDoc ................................... no
      Qt WebEngine:
        Embedded build ......................... yes
        Pepper Plugins ......................... no
        Printing and PDF ....................... no
        Proprietary Codecs ..................... no
        Spellchecker ........................... yes
        Native Spellchecker .................... no
        WebRTC ................................. no
        Use System Ninja ....................... no
        Geolocation ............................ yes
        WebChannel support ..................... yes
        Use v8 snapshot ........................ yes
        Kerberos Authentication ................ no
        Building v8 snapshot supported ......... yes
        Use ALSA ............................... no
        Use PulseAudio ......................... yes
        Optional system libraries used:
          re2 .................................. no
          icu .................................. no
          libwebp, libwebpmux and libwebpdemux . no
          opus ................................. no
          ffmpeg ............................... no
          libvpx ............................... no
          snappy ............................... no
          glib ................................. yes
          zlib ................................. yes
          minizip .............................. no
          libevent ............................. no
          jsoncpp .............................. no
          protobuf ............................. no
          libxml2 and libxslt .................. no
          lcms2 ................................ no
          png .................................. yes
          JPEG ................................. no
          harfbuzz ............................. no
          freetype ............................. yes
          x11 .................................. yes
        Required system libraries:
          fontconfig ........................... yes
          dbus ................................. no
          nss .................................. no
          khr .................................. yes
          glibc ................................ yes
        Required system libraries for qpa-xcb:
          libdrm ............................... yes
          xcomposite ........................... no
          xcursor .............................. no
          xi ................................... yes
          xrandr ............................... no
          xtst ................................. no
      
      Note: Also available for Linux: linux-clang linux-icc
      
      Note: PKG_CONFIG_LIBDIR automatically set to /home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/pkgconfig:/home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/share/pkgconfig:/home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/pkgconfig
      
      Note: PKG_CONFIG_SYSROOT_DIR automatically set to /home/e381734/workspace/qt/cross-compile/debian/sysroot
      
      Note: journald, syslog or slog2 integration is enabled.
      If your users intend to develop applications against this build,
      ensure that the IDEs they use either set QT_FORCE_STDERR_LOGGING to 1
      or are able to read the logged output from journald, syslog or slog2.
      
      Note: Disabling X11 Accessibility Bridge: D-Bus or AT-SPI is missing.
      
      WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
      
      Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation.
      On Linux systems you may be able to install libclang from a package. On macOS you could use Homebrew's llvm package.
      On Windows you need to set LLVM_INSTALL_DIR to the installation path.
      

      Here is the xlib config test verbose output:

      Using built-in specs.
      COLLECT_GCC=/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/bin/x86_64-linux-gnu-g++
      COLLECT_LTO_WRAPPER=/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/libexec/gcc/x86_64-linux-gnu/8.2.0/lto-wrapper
      Target: x86_64-linux-gnu
      Configured with: /home/e381734/workspace/toolchain/x86_64-linux-gnu-8.2.0/.build/x86_64-linux-gnu/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=x86_64-linux-gnu --prefix=/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0 --with-sysroot=/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/x86_64-linux-gnu/sysroot --enable-languages=c,c++ --with-pkgversion='crosstool-NG 1.23.0.588-0364e3c' --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --enable-libmpx --with-gmp=/home/e381734/workspace/toolchain/x86_64-linux-gnu-8.2.0/.build/x86_64-linux-gnu/buildtools --with-mpfr=/home/e381734/workspace/toolchain/x86_64-linux-gnu-8.2.0/.build/x86_64-linux-gnu/buildtools --with-mpc=/home/e381734/workspace/toolchain/x86_64-linux-gnu-8.2.0/.build/x86_64-linux-gnu/buildtools --with-isl=/home/e381734/workspace/toolchain/x86_64-linux-gnu-8.2.0/.build/x86_64-linux-gnu/buildtools --disable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' --enable-threads=posix --enable-target-optspace --with-linker-hash-style=both --disable-plugin --disable-nls --disable-multilib --with-local-prefix=/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/x86_64-linux-gnu/sysroot --enable-long-long --enable-multiarch
      Thread model: posix
      gcc version 8.2.0 (crosstool-NG 1.23.0.588-0364e3c) 
      COMPILER_PATH=/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/libexec/gcc/x86_64-linux-gnu/8.2.0/:/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/libexec/gcc/x86_64-linux-gnu/8.2.0/:/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/libexec/gcc/x86_64-linux-gnu/:/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/:/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/:/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/../../../../x86_64-linux-gnu/bin/
      LIBRARY_PATH=/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/:/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/../../../../x86_64-linux-gnu/lib/../lib64/:/home/e381734/workspace/qt/cross-compile/debian/sysroot/lib/x86_64-linux-gnu/:/home/e381734/workspace/qt/cross-compile/debian/sysroot/lib/../lib64/:/home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/:/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/../../../../x86_64-linux-gnu/lib/:/home/e381734/workspace/qt/cross-compile/debian/sysroot/lib/:/home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/
      COLLECT_GCC_OPTIONS='-v' '-fuse-ld=gold' '-o' 'xlib' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
       /home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/libexec/gcc/x86_64-linux-gnu/8.2.0/collect2 --sysroot=/home/e381734/workspace/qt/cross-compile/debian/sysroot --eh-frame-hdr --hash-style=both -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -fuse-ld=gold -o xlib /home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/crt1.o /home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/crti.o /home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/crtbegin.o -L/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0 -L/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/../../../../x86_64-linux-gnu/lib/../lib64 -L/home/e381734/workspace/qt/cross-compile/debian/sysroot/lib/x86_64-linux-gnu -L/home/e381734/workspace/qt/cross-compile/debian/sysroot/lib/../lib64 -L/home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu -L/home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/../../../../x86_64-linux-gnu/lib -L/home/e381734/workspace/qt/cross-compile/debian/sysroot/lib -L/home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib -O1 main.o /home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/libXext.so /home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/libX11.so /home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/libm.so -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /home/e381734/x-tools/x86_64-linux-gnu-gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/crtend.o /home/e381734/workspace/qt/cross-compile/debian/sysroot/usr/lib/x86_64-linux-gnu/crtn.o
      /lib/x86_64-linux-gnu/libm.so.6: error: undefined reference to '__strtof128_nan', version 'GLIBC_PRIVATE'
      collect2: error: ld returned 1 exit status
      

      I checked the symbols in libm with :

      strings ~/workspace/qt/cross-compile/debian/sysroot/lib/x86_64-linux-gnu/libm.so.6 | grep __strtof128_nan
      

      and as the error says it's missing __strtof128_nan.

      Any idea about this error ?

      Thanks in advance,

      X-Krys

      1 Reply Last reply Reply Quote 0
      • SGaist
        SGaist Lifetime Qt Champion last edited by

        Hi,

        Out of curiosity what is your host machine that you need to cross-compile to a x86_64 target ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply Reply Quote 1
        • X
          X-Krys last edited by X-Krys

          Actually it is also a x86_64 machine, it just about a cross OS compilation not a regular cross architecture compilation.

          I know I could do a chroot build for instance but I guess it should be doable the cross compilation way.

          Afterall it is just about a toolchain and a sysroot.

          I'm trying to figure out what is the issue with my build environment that lead me to this error.

          By the way just the xlib compilation seems to fail, I can still do the qt build but the xcb qpa backend will be skipped.

          1 Reply Last reply Reply Quote 0
          • SGaist
            SGaist Lifetime Qt Champion last edited by

            The thing is, it seems to be looking at the libm.so.6 of your machine and not the one from the sysroot.

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply Reply Quote 0
            • First post
              Last post