[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Loading emdebian file system on ARM target from USB stick



On Wed, Apr 29, 2009 at 12:19 PM, hoefle marco
<marco.hoefle@nanotronic.ch> wrote:
> On Tue, 2009-04-28 at 09:34 -0300, Amandeep Bhullar wrote:
>> Hi
>>
>> > Setting up debian-archive-keyring (2009.01.31em1) ...
>> > gpg: symbol lookup error: /lib/libreadline.so.5: undefined symbol:
>> PC
>> > gpg: symbol lookup error: /lib/libreadline.so.5: undefined symbol:
>> PC
>> > gpg: symbol lookup error: /lib/libreadline.so.5: undefined symbol:
>> PC
>> > dpkg: error processing debian-archive-keyring (--configure):
>> > subprocess post-installation script returned error exit status 127
>>
>> > Does libreadline exist at that path in the rootfs? What version?
>>
>> Yes, libreadline.so.5 exists under /lib. Will it affect the working.
>>

What version of emdebian tools are you using?

Previously I had built my rootfs with emdebian-tools 1.5.1 and I
didn't have this problem.
However today I have switched everything to the lenny versions
[emdebian-tools 1.4.3] and fixed the sources to point to lenny [there
is a bug causing it to point to unstable with the lenny version of
emdebian-tools]

I now get the problem described above with a rootfs built with the
lenny version.
The error occurs anytime gpg is run:

~ # gpg

gpg: symbol lookup error: /lib/libreadline.so.5: undefined symbol: PC


Now strange thing is that both filesystems (built with 1.5.1 and
lenny) show the same version of libreadline5:
~ # dpkg -l | grep libreadline

ii  libreadline5                5.2-3.1em1            GNU readline and
history libraries, run-time


But when I look at the files they are different (please ignore dates -
they are not preserved)
[lenny build]
~ # ls -l /lib/libread.so.5.2

-r-xr-xr-x    1 root     root       525346 Apr 29  2009 /lib/libreadline.so.5.2

$ md5sum target/nfs/lib/libreadline.so.5.2
9fb29ee716455a838451e36717f50af7  target/nfs/lib/libreadline.so.5.2

[1.5.1]
$ ls -l target/nfs/lib/libreadline.so.5.2
-r-xr-xr-x 1 root root 519816 Oct 15  2007 target/nfs/lib/libreadline.so.5.2

$ md5sum target/nfs/lib/libreadline.so.5.2

33557759a13ae95d314a43ba26f2f985  target/nfs/lib/libreadline.so.5.2


The lib contained in the emdebian repository :
http://buildd.emdebian.org/emdebian/pool/main/r/readline5/libreadline5_5.2-3.1em1_arm.deb
is the lenny version [and doesn't work]

I don't know where my working version of libreadline comes from [it
would be good if those that have a working gpg post the size and
md5sum of their libreadline]

Replacing the libreadine on the otherwise lenny version causes gpg to work.

Running objdump on them (now called -good and -bad)
$ arm-linux-gnu-objdump libreadline.so.5.2-bad -tT | grep PC
00000000         *UND*	00000000              PC
00000000      D  *UND*	00000000              PC

$ arm-linux-gnu-objdump libreadline.so.5.2-good -tT | grep PC
00000000       O *UND*	00000001              PC
00000000      DO *UND*	00000001              PC

For comparison the i386 version on lenny
$ objdump /lib/libreadline.so.5.2 -tT | grep PC
00000000      DO *UND*	00000001              PC

Finally arm version from Debian lenny (not emdebian)
$ arm-linux-gnu-objdump ~/tmp/libreadline.so.5.2 -tT | grep PC
00000000      DO *UND*	00000001              PC

So the symbol is always undefined but the working versions have an
extra flag "O"
I can't seem to find any doc on the objdump output format that
explains this -anyone?

Cheers,

Martin


Reply to: