I am running prelink on an ARM system with Linux 2.6.35. I am using Glibc 2.12.2. I would like to prelink my libraries and application executables. However, I can't seem to link anything that relies directly upon glibc. When prelink tries to run on /lib
, it errors out with:
Could not write /lib/libc-2.12.2.so: Layout error: section size too small for data
Is there a way for me to fix this or perhaps convince prelink to prelink everything except what resides in /lib
? I am aware of the blacklisting feature in /etc/prelink.conf
, but then prelink will error out because it cannot find dependencies located in that directory.
Edit:
Here is my prelink.conf
~ # cat /etc/prelink.conf -h /usr/local/Qt-4.7.4/lib -h /usr/lib -h /lib -h /usr/local/dbus/lib -h /usr/local/sqlite/lib -h /usr/local/ncurses/lib -h /usr/local/expat/lib -h /usr/local/ssl/lib
I am on the i.MX51 platform by Freescale. It is an ARM Cortex-8. Being that I have compiled everything with the GCC/G++ version that came with our development kit, I assume that the ELF binaries are 32-bit.
Edit:
I changed the -h flags to -l's and moved the system libs to the front of the list. I still get the same error.
I am running prelink on the device, not on my cross-building machine.
LD_LIBRARY_PATH contains /lib and /usr/lib
Tried running prelink as: prelink -a prelink -amR
and got the same result both ways.
I am running gcc 4.4.6 cross compiler. I am running ld 1.12.1 ld.