Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.16.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
- fixes
-
DISPATCH-1332 Reconcile install directories and content
- Open