Bug 588766 - Create separate library for messaging API and implementation
Create separate library for messaging API and implementation
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
All Linux
medium Severity medium
: 1.3
: ---
Assigned To: Alan Conway
MRG Quality Engineering
Depends On:
  Show dependency treegraph
Reported: 2010-05-04 09:27 EDT by Gordon Sim
Modified: 2014-06-09 10:13 EDT (History)
2 users (show)

See Also:
Fixed In Version: 0.10
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2012-12-11 15:46:55 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Patch to create a separte libqpidtypes (3.86 KB, patch)
2010-06-24 16:22 EDT, Alan Conway
no flags Details | Diff
Work in progress: enable -fvisibility=hidden (13.75 KB, patch)
2010-06-24 16:31 EDT, Alan Conway
no flags Details | Diff

External Trackers
Tracker ID Priority Status Summary Last Updated
Apache JIRA QPID-2708 None None None Never

  None (edit)
Description Gordon Sim 2010-05-04 09:27:45 EDT
In order that we can have a library with clear ABI guarantees (currently only part of the client lib has a stable ABI). 

It would be ideal if only public symbols were actually exported in this new lib,
Comment 1 Gordon Sim 2010-06-07 04:52:31 EDT
First part is already done (i.e. creation of distinct library for that part we aim to keep ABI stable). Second part is yet to be completed.
Comment 2 Gordon Sim 2010-06-21 04:42:52 EDT
Only messaging library is separate; symbols for those classes in the qpid::types namespace are still part of the qpidcommon library that contains other symbols for which the ABI guarantees are less certain.
Comment 3 Alan Conway 2010-06-24 16:22:53 EDT
Created attachment 426689 [details]
Patch to create a separte libqpidtypes

Attached patch creates a separate qpidtypes library for the types namespace.
Comment 4 Alan Conway 2010-06-24 16:31:03 EDT
Created attachment 426691 [details]
Work in progress: enable -fvisibility=hidden

This is an initial stab at hiding non-public symbols in our libraries. On RHEL5 gcc version 4.1.2 it turns up a number of warnings related to templates that need investigation.

There's also a risk of introducing run-time bugs if exceptions thrown across shared object boundaries are not properly declared as public. We should probably not introduce this right before a release.
Comment 5 Gordon Sim 2010-06-25 06:46:49 EDT
The first patch (separation of qpid types) doesn't work on windows (there is some issue in linking).
Comment 6 Alan Conway 2010-06-30 16:03:04 EDT
Committed trunk r959419 and mrg release repo mrg_1.3.x branch: http://mrg1.lab.bos.redhat.com/git/?p=qpid.git;a=commit;h=d8dc61cf1ba154f8ff373313d4416421b6649d33

Note You need to log in before you can comment on or make changes to this bug.