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

  • Moderators

    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
 

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