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

DynaLoader issue with perl 5.12 on armhf when using fakechroot



hi,

I am using the emdebian multistrap, fakeroot, fakechroot and qemu user mode
emulation to create foreign rootfs tarballs. This technique is useful to
bootstrap debian without superuser priviliges.

I need some help with the following perl issue that came up with the upgrade to
5.12 in the debian-ports.org archive for the armhf architecture. I hope
somebody is interested in solving this issue, has an idea what else I could do
to find out what's wrong or can tell me to which of the 210 perl mailinglists I
would best direct my inquery.

The problem:

When I create a rootfs using multistrap, fakeroot and fakechroot of the debian
armhf port then I get a perl related error in debian package configuration
tasks that can be reproduced by this command:

josch@hoothoot> fakeroot fakechroot chroot debian-sid-armhf perl -e "use fields;fields::new();"
Hash::Util object version 0.07 does not match bootstrap parameter 0 at /usr/lib/perl/5.12/DynaLoader.pm line 215.
Compilation failed in require at /usr/share/perl/5.12/fields.pm line 122.

This problem does only occur when I use fakechroot to execute that command. The
following will work:

josch@hoothoot> sudo chroot debian-sid-armhf perl -e "use fields;fields::new();"

Interestingly the problem does also not occur in the other architectures I'm
bootstrapping for: armel and mipsel from the official debian repositories.

Also the problem did not occur on armhf with the former perl 5.10 a few months
ago.

Now I want to find out what the problem is and how I can fix this. To do this I
lack deeper understanding about the DynaLoader and how it dynamically loads
shared libraries. Since the problem seems to lie in shared library path
resolution it is very likely that it occurs because of the use of fakechroot.
This is also hinted by the fact that it works with a normal chroot. But if it
is that, then why doesnt the error occur on the armel and mipsel architectures
with the same package versions? So is it a problem with the armhf port? And if
it is, then why did it work with perl 5.10 on armhf and stopped working now
with 5.12?

I so far failed to locate the source of this error but hopefully somebody finds
that issue interesting enough to give me a few pointers or can tell me to whom
else direct my issue.

Please CC me as I'm not subscribed to the debian-perl list.

Thanks a lot!

josch


Reply to: