On 18.02.24 06:38, Hiroyuki YAMAMORI wrote:
Source: binutils
Version: 2.42-2
Severity: normal
Dear Maintainer,
Looking at libgprofng0's debian symbols file
"/var/lib/dpkg/info/libgprofng0\:amd64.symbols" line: 1170
_ZN3Elf19get_funcname_in_pltEm@Base 2.42-2
As shown above, the version number should be 2.42, but it is 2.42-2.
When I tried to build the package, the following error message appeared.
```
dpkg-gensymbols -Pdebian/libgprofng0 -plibgprofng0 -ldebian/libbinutils
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see
diff output below
dpkg-gensymbols: error: some symbols or patterns disappeared in the symbols
file: see diff output below
dpkg-gensymbols: warning: debian/libgprofng0/DEBIAN/symbols doesn't match
completely debian/libgprofng0.symbols
--- debian/libgprofng0.symbols (libgprofng0_2.42-2_amd64)
+++ dpkg-gensymbolsx29YlY 2024-02-17 11:53:21.237584672 +0900
@@ -1222,7 +1222,8 @@
_ZN3Elf15get_bfd_symbolsEv@Base 2.41.50.20231202
_ZN3Elf16elf_getancillaryEP8Elf_DatajP17S_Elf64_Ancillary@Base 2.41
_ZN3Elf16get_related_fileEPKcS1_@Base 2.41
- (subst)_ZN3Elf19get_funcname_in_pltE{uint64_t}@Base 2.42
+ _ZN3Elf19get_funcname_in_pltEm@Base 2.42-2
+#MISSING: 2.42-2# (subst)_ZN3Elf19get_funcname_in_pltE{uint64_t}@Base 2.42
_ZN3Elf20find_ancillary_filesEPc@Base 2.41
_ZN3Elf4dumpEv@Base 2.41
_ZN3Elf8elf_initEv@Base 2.41
@@ -1339,9 +1340,11 @@
(arch=!i386 !x32)_ZN6Disasm12set_addr_endEm@Base 2.41
(arch=i386 x32)_ZN6Disasm12set_addr_endEy@Base 2.41
_ZN6Disasm12set_img_nameEPc@Base 2.41
- (subst)_ZN6Disasm14map_PC_to_funcE{uint64_t}@Base 2.42
+ _ZN6Disasm14map_PC_to_funcEm@Base 2.42-2
+#MISSING: 2.42-2# (subst)_ZN6Disasm14map_PC_to_funcE{uint64_t}@Base 2.42
_ZN6Disasm18remove_disasm_hndlEPv@Base 2.41
- (subst)_ZN6Disasm19get_funcname_in_pltE{uint64_t}@Base 2.42
+ _ZN6Disasm19get_funcname_in_pltEm@Base 2.42-2
+#MISSING: 2.42-2# (subst)_ZN6Disasm19get_funcname_in_pltE{uint64_t}@Base 2.42
_ZN6DisasmC1E10Platform_tP5Stabs@Base 2.41
_ZN6DisasmC1EPc@Base 2.41
_ZN6DisasmC2E10Platform_tP5Stabs@Base 2.41
make: [debian/rules:1625: binary-native] Error 1 (ignored)
```
```
Now running lintian binutils_2.42-2_amd64.changes ...
E: libgprofng0: symbols-file-contains-current-version-with-debian-revision on
symbol _ZN3Elf19get_funcname_in_pltEm@Base and 2 others (libgprofng.so.0)
[symbols]
```
As you can see from the above, there are some bad parts in
`debian/libgprofng0.symbols`.
`man 5 deb-src-symbols` does not find `subst` tag.
One fix way is to write the following using `regex` tag.
```
(regex)"^_ZN3Elf19get_funcname_in_pltE[my]@Base$" 2.42
```
When a function has two or more arguments, for example,
replace `[my]` with `[lmxy]+`, or more simply `.*`.
Another fix way is to write the following using `arch-bits`tag.
```
(arch-bits=64)_ZN3Elf19get_funcname_in_pltEm@Base 2.42
(arch-bits=32)_ZN3Elf19get_funcname_in_pltEy@Base 2.42
```
As a suggestion, the following is written in `debian/libgprofng0.symbols`,
but it is ambiguous to list negative types in `arch` tag specification,
so I think it should be avoided.
```
(arch=!i386 !x32)_Z13dbeGetSamplesiill@Base 2.41
```
hmm, all these were generated with the pkg-symbolshelper. so probably a
bug report there would be the right thing to do?