Bug 588766 - Create separate library for messaging API and implementation
Summary: Create separate library for messaging API and implementation
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: Development
Hardware: All
OS: Linux
Target Milestone: 1.3
: ---
Assignee: Alan Conway
QA Contact: MRG Quality Engineering
Depends On:
TreeView+ depends on / blocked
Reported: 2010-05-04 13:27 UTC by Gordon Sim
Modified: 2014-06-09 14:13 UTC (History)
2 users (show)

Fixed In Version: 0.10
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2012-12-11 20:46:55 UTC
Target Upstream Version:

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

System ID Private Priority Status Summary Last Updated
Apache JIRA QPID-2708 0 None None None Never

Description Gordon Sim 2010-05-04 13:27:45 UTC
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 08:52:31 UTC
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 08:42:52 UTC
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 20:22:53 UTC
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 20:31:03 UTC
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 10:46:49 UTC
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 20:03:04 UTC
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.