On Tue, 2008-01-29 at 14:06 +0100, Jonas Meyer wrote: > Hello, > Im playing with sh3. I already got a toolchain that seems to work, but > I cant figure out how to make dpkg-shlibdeps work. As I built a > toolchain for mipsel in parallel with the sh3 toolchain Im pretty sre > that the problem is not with the toolchain but with dpkg-cross or > dpkg-shlibdeps. The problem is with the rewritten dpkg-shlibdeps that cannot work with the rewritten dpkg-cross. See #453267 > Building expat fails likethisfor sh3: > dh_shlibdeps -a -l /mnt/quitte/sh3linux/expat-1.95.8/debian/libexpat1/usr/lib > dpkg-shlibdeps: failure: couldn't find library libgcc_s.so.1 needed by > debian/libexpat1/usr/lib/libexpat.so.1.0.0 (its RPATH is ''). > Note: libraries are not searched in other binary packages that do not > have any shlibs or symbols file. > To help dpkg-shlibdeps find private libraries, you might need to set > LD_LIBRARY_PATH. Which is precisely what you do need to do. use constant DEFAULT_LIBRARY_PATH => qw(/lib /usr/lib /lib32 /usr/lib32 /lib64 /usr/lib64 /emul/ia32-linux/lib /emul/ia32-linux/usr/lib); my @shlibdeps=(); # GCC_TARGET for cross compiler builds my $crossprefix = Dpkg::Arch::debarch_to_gnutriplet($ENV{GCC_TARGET}) if ($ENV{GCC_TARGET}); # host for normal cross builds. $crossprefix = $ENV{DEB_HOST_GNU_TYPE} if (($ENV{DEB_HOST_GNU_TYPE}) and ($ENV{DEB_HOST_GNU_TYPE} ne $ENV{DEB_BUILD_GNU_TYPE})); # target when building a cross compiler $crossprefix = $ENV{DEB_TARGET_GNU_TYPE} if (($ENV{DEB_TARGET_GNU_TYPE}) and ($ENV{DEB_TARGET_GNU_TYPE} ne $ENV{DEB_BUILD_GNU_TYPE})); if ($crossprefix) { @shlibdeps = ( "${crossprefix}/lib", "/usr/${crossprefix}/lib", "/${crossprefix}/lib32", "/usr/${crossprefix}/lib32", "/${crossprefix}/lib64", "/usr/${crossprefix}/lib64"); } our @librarypaths = ((DEFAULT_LIBRARY_PATH), @shlibdeps); The basic effect is to: 1) detect cross builds, reverse cross and cross compiler builds 2) add /usr/$arch_triplet/lib to LD_LIBRARY_PATH for the call to dpkg-shlibdeps only when necessary. -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
Attachment:
signature.asc
Description: This is a digitally signed message part