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

QtWebEngine does not always set include paths correctly (i.e. fails for jpeglib.h)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • 5.13.2, 5.14.0, 5.14.1, 5.15.4
    • 5.13.0, 5.14.0
    • WebEngine
    • None
    • Linux/X11
    • 5ff6ecf1cabcc93700d7997c2e22e14a84743d33 (qt/qtwebengine/5.13)

    Description

      The build for QtWebEngine sometimes fails for us, and we have not yet found the underlying pattern. We build Qt with WebEngine against a recent official jpegturbo. This used to work for a long time, but recently it fails to build on Ubuntu Linux 18.04 x86_64 (same configuration works on CentOS 7 x86_64, MacOSX 10.13 and 10.14, and MSVC VS2017 and VS2019). Here is the error we get:

      [3590/15248] CC obj/third_party/iccjpeg/iccjpeg/iccjpeg.o
      FAILED: obj/third_party/iccjpeg/iccjpeg/iccjpeg.o
      /data/Tools/lib/ccache/gcc -MMD -MF obj/third_party/iccjpeg/iccjpeg/iccjpeg.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DNO_TCMALLOC -DCHROMIUM_BUILD -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_STDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DUSE_SYSTEM_LIBJPEG -Igen -I../../../../../qt5/qtwebengine/src/3rdparty/chromium -I../../../../../qt5/qtwebengine/src/3rdparty/chromium/third_party/iccjpeg -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -DDATE= -DTIME= -DTIMESTAMP_= -funwind-tables -fPIC -pipe -pthread -m64 -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-dangling-else -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -O0 -fno-omit-frame-pointer -g2 -fvisibility=hidden -std=gnu11 -c ../../../../../qt5/qtwebengine/src/3rdparty/chromium/third_party/iccjpeg/iccjpeg.c -o obj/third_party/iccjpeg/iccjpeg/iccjpeg.o
      In file included from ../../../../../qt5/qtwebengine/src/3rdparty/chromium/third_party/iccjpeg/iccjpeg.c:24:0:
      ../../../../../qt5/qtwebengine/src/3rdparty/chromium/third_party/iccjpeg/iccjpeg.h:26:10: fatal error: jpeglib.h: No such file or directory
      #include <jpeglib.h>
      ^~~~~~~~~~~
      compilation terminated.

      In my opinion this should not happen because this build line is somehow missing the include path to our thirdparty libraries. We pass this path explicitly to configure. And it used to work, and still works for many other libraries like png, zlib, libevent, nss, nspr and others:

      ../qt5/configure \
      -prefix "/data/Debug" \
      QMAKE_CFLAGS+="${CFLAGS} -ggdb3 -fno-omit-frame-pointer -O1 -m64 -march=nehalem -mtune=haswell" \
      QMAKE_CXXFLAGS+="${CXXFLAGS} -ggdb3 -fno-omit-frame-pointer -O1 -m64 -march=nehalem -mtune=haswell" \
      QMAKE_LFLAGS+="${LDFLAGS} m64 -Wl,-disable-new-dtags" \
      -no-rpath -R "/data/Debug/lib" -R "/data/Tools/lib" -R "/data/Tools/lib64" \
      -I "/data/Debug/include" \
      -L "/data/Debug/lib" \
      -I "/data/Debug/nspr/include" \
      -L "/data/Debug/nspr/lib" \
      -I "/data/Debug/nss/include" \
      -L "/data/Debug/nss/lib" \
      -I "/data/Tools/include" \
      -L "/data/Tools/lib" \
      -L "/data/Tools/lib64" \
      -sse2 -sse3 -ssse3 -sse4.1 -sse4.2 -no-avx -no-avx2 -no-avx512 -debug -platform linux-g++ -opensource -confirm-license -shared -icu -nomake examples -nomake tests -no-compile-examples -no-gif -no-pulseaudio -no-alsa -no-cups -no-gstreamer -skip qtactiveqt -skip qtcharts -skip qtconnectivity -skip qtspeech -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtpurchasing -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtvirtualkeyboard -skip qtwayland -no-webengine-alsa -no-webengine-icu -no-webengine-ffmpeg -no-webengine-opus -no-webengine-webp -no-webengine-printing-and-pdf -no-webengine-proprietary-codecs -no-webengine-pulseaudio -no-webengine-webrtc -no-webengine-geolocation -no-webengine-pepper-plugins -no-webengine-spellchecker -no-webengine-native-spellchecker -no-webengine-extensions -no-webengine-kerberos -webengine-webchannel -webengine-v8-snapshot -skip qtxmlpatterns -no-feature-movie -no-feature-big_codecs -feature-highdpiscaling -no-directfb -no-use-gold-linker -system-zlib -system-libpng -system-libjpeg -system-freetype -system-xcb -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite2 -no-sql-sqlite -no-sql-tds -no-journald -no-syslog -no-slog2 -opengl desktop -no-ssl -no-openssl -no-securetransport -no-libproxy -no-sctp -c+std c+14

      Attachments

        For Gerrit Dashboard: QTBUG-77827
        # Subject Branch Project Status CR V

        Activity

          People

            michal Michal Klocek
            emmenlau Mario Emmenlauer
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes