[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Maintaining C++ library symbols control file with unstable mangled symbols



Hi mentors,

I need advise on the way maintaining symbols control file when
the mangled C++ symbols are unstable.

I'm maintaining a package named "Caffe". I migrated the same
source from experimental to unstable, and it FTBFS'ed as you
see at [0], due to the mangled C++ symbols change. Actually
this package FTBFS'ed many times in the history due to
symbols change. (I have no e.g. ppc64el machine, hence
unable to test before upload)

The trouble I encountered:

  I can test my source on DOM-{amd64,i386} to avoid FTBFS
  on amd64 and i386 however I cannot take care of other
  architectures such as ppc64el because I have no such hardware.
  Besides, DOM-ppc64el, emulated by QEMU, seems not quite
  reliable as native machine does. Then what I could do
  is upload and wait for FTBFS, and then pick the patch,
  and upload again...

What I found in order to solve this problem:

* dev-ref refered nothing about this issue, and neither does [1],
  which is referenced in dev-ref.

* I don't want to set DPKG_GENSYMBOLS_CHECK_LEVEL, avoiding
  the situation where the symbols changed but I'm not aware of it.
  See dpkg-gensymbols(1) .

* As mentioned in dpkg-gensymbols(1) I can use `c++filt` to
  de-mangle the symbols into a sane form. I quickly went
  through some pages of the search results [2] but didn't
  found someone maintaining symbols with c++filt (maybe 
  I should look into it deeper?).

So my question:

* How can I reduce the probability that my package FTBFSs
  due to an C++ symbols change? It would change even if I
  migrated the same source from experimental to unstable.

* What else can I do to maintain symbols for those rare
  architectures e.g. ppc64el? This pipeline seems very bad:

    (upload ->
      wait for FTBFS ->
       pick the patch from buildlog ->
        refresh symbols and upload again)
  
Thanks in advance!

[0] https://buildd.debian.org/status/package.php?p=caffe
[1] http://www.netfort.gr.jp/~dancer/column/libpkg-guide/
[2] https://codesearch.debian.net/search?q=c\%2B\%2Bfilt


Reply to: