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

Build fails due to type redefinition

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.12.5, 5.13.2, 5.14.0 Beta 1
    • 5.12.3
    • WebEngine
    • None
    • Linux x86_64 4.19.37_p6
      XFCE
      Qt 5.12.3
    • Linux/X11
    • 5c579b95c81388c9b596b209380a1a061718f5c6 (qt/qtwebengine/5.12)

    Description

      During build of component as part of source-based Linux distribution, ninja would fail with messaging:

      FAILED: obj/skia/skcms/skcms.o 
      /usr/bin/x86_64-pc-linux-gnu-g++ -MMD -MF obj/skia/skcms/skcms.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DOFFICIAL_BUILD -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen -I../../3rdparty/chromium -w -std=c11 -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-dangling-else -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -Wno-attributes -Wno-class-memaccess -Wno-subobject-linkage -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc -o obj/skia/skcms/skcms.o
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1955:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:92:11: error: redefinition of 'template<class T> T if_then_else(I32x8, T, T)'
         92 | SI ATTR T if_then_else(I32 c, T t, T e)
            |           ^~~~~~~~~~~~
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1911:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:92:11: note: 'template<class T> T if_then_else(I32x8, T, T)' previously declared here
         92 | SI ATTR T if_then_else(I32 c, T t, T e)
            |           ^~~~~~~~~~~~
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1955:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:502:6: error: redefinition of 'void clut(const skcms_A2B*, I32x8, I32x8, Fx8*, Fx8*, Fx8*, Fx8) [with int I = 0; int B = 8; skcms_A2B = skcms_A2B; I32x8 = __vector(8) int; Fx8 = __vector(8) float]'
        502 | void clut<0, 8>(const skcms_A2B* a2b, I32 ix, I32 stride, F* r, F* g, F* b, F a) {
            |      ^~~~~~~~~~
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1911:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:502:6: note: 'void clut(const skcms_A2B*, I32x8, I32x8, Fx8*, Fx8*, Fx8*, Fx8) [with int I = 0; int B = 8; skcms_A2B = skcms_A2B; I32x8 = __vector(8) int; Fx8 = __vector(8) float]' previously declared here
        502 | void clut<0, 8>(const skcms_A2B* a2b, I32 ix, I32 stride, F* r, F* g, F* b, F a) {
            |      ^~~~~~~~~~
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1955:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:514:6: error: redefinition of 'void clut(const skcms_A2B*, I32x8, I32x8, Fx8*, Fx8*, Fx8*, Fx8) [with int I = 0; int B = 16; skcms_A2B = skcms_A2B; I32x8 = __vector(8) int; Fx8 = __vector(8) float]'
        514 | void clut<0, 16>(const skcms_A2B* a2b, I32 ix, I32 stride, F* r, F* g, F* b, F a) {
            |      ^~~~~~~~~~~
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1911:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:514:6: note: 'void clut(const skcms_A2B*, I32x8, I32x8, Fx8*, Fx8*, Fx8*, Fx8) [with int I = 0; int B = 16; skcms_A2B = skcms_A2B; I32x8 = __vector(8) int; Fx8 = __vector(8) float]' previously declared here
        514 | void clut<0, 16>(const skcms_A2B* a2b, I32 ix, I32 stride, F* r, F* g, F* b, F a) {
            |      ^~~~~~~~~~~
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1955:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:537:6: error: redefinition of 'template<int I, int B> void clut(const skcms_A2B*, I32x8, I32x8, Fx8*, Fx8*, Fx8*, Fx8)'
        537 | void clut(const skcms_A2B* a2b, I32 ix, I32 stride, F* r, F* g, F* b, F a) {
            |      ^~~~
      In file included from ../../3rdparty/chromium/third_party/skia/third_party/skcms/skcms.cc:1911:
      ../../3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h:537:6: note: 'template<int I, int B> void clut(const skcms_A2B*, I32x8, I32x8, Fx8*, Fx8*, Fx8*, Fx8)' previously declared here
        537 | void clut(const skcms_A2B* a2b, I32 ix, I32 stride, F* r, F* g, F* b, F a) {
            |      ^~~~
       

      It appears that file src/3rdparty/chromium/third_party/skia/third_party/skcms/src/Transform_inl.h does not contain a #pragma once or header guards. Multiple inclusions of file cause build to fail.

      Attachments

        1. qtwebengine_build.log
          1.41 MB
          Scott Furry
        2. qtwebengine-5.12.3-redefinition_resolve.patch
          0.6 kB
          Scott Furry
        3. qtwebengine-5.12.3-revert_66725e1.patch
          7 kB
          Scott Furry
        4. qtwebengine-5.12.3-run_program_hsw.patch
          0.7 kB
          Scott Furry
        For Gerrit Dashboard: QTBUG-77402
        # Subject Branch Project Status CR V

        Activity

          People

            juri.valdmann Jüri Valdmann (Inactive)
            digifuzzy Scott Furry
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes