A Practical Method for Safe Linking

This proposal has been rejected.


One Line Summary

A method for capturing the interface signature and checking for consistency of all interfaces at link time ultimately preventing execution of incoherent binaries


Building a complex software system usually requires linking many modules into individual shared libraries and dynamically linked programs. During development, the edit / build / test development cycle often involves incremental builds in order to speed up the process. Linking modules compiled from source with binary modules compiled separately, involves
a risk of incoherent interfaces among the linked / loaded modules. Existing compiler tool chains provide little help in preventing linking of incoherent modules.
This project provides a practical method for detecting attempts to link or to run inconsistent or incoherent binaries. In other words, a mechanism that detects a user trying to link object files or libraries compiled against different versions of header / interface files, or user trying to run dynamically linked program with shared libraries compiled against different versions of header / interface files.


compiler toolchain, static linking, dynamic linking, interface versioning

Presentation Materials



  • Edin Hodzic

    Concisoft LLC


    Edin Hodzic works as an independent software consultant under the name
    of Concisoft llc. Edin is involved in complex software projects often
    integrating large subsystems from several vendors into a single
    software system, in the domain of audio/video media processing. Edin
    previously worked at Ready Systems, Microtec Research, AT&T Labs,
    TiVo, C2 Microsystems, and VUDU. Recent consulting client companies
    include Intertrust Technologies, Harmonic, and Apton Biosystems. Edin
    taught Parallel Programming, a graduate course at Santa Clara
    University, between 2008/09 and 2012/13.