Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-2178

Do not build separate libqpid-dispatch.so

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.16.0
    • 1.17.0
    • None
    • None

    Description

      Motivation

      The split into a binary and a library is not unprecedented (e.g. CPython does exactly the same thing), but in Dispatch it is avoidable with minimal code changes (an executable can dlopen(NULL, ...) itself.

      Getting rid of libqpid-dispatch.so will mean one less file that we need to install (and since it is not a published API, finding a good place for the so has been tricky in the past (see DISPATCH-194).

      Furthermore, avoiding the indirection of a library call will likely give some performance benefit at a low level (individual function calls) similar to (again) Python in https://fedoraproject.org/wiki/Changes/PythonStaticSpeedup. The gains can be best utilized after doing LTO (see DISPATCH-2121).

      Expected issues

      The problem with this is that we lose semantic interposition (https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup), meaning we won't be able to simply override symbols from libqpid-dispatch.so at runtime. This is an issue because Dispatch unittests depend on this. (See DISPATCH-1783)

      Attachments

        Issue Links

          Activity

            People

              jdanek Jiri Daněk
              jdanek Jiri Daněk
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: