ABI incompatibility

Guo Yixuan culu.gyx at gmail.com
Fri Jul 4 16:22:41 UTC 2014


Hi,

Recently I encountered a seti crash with this stderr log:

boinc-app-seti is invoked with the following arguments:
--start
--end.
I: boinc_parse_init_data_file
I: boinc_get_init_data
I: sah_graphics_init
I: boinc_init
I: worker
I: worker() - common_init
I: worker() - read_wu_state
I: worker() - seti_do_work
Restarted at 0.41 percent.
../../projects/setiathome.berkeley.edu/setiathome_v7: symbol lookup error:
../../projects/setiathome.berkeley.edu/setiathome_v7: undefined symbol:
_Z20boinc_temporary_exitiPKc

</stderr_txt>

The reason is I used a older seti with a newer libboinc-app7:

$ dpkg -l libboinc-app7 boinc-app-seti-graphics
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                              Version               Architecture
       Description
+++-=================================-=====================-=====================-=======================================================================
ii  boinc-app-seti-graphics           7.28~svn2385-1        amd64
      SETI at home application for the BOINC client (with graphics)
ii  libboinc-app7                     7.4.8+dfsg-1          amd64
      libraries for BOINC's scientific applications

The boinc_temporary_exit() function changed its signature
at 7.4.1 [1], which caused this ABI incompatibility. Can we
solve this problem by using stricter version-qualified
dependency?

(I think the correct solution would be a SONAME change or
symbol versioning, but these seem to be impossible without
support from upstream.)

[1]
http://boinc.berkeley.edu/gitweb/?p=boinc-v2.git;a=commitdiff;h=f15f6d2ba0621f820bd685877b89c14b07c732f2

Regards,

Yixuan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-boinc-devel/attachments/20140704/49a254f2/attachment.html>


More information about the pkg-boinc-devel mailing list