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

QtWebengine build error with opus and silk codecs

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
arm7armqtwebegineneon
21 Posts 4 Posters 11.7k 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.
  • SGaistS SGaist

    Then you should create your own mkspecs that sets the correct flags for your processor.

    KartK Offline
    KartK Offline
    Kart
    wrote on last edited by Kart
    #10

    @SGaist I am using my own qmake.conf.

    #
    # qmake configuration for building with arm400-linux-g++
    #
    
    MAKEFILE_GENERATOR      = UNIX
    CONFIG                 += incremental
    QMAKE_INCREMENTAL_STYLE = sublib
    
    
    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)
    
    # modifications to g++.conf
    QMAKE_INCDIR +=/opt/arm400-linux/target/usr/include 
    QMAKE_LIBDIR +=/opt/arm400-linux/target/usr/lib
    QMAKE_CC                = arm400-linux-gcc 
    QMAKE_CXX               = arm400-linux-g++
    QMAKE_LINK              = arm400-linux-g++ -L/opt/arm400-linux/target/usr/lib -Wl,-rpath -Wl,/opt/arm400-linux/target/usr/lib
    QMAKE_LINK_SHLIB        = arm400-linux-g++ -L/opt/arm400-linux/target/usr/lib -Wl,-rpath -Wl,/opt/arm400-linux/target/usr/lib
    
    QMAKE_CFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9
    QMAKE_CXXFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9
    
    # modifications to linux.conf
    QMAKE_AR                = arm400-linux-ar cqs
    QMAKE_OBJCOPY           = arm400-linux-objcopy
    QMAKE_STRIP             = arm400-linux-strip
    
    load(qt_config)
    

    I tried

    QMAKE_CFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=soft
    QMAKE_CXXFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=soft
    

    But it came out something like "arm400-linux-g++: error: -mfloat-abi=soft and -mfloat-abi=hard may not be used together".

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on 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

      KartK 1 Reply Last reply
      0
      • SGaistS SGaist

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

        KartK Offline
        KartK Offline
        Kart
        wrote on last edited by Kart
        #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
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on 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

          KartK 1 Reply Last reply
          0
          • SGaistS SGaist

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

            KartK Offline
            KartK Offline
            Kart
            wrote on 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
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on 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

              KartK 1 Reply Last reply
              0
              • SGaistS SGaist

                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 ?

                KartK Offline
                KartK Offline
                Kart
                wrote on last edited by Kart
                #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
                • KartK Offline
                  KartK Offline
                  Kart
                  wrote on 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
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on 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

                    KartK 1 Reply Last reply
                    0
                    • SGaistS SGaist

                      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=.*")
                      
                      KartK Offline
                      KartK Offline
                      Kart
                      wrote on 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
                      • KartK Offline
                        KartK Offline
                        Kart
                        wrote on last edited by Kart
                        #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 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