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]