1
votes
  1. Downloaded Qt source

  2. Copied linux-arm-gnueabi-g++ to linux-arm-gnueabihf-g++ (in qtbase/mkspecs)

  3. Edited qmake.conf inside the folder:

# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc
QMAKE_CXX               = arm-linux-gnueabihf-g++
QMAKE_LINK              = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_NM                = arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = arm-linux-gnueabihf-strip

Launched:

./configure -prefix /home/asianirish/Qt-custom/qt-embedded-5.7 -debug -static -xplatform linux-arm-gnueabihf-g++ -qt-zlib -reduce-relocations -no-libpng -no-libjpeg -no-sql-sqlite2 -no-sql-psql -no-sql-mysql -no-sql-odbc -no-sql-oci -no-sql-ibase -no-sql-db2 -no-qml-debug -no-widgets -no-gui -no-opengl -openssl-linked -opensource -confirm-license -v

Got:

arm-linux-gnueabihf-g++ -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c
bsymbolic_functions.c:2:2: error: #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)."
 #error "Symbolic function binding on this architecture may be broken, disabling
  ^
Symbolic function binding disabled.
-reduce-relocations was requested but this compiler does not support it
Re-run configure with -v for more information

The bug: QTBUG-36129

Any workaround?

  • Qt 5.7
  • Host: Ubuntu 15.10 64bit
  • Arm: Debian GNU/Linux 7 32bit
1
If you're crosscompiling on amd64 for armhf, then you need an ARM sysroot directory with the whole OS image (to have armhf libraries to link to). Pass it with -sysroot <dir> to the ./configure.Velkan

1 Answers

1
votes

a Xilinx User I change the cross_compile

gedit /etc/profile

export PATH="$PATH:/opt/petalinux-v2015.4-final/tools/linux-i386/arm-xilinx-gnueabi/bin"

export PATH="$PATH:/opt/Xilinx/SDK/2015.4/gnu/arm/lin/bin/"

#export PATH="$PATH:/usr/local/gcc-linaro-7.2.1-2017.11-x86_64_arm-eabi/bin"
#export PATH="$PATH:/usr/local/gcc-linaro-7.2.1-2017.11-x86_64_arm-eabi/libexec/gcc/arm-eabi/7.2.1"