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. Qt 5.11.3 Cross Compile RPI3 MAC OSX - crt1.o
Forum Updated to NodeBB v4.3 + New Features

Qt 5.11.3 Cross Compile RPI3 MAC OSX - crt1.o

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
4 Posts 2 Posters 1.1k Views
  • 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.
  • B Offline
    B Offline
    bcam
    wrote on last edited by
    #1

    I'm attempting to cross compile Qt 5.11.3 for a raspberry Pi 3 B (Ubuntu Mate) using Mac OSX 10.13 / Xcode 9 and running into this error related to crt1.o:

    Configure string:

    ./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=/Volumes/RPI-TOOLS/bin/armv8-rpi3-linux-gnueabihf- -sysroot $SYSROOT -opensource -confirm-license -make libs -prefix /usr/local/qt5.11.3 -extprefix /Users/jondoe/Documents/raspiQt/qt5.11.3_pi -hostprefix /Users/jondoe/Documents/raspiQt/qt5.11.3_host -v -no-use-gold-linker -fontconfig -nomake examples -nomake tests -no-compile-examples -no-gbm -skip qtwayland -skip qtlocation -skip qtvirtualkeyboard -skip qtscript -skip qtwebengine
    

    Output / Error:

    ---snip---
    This is the Qt Open Source Edition.
    
    You have already accepted the terms of the Open Source license.
    
    Running configuration tests...
    Checking for machine tuple... 
    + /Volumes/RPI-TOOLS/bin/armv8-rpi3-linux-gnueabihf-g++ -dumpmachine | sed 's/v8-rpi3//'
    > arm-linux-gnueabihf
    test config.qtbase.tests.machineTuple succeeded
    Checking for valid makespec... 
    + cd /Users/jondoe/Documents/raspiQt/qt-everywhere-src-5.11.3/config.tests/verifyspec && /Users/jondoe/Documents/raspiQt/qt-everywhere-src-5.11.3/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/Users/jondoe/Documents/raspiQt/sysroot" "QMAKE_CXXFLAGS += --sysroot=/Users/jondoe/Documents/raspiQt/sysroot" "QMAKE_LFLAGS += --sysroot=/Users/jondoe/Documents/raspiQt/sysroot" -early "CONFIG += cross_compile" /Users/jondoe/Documents/raspiQt/qt-everywhere-src-5.11.3/qtbase/config.tests/verifyspec
    + cd /Users/jondoe/Documents/raspiQt/qt-everywhere-src-5.11.3/config.tests/verifyspec && MAKEFLAGS= /usr/local/bin/gmake
    > /Volumes/RPI-TOOLS/bin/armv8-rpi3-linux-gnueabihf-g++ -c -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard --sysroot=/Users/jondoe/Documents/raspiQt/sysroot -O2 -w -fPIC  -I/Users/jondoe/Documents/raspiQt/qt-everywhere-src-5.11.3/qtbase/config.tests/verifyspec -I. -I/Users/jondoe/Documents/raspiQt/qt-everywhere-src-5.11.3/qtbase/mkspecs/devices/linux-rasp-pi3-g++ -o verifyspec.o /Users/jondoe/Documents/raspiQt/qt-everywhere-src-5.11.3/qtbase/config.tests/verifyspec/verifyspec.cpp
    > /Volumes/RPI-TOOLS/bin/armv8-rpi3-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/Users/jondoe/Documents/raspiQt/sysroot -Wl,-O1 -Wl,-rpath-link,/Users/jondoe/Documents/raspiQt/sysroot/opt/vc/lib -Wl,-rpath-link,/Users/jondoe/Documents/raspiQt/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/Users/jondoe/Documents/raspiQt/sysroot/lib/arm-linux-gnueabihf -o verifyspec verifyspec.o    
    > /Volumes/RPI-TOOLS/bin/../lib/gcc/armv8-rpi3-linux-gnueabihf/7.2.0/../../../../armv8-rpi3-linux-gnueabihf/bin/ld.bfd: cannot find crt1.o: No such file or directory
    > /Volumes/RPI-TOOLS/bin/../lib/gcc/armv8-rpi3-linux-gnueabihf/7.2.0/../../../../armv8-rpi3-linux-gnueabihf/bin/ld.bfd: cannot find crti.o: No such file or directory
    > /Volumes/RPI-TOOLS/bin/../lib/gcc/armv8-rpi3-linux-gnueabihf/7.2.0/../../../../armv8-rpi3-linux-gnueabihf/bin/ld.bfd: cannot find -lm
    > collect2: error: ld returned 1 exit status
    > gmake: *** [Makefile:66: verifyspec] Error 1
    ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.
    

    crt1.o exists on the device sys root:

    jondoe@mac:~/Documents/raspiQt/qt-everywhere-src-5.11.3$ find $SYSROOT -name crt1.o
    /Users/jondoe/Documents/raspiQt/sysroot/usr/lib/arm-linux-gnueabi/crt1.o
    /Users/jondoe/Documents/raspiQt/sysroot/usr/lib/arm-linux-gnueabihf/crt1.o
    

    Cross Compiler Toolchain output:

    jondoe@mac:/Volumes/RPI-TOOLS/bin$ ./arm*g++ -v
    Using built-in specs.
    COLLECT_GCC=./armv8-rpi3-linux-gnueabihf-g++
    COLLECT_LTO_WRAPPER=/Volumes/RPI-TOOLS/bin/../libexec/gcc/armv8-rpi3-linux-gnueabihf/7.2.0/lto-wrapper
    Target: armv8-rpi3-linux-gnueabihf
    Configured with: /Users/jonathancastillo/projects/crosstool-ng/.build/armv8-rpi3-linux-gnueabihf/src/gcc/configure --build=x86_64-build_apple-darwin17.2.0 --host=x86_64-build_apple-darwin17.2.0 --target=armv8-rpi3-linux-gnueabihf --prefix=/Users/jonathancastillo/x-tools/armv8-rpi3-linux-gnueabihf --with-sysroot=/Users/jonathancastillo/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot --enable-languages=c,c++ --with-cpu=cortex-a53 --with-fpu=neon-vfpv4 --with-float=hard --with-pkgversion='crosstool-NG crosstool-ng-1.23.0-242-g521d6c17-dirty' --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --disable-libmpx --with-gmp=/Users/jonathancastillo/projects/crosstool-ng/.build/armv8-rpi3-linux-gnueabihf/buildtools --with-mpfr=/Users/jonathancastillo/projects/crosstool-ng/.build/armv8-rpi3-linux-gnueabihf/buildtools --with-mpc=/Users/jonathancastillo/projects/crosstool-ng/.build/armv8-rpi3-linux-gnueabihf/buildtools --with-isl=/Users/jonathancastillo/projects/crosstool-ng/.build/armv8-rpi3-linux-gnueabihf/buildtools --enable-lto --enable-threads=posix --enable-target-optspace --enable-plugin --enable-gold --disable-nls --disable-multilib --with-local-prefix=/Users/jonathancastillo/x-tools/armv8-rpi3-linux-gnueabihf/armv8-rpi3-linux-gnueabihf/sysroot --enable-long-long
    Thread model: posix
    gcc version 7.2.0 (crosstool-NG crosstool-ng-1.23.0-242-g521d6c17-dirty) 
    

    Patch applied to qtbase/configure.pri:
    Compiler -dumpmachine outputs 'armv8-rpi3-linux-gnueabihf' instead of 'arm-linux-gnueabihf'

    defineTest(qtConfTest_machineTuple) {
        qtRunLoggedCommand("$$QMAKE_CXX -dumpmachine | sed 's/v8-rpi3//'", $${1}.tuple)|return(false)
        $${1}.cache += tuple
        export($${1}.cache)
        return(true)
    }
    

    Any help much appreciated.

    1 Reply Last reply
    0
    • R Offline
      R Offline
      r3d9u11
      wrote on last edited by
      #2

      try to download systoor-glibc...linux-gnueabihf and use it with parameter --sysroot=<path to sysroot_dir>

      B 1 Reply Last reply
      0
      • R r3d9u11

        try to download systoor-glibc...linux-gnueabihf and use it with parameter --sysroot=<path to sysroot_dir>

        B Offline
        B Offline
        bcam
        wrote on last edited by
        #3

        @r3d9u11 From what I understand, I need to pass in the device's rsync'd sysroot as I am doing so that Qt compiles against the libraries that are present on the device?
        I'll look into this though.

        R 1 Reply Last reply
        0
        • B bcam

          @r3d9u11 From what I understand, I need to pass in the device's rsync'd sysroot as I am doing so that Qt compiles against the libraries that are present on the device?
          I'll look into this though.

          R Offline
          R Offline
          r3d9u11
          wrote on last edited by
          #4

          @bcam Try to see my scripts https://github.com/r3d9u11/env-maker/tree/master/Qt/Qt5-imx6, I think that it can be used for RPi (just change gcc-8 to linaro compiler)

          1 Reply Last reply
          0

          • Login

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