Package: dpkg-dev
Version: 1.18.1

dpkg-gensymbols generates wrong dependencies for multilib packages when no
symbols file is present:

$ fakeroot dpkg-shlibdeps -v -Tdebian/libx32cilkrts5.substvars
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32gcc1/usr/libx32
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32stdc\+\+6/usr/share/gdb/auto-load/usr/libx32
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32stdc\+\+6/usr/libx32
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32stdc\+\+6/usr/libx32
-l/lib/x86_64-linux-gnux32 -l/usr/lib/x86_64-linux-gnux32 -l/libx32
-l/usr/libx32 debian/libx32cilkrts5/usr/libx32/libcilkrts.so.5.0.0
>> Scanning debian/libx32cilkrts5/usr/libx32/libcilkrts.so.5.0.0 (for Depends 
>> field)
Library libdl.so.2 found in /libx32/libdl.so.2
Library libpthread.so.0 found in /libx32/libpthread.so.0
Library libstdc++.so.6 found in debian/libx32stdc++6/usr/libx32/libstdc++.so.6
Library libm.so.6 found in /libx32/libm.so.6
Library libc.so.6 found in /libx32/libc.so.6
Library libgcc_s.so.1 found in debian/libx32gcc1/usr/libx32/libgcc_s.so.1
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libc.so.6
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libdl.so.2
No associated package found for debian/libx32gcc1/usr/libx32/libgcc_s.so.1
Using symbols file debian/lib32gcc1/DEBIAN/symbols for libgcc_s.so.1
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libpthread.so.0
No associated package found for debian/libx32stdc++6/usr/libx32/libstdc++.so.6
Using symbols file debian/lib32stdc++6/DEBIAN/symbols for libstdc++.so.6
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libm.so.6

$ cat debian/libx32cilkrts5.substvars
shlibs:Depends=lib32gcc1 (>= 1:4.8), lib32stdc++6 (>= 4.1.1), libc6-x32 (>= 
2.16)

$ ls debian/libx32gcc1/DEBIAN
control  md5sums  postinst  postrm  shlibs

$ ls debian/libx32stdc++6/DEBIAN
control  md5sums  postinst  postrm  shlibs

$ ls debian/lib32stdc++6/DEBIAN
control  md5sums  postinst  postrm  shlibs  symbols

Calling with -S to find the correct library doesn't help. The problem seems to
be that both libx32gcc1 and lib32stdc++6 don't have a symbols file, and
dpkg-shlibdeps ignores the shlibs file in the correct package directory.

$ fakeroot dpkg-shlibdeps -v
-S/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32gcc1/usr/libx32
-S/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32stdc\+\+6/usr/libx32
-Tdebian/libx32cilkrts5.substvars
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32gcc1/usr/libx32
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32stdc\+\+6/usr/share/gdb/auto-load/usr/libx32
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32stdc\+\+6/usr/libx32
-l/scratch/packages/gcc/5/gcc-5-5.1.1/debian/libx32stdc\+\+6/usr/libx32
-l/lib/x86_64-linux-gnux32 -l/usr/lib/x86_64-linux-gnux32 -l/libx32
-l/usr/libx32 debian/libx32cilkrts5/usr/libx32/libcilkrts.so.5.0.0
>> Scanning debian/libx32cilkrts5/usr/libx32/libcilkrts.so.5.0.0 (for Depends 
>> field)
Library libdl.so.2 found in /libx32/libdl.so.2
Library libpthread.so.0 found in /libx32/libpthread.so.0
Library libstdc++.so.6 found in debian/libx32stdc++6/usr/libx32/libstdc++.so.6
Library libm.so.6 found in /libx32/libm.so.6
Library libc.so.6 found in /libx32/libc.so.6
Library libgcc_s.so.1 found in debian/libx32gcc1/usr/libx32/libgcc_s.so.1
No associated package found for debian/libx32gcc1/usr/libx32/libgcc_s.so.1
Using symbols file debian/lib32gcc1/DEBIAN/symbols for libgcc_s.so.1
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libdl.so.2
No associated package found for debian/libx32stdc++6/usr/libx32/libstdc++.so.6
Using symbols file debian/lib32stdc++6/DEBIAN/symbols for libstdc++.so.6
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libm.so.6
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libc.so.6
Using symbols file /var/lib/dpkg/info/libc6-x32.symbols for libpthread.so.0

$ cat debian/libx32cilkrts5.substvars
shlibs:Depends=lib32gcc1 (>= 1:4.8), lib32stdc++6 (>= 4.1.1), libc6-x32 (>= 
2.16)

I assume an option to delimit the search for symbols files would help. Of course
adding symbols files for every multilib works around the issue.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to