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

Bug#553047: More info - no such file libc-2.10.1.so after a build in chroot



gcc (2.95.1-1) unstable; urgency=low
  * debian/rules2 [binary-arch]: Call dh_shlibdeps with LD_LIBRARY_PATH
set to installation dir of libstdc++. Why isn't this the default?
 -- Matthias Klose <doko@debian.org>  Sat, 28 Aug 1999 18:16:31 +0200

So the question is why this is new.

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+
$LD_LIBRARY_PATH:}/usr/powerpc-linux-gnu/lib ARCH=powerpc
MAKEFLAGS="CC=something" dh_shlibdeps -plibgcc1-powerpc-cross

error while loading shared
libraries: /usr/powerpc-linux-gnu/lib/libc.so.6: ELF file data encoding
not little-endian

i.e. dh_shlibdeps might not listening to ARCH but is taking the
underlying system as the base from which to determine the endianness it
should check. It's reading the i386 endianness and complaining that
powerpc isn't the same endianness. Ooops. Alternatively, see the end of
this email - dh_shlibdeps might actually be tripping over a file that
should not exist in the build environment at all.

The URLs didn't work - I'm looking at:
http://www.emdebian.org/~zumbi/toolchain/i386-unstable/logs/i386-powerpc-4.4.log
http://www.emdebian.org/~zumbi/toolchain/i386-unstable/logs/i386-powerpc-4.3.log

It doesn't help that I'm using the toolchains for Lenny but have to get
binutils-powerpc-linux-gnu from sid as a build-dep for gcc-4.4 but
I've just build gcc-4.3-powerpc-linux-gnu OK in the same chroot and
then upgrading binutils-powerpc-linux-gnu again to 2.20.1-3 for 4.4.

However, I get a different error:

sed s/-powerpc-cross//g < debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs
> debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs.fixed /bin/bash:
> debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs: No such file or
> directory

In particular, dh_shlibdeps works:

dh_makeshlibs -plibgcc1-powerpc-cross -n
sed s/-powerpc-cross//g < debian/libgcc1-powerpc-cross/DEBIAN/shlibs > debian/libgcc1-powerpc-cross/DEBIAN/shlibs.fixed
mv debian/libgcc1-powerpc-cross/DEBIAN/shlibs.fixed debian/libgcc1-powerpc-cross/DEBIAN/shlibs
cat debian/libgcc1-powerpc-cross/DEBIAN/shlibs >> debian/shlibs.local
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/usr/powerpc-linux-gnu/lib ARCH=powerpc MAKEFLAGS="CC=something" dh_shlibdeps -plibgcc1-powerpc-cross
sed -i 's@[ =]lib[^ ,]*@&-powerpc-cross@g' debian/libgcc1-powerpc-cross.substvars

and continues on to:

dh_makeshlibs -plibgomp1-powerpc-cross
sed s/-powerpc-cross//g < debian/libgomp1-powerpc-cross/DEBIAN/shlibs > debian/libgomp1-powerpc-cross/DEBIAN/shlibs.fixed
mv debian/libgomp1-powerpc-cross/DEBIAN/shlibs.fixed debian/libgomp1-powerpc-cross/DEBIAN/shlibs
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/usr/powerpc-linux-gnu/lib ARCH=powerpc MAKEFLAGS="CC=something" dh_shlibdeps -plibgomp1-powerpc-cross
sed 's/\(lib[^ ]*\) /\1-powerpc-cross /g' < debian/libgomp1-powerpc-cross.substvars > debian/libgomp1-powerpc-cross.substvars.new
mv debian/libgomp1-powerpc-cross.substvars.new debian/libgomp1-powerpc-cross.substvars

and thence to:
dh_installdirs -plib64gomp1-powerpc-cross \
		usr/lib64
DH_COMPAT=2 dh_movefiles -plib64gomp1-powerpc-cross \
		usr/lib64/libgomp.so.*
dh_movefiles: Compatibility levels before 5 are deprecated.
debian/dh_doclink -plib64gomp1-powerpc-cross gcc-4.4-powerpc-linux-gnu-base
WARNING: removing doc directory  lib64gomp1-powerpc-cross
dh_strip -plib64gomp1-powerpc-cross #--dbg-package=lib64gomp1-dbg
dh_compress -plib64gomp1-powerpc-cross #-plib64gomp1-dbg
dh_fixperms -plib64gomp1-powerpc-cross #-plib64gomp1-dbg
dh_makeshlibs -plib64gomp1-powerpc-cross
sed s/-powerpc-cross//g < debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs > debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs.fixed
/bin/bash: debian/lib64gomp1-powerpc-cross/DEBIAN/shlibs: No such file or directory

I used:
# GCC_TARGET=powerpc DEB_CROSS=yes fakeroot debian/rules control
# DEB_CROSS_NO_BIARCH=yes GCC_TARGET=powerpc DEB_CROSS=yes dpkg-buildpackage -us -uc -rfakeroot

Hector: problem is, I don't have the
file /usr/powerpc-linux-gnu/lib/libc-2.10.1.so after the build or as a
result of installing the necessary build dependencies.

root@dwarf:~/gcc-4.4-4.4.3# file /usr/powerpc-linux-gnu/lib/libc-2.10.1.so
/usr/powerpc-linux-gnu/lib/libc-2.10.1.so: ERROR: cannot open `/usr/powerpc-linux-gnu/lib/libc-2.10.1.so' (No such file or directory)

It's not a file in Debian sid either (crossed or native):

You have searched for paths that end with libc-2.10.1.so in suite sid, all sections, and all architectures.
Sorry, your search gave no results

http://www.uk.debian.org/distrib/packages#search_contents

As the file isn't in Debian, dpkg-cross wouldn't normally have created
a package to put the file into /usr/powerpc-linux-gnu/lib/

Question is, where did this file come from?

I can check the chroot on emdebian.org - I just need to know which one
was used.

Could this be a result of a failed clean up in this chroot?

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

Attachment: pgpA4wOIYcPpR.pgp
Description: PGP signature


Reply to: