Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. QtWebengine build error with opus and silk codecs
Forum Updated to NodeBB v4.3 + New Features

QtWebengine build error with opus and silk codecs

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
arm7armqtwebegineneon
21 Posts 4 Posters 9.2k Views 2 Watching
  • 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.
  • S Offline
    S Offline
    SGaist
    Lifetime Qt Champion
    wrote on 4 Nov 2017, 21:03 last edited by
    #11

    From the looks of it, your system looks like the linux-tegra2-g++ mkspec, maybe this one will be more suited to copy from.

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

    K 1 Reply Last reply 6 Nov 2017, 10:45
    0
    • S SGaist
      4 Nov 2017, 21:03

      From the looks of it, your system looks like the linux-tegra2-g++ mkspec, maybe this one will be more suited to copy from.

      K Offline
      K Offline
      Kart
      wrote on 6 Nov 2017, 10:45 last edited by Kart 11 Jun 2017, 10:47
      #12

      @SGaist
      I have tried all these combinations

      -mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfp
      
      -mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfpv3-d16
      
      -mtune=cortex-a9 -march=armv7-a -mhard-float -mfloat-abi=softfp 
      -mfpu=vfpv3-d16
      

      and i got the same error

      libxxxx.a(yyyyy.o) uses VFP register arguments, libQt5WebEngineCore.so.5.9.1 does not
      

      I tried the tegra2 mkspecs, but again another error.

      ERROR at //build/config/android/internal_rules.gni:11:1: Assertion failed.
      assert(is_android)
      ^-----
      See //build/config/android/rules.gni:8:1: whence it was imported.
      import("//build/config/android/internal_rules.gni")
      ^-------------------------------------------------
      See //third_party/android_tools/BUILD.gn:5:1: whence it was imported.
      import("//build/config/android/rules.gni")
      ^----------------------------------------
      See //third_party/openmax_dl/dl/BUILD.gn:199:16: which caused the file to be included.
            deps = [ "//third_party/android_tools:cpu_features" ]
                     ^-----------------------------------------
      Project ERROR: GN run error!
      Makefile:80: recipe for target 'sub-gn_run-pro-make_first' failed
      make[3]: *** [sub-gn_run-pro-make_first] Error 3
      make[3]: Leaving directory '/opt/qt/qt5.9.1arm_source/qt-everywhere-opensource-src-5.9.2/qtwebengine/src/core'
      Makefile:77: recipe for target 'sub-core-make_first' failed
      make[2]: *** [sub-core-make_first] Error 2
      make[2]: Leaving directory '/opt/qt/qt5.9.1arm_source/qt-everywhere-opensource-src-5.9.2/qtwebengine/src'
      Makefile:46: recipe for target 'sub-src-make_first' failed
      make[1]: *** [sub-src-make_first] Error 2
      make[1]: Leaving directory '/opt/qt/qt5.9.1arm_source/qt-everywhere-opensource-src-5.9.2/qtwebengine'
      Makefile:834: recipe for target 'module-qtwebengine-make_first' failed
      make: *** [module-qtwebengine-make_first] Error 2
      
      1 Reply Last reply
      0
      • S Offline
        S Offline
        SGaist
        Lifetime Qt Champion
        wrote on 6 Nov 2017, 11:22 last edited by
        #13

        Might be a silly question but did you nuke properly the build folder between tries ?

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

        K 1 Reply Last reply 6 Nov 2017, 11:28
        0
        • S SGaist
          6 Nov 2017, 11:22

          Might be a silly question but did you nuke properly the build folder between tries ?

          K Offline
          K Offline
          Kart
          wrote on 6 Nov 2017, 11:28 last edited by
          #14

          @SGaist I am deleting the source folder and doing all the steps from the beginning each and everytime.

          1 Reply Last reply
          0
          • S Offline
            S Offline
            SGaist
            Lifetime Qt Champion
            wrote on 6 Nov 2017, 12:05 last edited by
            #15

            Ok, so when you said you tried the Tegra2 mkspec, did you just use it or did you copy from it into yours like I suggested ?

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

            K 1 Reply Last reply 6 Nov 2017, 12:07
            0
            • S SGaist
              6 Nov 2017, 12:05

              Ok, so when you said you tried the Tegra2 mkspec, did you just use it or did you copy from it into yours like I suggested ?

              K Offline
              K Offline
              Kart
              wrote on 6 Nov 2017, 12:07 last edited by Kart 11 Jun 2017, 12:08
              #16

              @SGaist This is how i used it.

              include(../common/linux_device_pre.conf)
              
              QMAKE_INCDIR_POST      += $$[QT_SYSROOT]/usr/include
              
              QMAKE_LIBDIR_POST      += $$[QT_SYSROOT]/usr/lib
              
              QMAKE_RPATHLINKDIR_POST += $$[QT_SYSROOT]/usr/lib
              
              QMAKE_CFLAGS           += -mtune=cortex-a9 -march=armv7-a -mhard-float -mfloat-abi=softfp -mfpu=vfpv3-d16
              QMAKE_CXXFLAGS         += -mtune=cortex-a9 -march=armv7-a -mhard-float -mfloat-abi=softfp -mfpu=vfpv3-d16
              
              include(../common/linux_arm_device_post.conf)
              
              load(qt_config)
              

              This is my qmake.conf.

              1 Reply Last reply
              0
              • K Offline
                K Offline
                Kart
                wrote on 7 Nov 2017, 12:47 last edited by
                #17

                Does anyone knows how ninja build in qtwebengine is getting these architecture values by default ?

                -mfloat-abi=hard -mtune=generic-armv7-a -mfpu=vfpv3-d16 -mthumb
                
                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 7 Nov 2017, 22:22 last edited by
                  #18

                  From a quick look, somewhere around:

                  src/3rdparty/chromium/breakpad/src/build/common.gypi
                  src/3rdparty/chromium/build/config/compiler/BUILD.gn
                  src/3rdparty/chromium/build/common.gypi
                  src/3rdparty/chromium/native_client/build/standalone_flags.gypi
                  src/3rdparty/chromium/native_client/build/untrusted.gypi
                  ./src/core/config/linux.pri:    MFLOAT = $$extractCFlag("-mfloat-abi=.*")
                  

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

                  K 1 Reply Last reply 8 Nov 2017, 06:35
                  0
                  • S SGaist
                    7 Nov 2017, 22:22

                    From a quick look, somewhere around:

                    src/3rdparty/chromium/breakpad/src/build/common.gypi
                    src/3rdparty/chromium/build/config/compiler/BUILD.gn
                    src/3rdparty/chromium/build/common.gypi
                    src/3rdparty/chromium/native_client/build/standalone_flags.gypi
                    src/3rdparty/chromium/native_client/build/untrusted.gypi
                    ./src/core/config/linux.pri:    MFLOAT = $$extractCFlag("-mfloat-abi=.*")
                    
                    K Offline
                    K Offline
                    Kart
                    wrote on 8 Nov 2017, 06:35 last edited by
                    #19

                    Thanks @SGaist. This file had some information. I am not sure with the syntax to make changes in this file.

                    ./src/core/config/linux.pri:    MFLOAT = $$extractCFlag("-mfloat-abi=.*")
                    

                    Whatever values I am giving to QMAKE_CFLAGS_RELEASE and QMAKE_CXXXFLAGS_RELEASE is not what GN build is taking.

                    Maybe if I figure out how to make changes in the file you have mentioned, I might be able to solve this issue.

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      Kart
                      wrote on 8 Nov 2017, 11:27 last edited by Kart 11 Aug 2017, 12:04
                      #20

                      In the file

                      qtwebengine/src/3rdparty/chromium/third_party/opus/BUILD.gn:     use_opus_rtcd = current_cpu == "arm" && (is_win || is_android || is_linux)
                      
                      qtwebengine/src/3rdparty/chromium/third_party/opus/BUILD.gn: 
                       if (use_opus_rtcd) {
                            sources += [
                              "$target_gen_dir/celt_pitch_xcorr_arm_gnu.S",
                              "src/celt/arm/arm_celt_map.c",
                              "src/celt/arm/armcpu.c",
                              "src/celt/arm/armcpu.h",
                              "src/celt/arm/celt_neon_intr.c",
                              "src/celt/arm/fft_arm.h",
                              "src/celt/arm/mdct_arm.h",
                              "src/celt/arm/pitch_arm.h",
                              "src/silk/arm/NSQ_neon.c",
                              "src/silk/arm/NSQ_neon.h",
                              "src/silk/arm/arm_silk_map.c",
                            ]
                      

                      As far as I understood if the CPU is based on ARM and the OS is linux use_opus_rtcd becomes TRUE. If it becomes true, qtwebengine/src/3rdparty/chromium/third_party/opus/src/celt/arm/armcpu.c decides whether it have the NEON capabilities. I am trying to see that changing armcpu.c to not to use NEON might work or not.

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        Torsten Krause
                        wrote on 27 Nov 2017, 10:54 last edited by
                        #21

                        The chromium snapshot is outdated. There is already a fix for that!

                        link text

                        1 Reply Last reply
                        1

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved