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.htmlError:
./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 reference2.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_LinuxYou 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.