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

Do not build separate libqpid-dispatch.so

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.16.0
    • Fix Version/s: 1.17.0
    • Component/s: None
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: