Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-71555

Can't compile qtwebengine on ARM: safe_conversions_arm_impl.h not found

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P2: Important
    • None
    • 5.12.0 Beta 3
    • WebEngine
    • None
    • ARM32 via docker and qemu on x86.
    • Linux/X11

    Description

      I can't compile Qt 5.12.0 on ARM32 because safe_conversions_arm_impl.h is missing in a 3rdparty lib.

      [2/172] CXX base/json/json_parser.o
      FAILED: base/json/json_parser.o 
      c++ -MMD -MF base/json/json_parser.o.d  -I/opt/qt5/qtwebengine/src/3rdparty/gn -I/opt/qt5/qtwebengine/src/3rdparty/gn/out/Release -DNDEBUG -O3 -fdata-sections -ffunction-sections -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -std=c++14 -Wno-c++11-narrowing -c /opt/qt5/qtwebengine/src/3rdparty/gn/base/json/json_parser.cc -o base/json/json_parser.o
      In file included from /opt/qt5/qtwebengine/src/3rdparty/gn/base/json/json_parser.cc:13:
      /opt/qt5/qtwebengine/src/3rdparty/gn/base/numerics/safe_conversions.h:17:10: fatal error: base/numerics/safe_conversions_arm_impl.h: No such file or directory
       #include "base/numerics/safe_conversions_arm_impl.h"
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      

       
      In Qt 1.11.2 this file is in qtwebengine-chromium.git/tree/chromium/base/numerics:

      http://code.qt.io/cgit/qt/qtwebengine-chromium.git/tree/chromium/base/numerics?h=v5.11.2

      In Qt 1.12.0 the numerics dir is in qtwebengine-chromium.git/tree/gn/base/numerics and the ARM file is missing:

      http://code.qt.io/cgit/qt/qtwebengine-chromium.git/tree/gn/base/numerics?h=v5.12.0-beta3
       

      You can reproduce this via docker and qemu on X86. Install docker and qemu-user-static.
       

      $ docker run -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static --rm -ti arm32v7/gcc:latest
      

      Execute in the docker container:

      $ export QT_VERSION=5.12.0
      $ export Qt5_DIR=/usr/local/Qt-$QT_VERSION
      $ export LD_LIBRARY_PATH=/usr/local/lib:$Qt5_DIR/lib/
      $ export PATH=$PATH:$Qt5_DIR/bin
      $ apt-get update \
      	&& apt-get upgrade -y \
      	&& apt-get install -y \
      		cmake \
      		python-dev \
      		libxml2-dev \
      		libxslt-dev \
      		libgtest-dev \
      		libxcb-xinerama0-dev \
      		libssl-dev \
      		libxcursor-dev \
      		libxcomposite-dev \
      		libxdamage-dev \
      		libxrandr-dev \
      		libdbus-1-dev \
      		libfontconfig1-dev \
      		libcap-dev \
      		libxtst-dev \
      		libpulse-dev \
      		libudev-dev \
      		libpci-dev \
      		libnss3-dev \
      		libasound2-dev \
      		libxss-dev \
      		libgstreamer1.0-dev \
      		libgstreamer-plugins-base1.0-dev \
      		adwaita-icon-theme \
      		autopoint \
      		bsdmainutils \
      		build-essential \
      		dconf-gsettings-backend \
      		dconf-service \
      		debhelper \
      		dh-autoreconf \
      		dh-strip-nondeterminism \
      		firebird-dev \
      		firebird3.0-common \
      		firebird3.0-common-doc \
      		freetds-common \
      		freetds-dev \
      		gdb \
      		gettext \
      		gettext-base \
      		gir1.2-atk-1.0 \
      		gir1.2-atspi-2.0 \
      		gir1.2-gst-plugins-base-1.0 \
      		gir1.2-gstreamer-1.0 \
      		gir1.2-gtk-3.0 \
      		gir1.2-pango-1.0 \
      		glib-networking \
      		glib-networking-common \
      		glib-networking-services \
      		groff-base \
      		gsettings-desktop-schemas \
      		intltool-debian \
      		iso-codes \
      		libarchive-zip-perl \
      		libasound2 \
      		libasound2-data \
      		libasyncns0 \
      		libcupsimage2-dev \
      		libdconf1 \
      		libatk-bridge2.0-0 \
      		libatk-bridge2.0-dev \
      		libatk1.0-dev \
      		libatspi2.0-0 \
      		libatspi2.0-dev \
      		libbabeltrace-ctf1 \
      		libbabeltrace1 \
      		libcap2-bin \
      		libcolord2 \
      		libct4 \
      		libcups2-dev \
      		libcupsimage2 \
      		libdouble-conversion-dev \
      		libdouble-conversion1 \
      		libdrm-dev \
      		libdrm2 \
      		libdw1 \
      		libegl1-mesa \
      		libepoxy-dev \
      		libepoxy0 \
      		libevdev2 \
      		libfbclient2 \
      		libfile-stripnondeterminism-perl \
      		libflac8 \
      		libgbm-dev \
      		libgbm1 \
      		libgl1-mesa-dev \
      		libgl1-mesa-glx \
      		libglapi-mesa \
      		libgles2-mesa \
      		libgles2-mesa-dev \
      		libglu1-mesa \
      		libglu1-mesa-dev \
      		libgraphite2-dev \
      		libgstreamer-plugins-base1.0-0 \
      		libgstreamer1.0-0 \
      		libgtk-3-0 \
      		libgtk-3-common \
      		libgtk-3-dev \
      		libgudev-1.0-0 \
      		libib-util \
      		libinput-bin \
      		libinput-dev \
      		libinput10 \
      		libjson-glib-1.0-0 \
      		libjson-glib-1.0-common \
      		libmtdev-dev \
      		libmtdev1 \
      		libodbc1 \
      		libogg0 \
      		liborc-0.4-0 \
      		libpango1.0-dev \
      		libpangoxft-1.0-0 \
      		libpciaccess0 \
      		libpipeline1 \
      		libpopt0 \
      		libproxy-dev \
      		libproxy1v5 \
      		libpulse-mainloop-glib0 \
      		libpulse0 \
      		libpython3.5 \
      		librest-0.7-0 \
      		libsndfile1 \
      		libsoup-gnome2.4-1 \
      		libsoup2.4-1 \
      		libsybdb5 \
      		libtimedate-perl \
      		libtommath1 \
      		libvorbis0a \
      		libvorbisenc2 \
      		libwacom-common \
      		libwacom2 \
      		libwayland-bin \
      		libwayland-client0 \
      		libwayland-cursor0 \
      		libwayland-dev \
      		libwayland-egl1-mesa \
      		libwayland-server0 \
      		libwrap0 \
      		libx11-xcb-dev \
      		libx11-xcb1 \
      		libxcb-dri2-0 \
      		libxcb-dri2-0-dev \
      		libxcb-dri3-0 \
      		libxcb-dri3-dev \
      		libxcb-glx0 \
      		libxcb-glx0-dev \
      		libxcb-icccm4 \
      		libxcb-icccm4-dev \
      		libxcb-image0 \
      		libxcb-image0-dev \
      		libxcb-keysyms1 \
      		libxcb-keysyms1-dev \
      		libxcb-present-dev \
      		libxcb-present0 \
      		libxcb-randr0 \
      		libxcb-randr0-dev \
      		libxcb-render-util0 \
      		libxcb-render-util0-dev \
      		libxcb-shape0 \
      		libxcb-shape0-dev \
      		libxcb-sync-dev \
      		libxcb-sync1 \
      		libxcb-util0 \
      		libxcb-xfixes0 \
      		libxcb-xfixes0-dev \
      		libxcb-xinerama0 \
      		libxcb-xkb-dev \
      		libxcb-xkb1 \
      		libegl1-mesa-dev \
      		gperf \
      		bison \
      		libxfixes-dev \
      		libxft-dev \
      		libxft2 \
      		libxi-dev \
      		libxinerama-dev \
      		libxkbcommon-dev \
      		libxkbcommon-x11-0 \
      		libxkbcommon-x11-dev \
      		libxkbcommon0 \
      		libxshmfence-dev \
      		libxshmfence1 \
      		libxtst6 \
      		libxxf86vm-dev \
      		libxxf86vm1 \
      		man-db \
      		mesa-common-dev \
      		odbcinst \
      		odbcinst1debian2 \
      		pkg-kde-tools \
      		po-debconf \
      		publicsuffix \
      		unixodbc-dev \
      		wayland-protocols \
      		x11proto-composite-dev \
      		x11proto-damage-dev \
      		x11proto-dri2-dev \
      		x11proto-fixes-dev \
      		x11proto-gl-dev \
      		x11proto-randr-dev \
      		x11proto-record-dev \
      		x11proto-xf86vidmode-dev \
      		x11proto-xinerama-dev \
      		xkb-data \
      		libpcre2-dev \
      		flex \
      	&& apt-get clean \
      	&& cd /opt \
      	&& git clone https://code.qt.io/qt/qt5.git \
      	&& cd qt5 \
      	&& git checkout origin/$QT_VERSION \
      	&& perl init-repository \
      	&& ./configure -opensource -nomake examples -nomake tests \
                  -confirm-license \
      	&& make -j8
      

      The compilation will take a long time! (~8h)

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              qt_webengine_team Qt WebEngine Team
              bebuch Benjamin Buch
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes