Skip to main content

A Combined Technique for Automatic Detection of Backward Binary Compatibility Problems

  • Conference paper
Perspectives of Systems Informatics (PSI 2011)

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 7162))

Abstract

This paper discusses the problem of ensuring backward compatibility between new and old versions of software components (e.g., libraries). Linux environment is considered as the main example. Breakage of the compatibility in a new version of a software component may result in crashing or incorrect behavior (at binary level) or inability to build (at source level) of applications targeted at a previous version of the component when the applications are used with the new version of the component. The paper describes typical issues that cause backward compatibility problems at binary level and presents a new method for automatic detection of such issues during component development (focusing on changes in structure of interfaces). C/C++ language is used as the main example. Unlike the existing means, the suggested method can verify a broad spectrum of backward compatibility problems by comparing function signatures and type definitions obtained from the component’s header files in addition to analyzing symbols in the component’s binaries. Also, this paper describes an automated checker tool that implements the suggested method with some results of its practical usage.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Kuliamin, V., Petrenko, A., Kossatchev, A., Bourdonov, I.: UniTesK: Model Based Testing in Industrial Practice. In: Proc. of 1st European Conference on Model-Driven Software Engineering, Nurnberg, Germany, pp. 55–63 (December 2003)

    Google Scholar 

  2. Kuliamin, V.: Model Based Testing of Large-scale Software: How Can Simple Models Help to Test Complex System. In: Proc. of 1st International Symposium on Leveraging Applications of Formal Methods, Cyprus, pp. 311–316 (October 2004)

    Google Scholar 

  3. Grinevich, A., Khoroshilov, A., Kuliamin, V.V., Markovtsev, D., Petrenko, A.K., Rubanov, V.: Formal Methods in Industrial Software Standards Enforcement. In: Virbitskaite, I., Voronkov, A. (eds.) PSI 2006. LNCS, vol. 4378, pp. 456–466. Springer, Heidelberg (2007) ISBN 978-3-540-70880-3

    Chapter  Google Scholar 

  4. Zybin, R.S., Kuliamin, V.V., Ponomarenko, A.V., Rubanov, V.V., Chernov, E.S.: Automation of broad sanity test generation. In: Programming and Computer Software, vol. 34(6), pp. 351–363. Springer, Heidelberg (2008); ISSN 0361-7688 (Print), ISSN 1608-3261 (Online), doi: 10.1134/S0361768808060066

    Google Scholar 

  5. Khoroshilov, A., Rubanov, V., Shatokhin, E.: Automated Formal Testing of C API Using T2C Framework. In: Leveraging Applications of Formal Methods, Verification and Validation: Proceedings of 3rd Intl. Symposium, ISoLA 2008, Porto Sani, Greece, October 13-15. CCIS, vol. 17, part 3, pp. 56–70. Springer, Heidelberg (2009), ISSN 1865-0929, ISBN 978-3-540-88478-1, doi: 10.1007/978-3-540-88479-8_5

    Chapter  Google Scholar 

  6. Ponomarenko, A., Rubanov, V.: Header-Driven Generation of Sanity API Tests for Shared Libraries. In: Proceedings of the Sixth International Conference on Software Engineering (CEE-SECR 2010), Moscow, October 11-15, pp. 92–95 (2010) (in Russian)

    Google Scholar 

  7. Drepper, U.: How to write shared libraries (December 2010), http://www.akkadia.org/drepper/dsohowto.pdf (link checked on April 30, 2011)

  8. KDE TechBase. Policies/Binary Compatibility Issues With C++, http://developer.kde.org/documentation/other/binarycompatibility.html (link checked on April 30, 2011)

  9. Wheeler, D.A.: Program Library HOWTO.V. 1.36 (May 15, 2010), http://www.dwheeler.com/program-library/Program-Library-HOWTO.pdf (link checked on April 30, 2011)

  10. dpkg-gensymbols, http://man.he.net/man1/dpkg-gensymbols (link checked on April 30, 2011)

  11. chkshlib, http://osr507doc.sco.com/en/man/html.CP/chkshlib.CP.html (link checked on April 30, 2011)

  12. cmpdylib, http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/cmpdylib.1.html (link checked on April 30, 2011)

  13. cmpshlib, http://www.myths.com/pub/doc/oh_really/unix_bookshelf_3.0/mac/ch07_01.htm (link checked on April 30, 2011)

  14. Savga, I., Rudolf, M.: Refactoring-based support for binary compatibility in evolving frameworks. In: GPCE 2007: Proc. of Generative Programming and Component Engineering, pp. 175–184 (2007)

    Google Scholar 

  15. Savga, I., Rudolf, M., Sliwerski, J., Lehmann, J., Wendel, H.: API Changes - How FarWould You Go? In: Proc. of 11th European Conference on Software Maintenance and Reengineering (CSMR 2007), pp. 329–330 (2007)

    Google Scholar 

  16. Dig, D., Negara, S., Johnson, R., Mohindra, V.: ReBA: refactoring-aware binary adaptation of evolving libraries. In: Proceedings of the 30th International Conference on Software Engineering, pp. 441–450 (2008)

    Google Scholar 

  17. LSB Navigator, http://dev.linuxfoundation.org/navigator/browse/app_stats.php (link checked on April 30, 2011)

  18. Linux Standard Base, http://www.linuxbase.org (link checked on April 30, 2011)

  19. Linux Upstream Tracker Demo, http://linuxtesting.org/upstream-tracker/index.html (link checked on April 30, 2011)

  20. ABI Compliance Checker Home Page, http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker (link checked on April 30, 2011)

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ponomarenko, A., Rubanov, V. (2012). A Combined Technique for Automatic Detection of Backward Binary Compatibility Problems. In: Clarke, E., Virbitskaite, I., Voronkov, A. (eds) Perspectives of Systems Informatics. PSI 2011. Lecture Notes in Computer Science, vol 7162. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29709-0_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-29709-0_27

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-29708-3

  • Online ISBN: 978-3-642-29709-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics