Jiri Daněk created DISPATCH-2178:
------------------------------------

             Summary: Do not build separate libqpid-dispatch.so
                 Key: DISPATCH-2178
                 URL: https://issues.apache.org/jira/browse/DISPATCH-2178
             Project: Qpid Dispatch
          Issue Type: Improvement
    Affects Versions: 1.16.0
            Reporter: Jiri Daněk


## 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).

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)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to