Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Relocation Error, updating kernel



  • I'm upgrading my Embedded Linux OS from 2.6.10 to 2.6.18 and had to rebuild Qt for the updated kernel. However, I can't get a simple example Qt program running on the new OS. I keep getting a relocation error because of the linking. I believe that I cross-built Qt for 2.6.10 and 2.6.18 with the same configuration/options, but I'm not fully sure. When I look at the config.status, they match though. Also, when I do an ldd of the application between the two OSes, it's linked to the multithread tls libs in 2.6.10 but not so in 2.6.18. In both, I didn't add the -thread options. Thoughts?

    Do you think this error is Qt related? or is it with my embedded 2.6.18 filesystem?

    Example program used:
    http://doc.qt.nokia.com/4.7-snapshot/qws-mousecalibration.html

    Error:
    ./mousecalibration: relocation error: /usr/local/qtopia/lib/libQtCore.so.4: symbol readdir_r, version GLIBC_2.4 not defined in file libc.so.6 with link time reference

    2.6.10# ldd ./mousecalibration
    libQtGui.so.4 => /usr/local/qtopia/lib/libQtGui.so.4 (0x40020000)
    *libpng.so.3 => /usr/lib/libpng.so.3 (0x4078b000)
    libQtNetwork.so.4 => /usr/local/qtopia/lib/libQtNetwork.so.4 (0x407b6000)
    libQtCore.so.4 => /usr/local/qtopia/lib/libQtCore.so.4 (0x40869000)
    *libz.so.1 => /usr/lib/libz.so.1 (0x40a7d000)
    *librt.so.1 => /lib/tls/librt.so.1 (0x40a95000)
    *libdl.so.2 => /lib/tls/libdl.so.2 (0x40aa5000)
    libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40ab0000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x40aca000)
    libm.so.6 => /lib/tls/libm.so.6 (0x40b95000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40c43000)
    libc.so.6 => /lib/tls/libc.so.6 (0x40c54000)
    /lib/ld-linux.so.3 (0x40000000)

    2.6.18# ldd ./mousecalibration
    libQtGui.so.4 => /usr/local/qtopia/lib/libQtGui.so.4 (0x40026000)
    libQtNetwork.so.4 => /usr/local/qtopia/lib/libQtNetwork.so.4 (0x4074d000)
    libQtCore.so.4 => /usr/local/qtopia/lib/libQtCore.so.4 (0x407be000)
    libdl.so.2 => /lib/libdl.so.2 (0x409d2000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x409dd000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x409fa000)
    libm.so.6 => /lib/libm.so.6 (0x40ace000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40b54000)
    libc.so.6 => /lib/libc.so.6 (0x40b67000)
    /lib/ld-linux.so.3 (0x40000000)

    • Denotes missing things in new kernel


  • There are several topics related to you question on the forum like :
    "Link":http://developer.qt.nokia.com/wiki/Building_Qt_for_Embedded_Linux

    You can click on a tag "embedded" on the right of your screen to see them all.

    They are sorted by using votes.

    Hope this helps you out.


Log in to reply