Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 522267

Summary: Windows: Qpid C++ pid_t and ssize_t 3rd-party compat
Product: Red Hat Enterprise MRG Reporter: Pete MacKinnon <pmackinn>
Component: qpid-cppAssignee: Pete MacKinnon <pmackinn>
Status: CLOSED ERRATA QA Contact: Frantisek Reznicek <freznice>
Severity: high Docs Contact:
Priority: urgent    
Version: 1.1.6CC: esammons, freznice, iboverma, matt, pmackinn
Target Milestone: 1.3   
Target Release: ---   
Hardware: All   
OS: Windows   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Compiling Qpid on Windows failed because Qpid defined the pid_t and ssize_t type declarations in public headers, which some third-party headers also define. This update moves these declarations to private headers or implementation code, with the result that compilation succeeds on Windows systems.
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-10-14 16:01:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 467890, 506610    

Description Pete MacKinnon 2009-09-09 22:44:53 UTC
https://issues.apache.org/jira/browse/QPID-1951

These are currently declared in IntegerTypes.h but cause compile-time conflicts with other libraries (i.e., Grid) that also must declare these types. Not clear if they should be exposed as is.

Comment 3 Andrew Stitcher 2009-12-08 15:36:09 UTC
These definitions should simply be removed from the windows code base.

It looks like the ssize_t definition is trivially removable from the windows code.
The pid_t looks used in more places and would be a little fiddlier

Comment 4 Andrew Stitcher 2009-12-08 15:37:39 UTC
This issue needs an upstream qpid JIRA reported as the work is going to be done upstream - is there a reported JIRA?

Comment 5 Pete MacKinnon 2009-12-08 15:52:09 UTC
https://issues.apache.org/jira/browse/QPID-1951

Comment 6 Frantisek Reznicek 2010-04-22 13:36:25 UTC
ssize_t and pid_t types are now removed from qpid/sys/windows/IntegerTypes.h header as suggested.

Reproduced on qpidc-0.5.829175-3.fc11.src.rpm, fixed lately on  qpid-cpp-mrg-0.7.935473-1.el5.src.rpm.

The change which fixed that is here:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/sys/windows/IntegerTypes.h?r1=822963&r2=890929&diff_format=h

-> VERIFIED

Comment 7 Pete MacKinnon 2010-10-05 13:49:28 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: Windows compilation of Qpid public headers with 3rd-party headers that define pid_t and ssize_t
Consequence: compilation fails
Fix: removal and/or movement to private headers or implementation code
Result: compilation succeeds

Comment 8 Pete MacKinnon 2010-10-05 13:50:30 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1,4 +1,4 @@
 Cause: Windows compilation of Qpid public headers with 3rd-party headers that define pid_t and ssize_t
 Consequence: compilation fails
-Fix: removal and/or movement to private headers or implementation code
+Fix: removal and/or movement of pid_t, ssize_t declarations to private headers or implementation code
 Result: compilation succeeds

Comment 9 Douglas Silas 2010-10-05 18:48:37 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1,4 +1 @@
-Cause: Windows compilation of Qpid public headers with 3rd-party headers that define pid_t and ssize_t
+Compiling Qpid on Windows failed because Qpid defined the pid_t and ssize_t type declarations, which some third-party headers also define. This update moves these declarations to private headers or implementation code, with the result that compilation succeeds on Windows systems.-Consequence: compilation fails
-Fix: removal and/or movement of pid_t, ssize_t declarations to private headers or implementation code
-Result: compilation succeeds

Comment 10 Douglas Silas 2010-10-05 18:49:50 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-Compiling Qpid on Windows failed because Qpid defined the pid_t and ssize_t type declarations, which some third-party headers also define. This update moves these declarations to private headers or implementation code, with the result that compilation succeeds on Windows systems.+Compiling Qpid on Windows failed because Qpid defined the pid_t and ssize_t type declarations in public headers, which some third-party headers also define. This update moves these declarations to private headers or implementation code, with the result that compilation succeeds on Windows systems.

Comment 12 errata-xmlrpc 2010-10-14 16:01:10 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0773.html