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?

Reply via email to