Hector Oron <hector.o...@gmail.com> writes: > Hello, > > I am trying to build a package (binutils for cross targets) which now > also builds a shared library (libbfd) which fullfills the dependency > of some binaries just built (objdump; objcopy). > The upstream code builds fine, but, when I trigger dh_shlibdeps.... > > [...]
How does the dh_makeshlibs call look like? And what do the shlibs files it generates look like? > dh_installdeb -s > LD_LIBRARY_PATH=/usr/lib/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot:/usr/arm-linux-gnueabi/lib > dh_shlibdeps -s > dpkg-shlibdeps: error: couldn't find library libbfd-2.20.1.20100303.so > needed by debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-objcopy > (ELF format: 'elf32-i386'; RPATH: > '/usr/arm-linux-gnueabi/i486-linux-gnu/arm-linux-gnueabi/lib'). > 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. > dh_shlibdeps: dpkg-shlibdeps > -Tdebian/binutils-arm-linux-gnueabi.substvars > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-strip > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-strings > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-objdump > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-nm > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-addr2line > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-gprof > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-objcopy > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-readelf > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-as > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-size > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-ar > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-ld > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-c++filt > debian/binutils-arm-linux-gnueabi/usr/bin/arm-linux-gnueabi-ranlib > returned exit code 2 > make: *** [binary-arch] Error 9 > dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status > 2 > > > Those missing libs are just build under: > $ ls -l > install/binutils/usr/arm-linux-gnueabi/i486-linux-gnu/arm-linux-gnueabi/lib/ > total 7896 > -rwxr-xr-x 1 zumbi zumbi 2502645 may 4 16:14 libbfd-2.20.1.20100303.so > -rw-r--r-- 1 zumbi zumbi 4788842 may 4 16:14 libbfd.a > -rwxr-xr-x 1 zumbi zumbi 1095 may 4 16:14 libbfd.la > lrwxrwxrwx 1 zumbi zumbi 25 may 4 16:14 libbfd.so -> > libbfd-2.20.1.20100303.so > -rwxr-xr-x 1 zumbi zumbi 287677 may 4 16:14 libopcodes-2.20.1.20100303.so > -rw-r--r-- 1 zumbi zumbi 464144 may 4 16:14 libopcodes.a > -rwxr-xr-x 1 zumbi zumbi 1118 may 4 16:14 libopcodes.la > lrwxrwxrwx 1 zumbi zumbi 29 may 4 16:14 libopcodes.so -> > libopcodes-2.20.1.20100303.so That directory is not searched by dpkg-shlibdeps. You should have a debain/<package>/DEBIAN/shlibs debian/ypackage>/usr/arm-linux-gnueabi/i486-linux-gnu/arm-linux-gnueabi/lib/libbfd-2.20.1.20100303.so The first tells dpkg-shlibdeps to search that package and the later is where the RPATH makes it look. > Those missing libraries (I expect) are also found at binutils-dev | > binutils-multiarch > $ dpkg -S libbfd-2.20.1.20100303.so > dpkg: *libbfd-2.20.1.20100303.so* not found. So you don't have an matching lib installed. But even if you had that would be the wrong one. Other than as reference what libs should be in the cross package looking at the installed debs is quite useless. The cross binutils should not depend on the normal binutils I think. > $ dpkg -L binutils-dev > [...] > /usr/lib/libbfd.a > desviado por binutils-multiarch a: /usr/lib/libbfd-single.a > /usr/lib/libopcodes.a > desviado por binutils-multiarch a: /usr/lib/libopcodes-single.a > /usr/lib/libopcodes.so > /usr/lib/libbfd.so > > $ dpkg -L binutils-multiarch > [...] > /usr/lib/libopcodes-2.20.1-multiarch.20100303.so > /usr/lib/libbfd-2.20.1-multiarch.20100303.so > > OK, now, how should I proceed if I want to use just build > libbfd-2.20.1.20100303.so? > Should I best use libbfd-2.20.1-multiarch.20100303.so provided by > binutils-multiarch package? > > How do I instruct dh_shlibdeps to find the just build library or the other > one? > > Kind regards, First thing to check is that you actualy do have the library in some package and the right shlibs information. You should not be using the system libraries as you need the shlibs information of the library you just compiled. Using the systems shlibs file could give you wrong information and also the wrong package. MfG Goswin -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87mxwebuwa....@frosties.localdomain