Error during cross-compilation for ARMv5 (fatal error: stdio.h: No such file or directory)



  • I'm trying to build Qt for ARMv5 platform (OMAP-L138) but I've got the error:

    + cd qtbase
    + /home/tankist/qt/src_dir/qtbase/configure -top-level -platform linux-g++-64 -xplatform linux-arm926 -release -sysroot /home/tankist/ti/mcsdk_1_01_00_02/targetNFS -prefix /usr/local/qt5 -opensource -confirm-license -no-pkg-config -v
    
    This is the Qt Open Source Edition.
    
    You are licensed to use this software under the terms of
    the Lesser GNU General Public License (LGPL) versions 2.1.
    You are also licensed to use this software under the terms of
    the GNU Lesser General Public License (LGPL) versions 3.
    
    You have already accepted the terms of the Open Source license.
    
    Performing shadow build...
    Preparing build tree...
    Precompiled-headers support enabled.
    arm-arago-linux-gnueabi-g++ -c -fvisibility=hidden fvisibility.c
    Symbol visibility control enabled.
    cc1plus: error: unrecognized command line option "-fuse-ld=gold"
    arm-arago-linux-gnueabi-g++ --sysroot=/home/tankist/ti/mcsdk_1_01_00_02/targetNFS -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)."
    Symbolic function binding disabled.
    DEFAULT_INCDIRS="/home/tankist/arago/arago-2011.09/armv5te/arm-arago-linux-gnueabi/include/c++/4.5.3
    /home/tankist/arago/arago-2011.09/armv5te/arm-arago-linux-gnueabi/include/c++/4.5.3/arm-arago-linux-gnueabi
    /home/tankist/arago/arago-2011.09/armv5te/arm-arago-linux-gnueabi/include/c++/4.5.3/backward
    /home/tankist/arago/arago-2011.09/armv5te/lib/gcc/arm-arago-linux-gnueabi/4.5.3/include
    /home/tankist/arago/arago-2011.09/armv5te/lib/gcc/arm-arago-linux-gnueabi/4.5.3/include-fixed
    /home/tankist/arago/arago-2011.09/armv5te/arm-arago-linux-gnueabi/include
    /home/tankist/ti/mcsdk_1_01_00_02/targetNFS/usr/include
    "
    DEFAULT_LIBDIRS="/home/tankist/arago/arago-2011.09/armv5te/lib/gcc/arm-arago-linux-gnueabi/4.5.3
    /home/tankist/arago/arago-2011.09/armv5te/lib/gcc
    /home/tankist/arago/arago-2011.09/armv5te/arm-arago-linux-gnueabi/lib
    /home/tankist/ti/mcsdk_1_01_00_02/targetNFS/lib
    /home/tankist/ti/mcsdk_1_01_00_02/targetNFS/usr/lib
    "
    Running configuration tests...
    Found pkg-config from $PATH: /usr/bin/pkg-config
    pkg-config support disabled.
    Determining architecture... ()
    arm-arago-linux-gnueabi-g++ -c -pipe --sysroot=/home/tankist/ti/mcsdk_1_01_00_02/targetNFS -g -Wall -W -fPIC  -I../../../../src_dir/qtbase/config.tests/arch -I. -I../../../../src_dir/qtbase/mkspecs/linux-arm926 -o arch.o ../../../../src_dir/qtbase/config.tests/arch/arch.cpp
    ../../../../src_dir/qtbase/config.tests/arch/arch.cpp:37:19: fatal error: stdio.h: No such file or directory
    compilation terminated.
    make: *** [arch.o] Error 1
    Unable to determine architecture!
    

    My target platform (linux-arm926) is hand-made and completely based on the linux-arm-gnueabi-g++ platform except the right compiler name:

    #
    # qmake configuration for building with linux-arm926
    #
    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_CC                = arm-arago-linux-gnueabi-gcc
    QMAKE_CXX               = arm-arago-linux-gnueabi-g++
    QMAKE_LINK              = arm-arago-linux-gnueabi-g++
    QMAKE_LINK_SHLIB        = arm-arago-linux-gnueabi-g++
    
    # modifications to linux.conf
    QMAKE_AR                = arm-arago-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY           = arm-arago-linux-gnueabi-objcopy
    QMAKE_NM                = arm-arago-linux-gnueabi-nm -P
    QMAKE_STRIP             = arm-arago-linux-gnueabi-strip
    load(qt_config)
    

    What is wrong?


  • Moderators

    Does your sysroot (/home/tankist/ti/mcsdk_1_01_00_02/targetNFS) contain stdio.h (for example in usr/include)?



  • No. Maybe I was wrong and don't understand what sysroot means? I thought that should be a copy of rootfs on the target machine (it's a simple rootfs which was built from buildroot).


  • Lifetime Qt Champion

    Hi,

    It should be a copy of the target machine rootfs containing the development package of the needed dependencies.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.