Qpid
  1. Qpid
  2. QPID-4734

Release builds fail on GCC 4.4.7 / Boost 1.41

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.21, 0.22, 0.23
    • Fix Version/s: 0.23
    • Component/s: C++ Broker
    • Labels:
      None
    • Environment:

      gcc 4.4.7 and boost 1.41 on RHEL 6

      Description

      build fails with warnings turned to errors when compiling SocketTransport.cpp:

      These are potentially uninitialised variable warnings in boost::bind and boost::function templates and so the underlying code can't be changed by us.

      It appears that the cause here is either (or some combination):

      • The compiler's flow analysis is incorrect.
      • The compiler misinterprets the warning as being in the location that the template instantiation happened (our code) and so ignores the -Wno-system-headers flag which should stop it reporting warnings in the system headers.
      • There is an issue in the boost code.

      In any of these cases there is little that we can do except suppress the warning.

        Issue Links

          Activity

          Hide
          Justin Ross added a comment -
          Show
          Justin Ross added a comment - Released in Qpid 0.24, http://qpid.apache.org/releases/qpid-0.24/index.html
          Hide
          Justin Ross added a comment -

          Reviewed by me. Approved for 0.22.

          Show
          Justin Ross added a comment - Reviewed by me. Approved for 0.22.
          Hide
          Andrew Stitcher added a comment -

          Expanded ignoring uninitialised warning to all patchlevels of gcc 4.4 on trunk in r1469559

          Show
          Andrew Stitcher added a comment - Expanded ignoring uninitialised warning to all patchlevels of gcc 4.4 on trunk in r1469559
          Hide
          Andrew Stitcher added a comment -

          I'm happy to expand the check to all versions of gcc 4.4. Having done that can I consider this approved for 0.22?

          Show
          Andrew Stitcher added a comment - I'm happy to expand the check to all versions of gcc 4.4. Having done that can I consider this approved for 0.22?
          Hide
          Justin Ross added a comment -

          Andrew requested this for 0.22. I've taken a look at the delta, and it's correct wrt the gcc documentation for such pragmas. One question came to mind: should we make the version less precise, instead targeting, say, 4.4? The change is harmless, and it may help users with other minor versions of gcc.

          Show
          Justin Ross added a comment - Andrew requested this for 0.22. I've taken a look at the delta, and it's correct wrt the gcc documentation for such pragmas. One question came to mind: should we make the version less precise, instead targeting, say, 4.4? The change is harmless, and it may help users with other minor versions of gcc.
          Hide
          Andrew Stitcher added a comment -

          Fixed in r1466615

          Show
          Andrew Stitcher added a comment - Fixed in r1466615
          Hide
          Andrew Stitcher added a comment -

          I concluded that turning the warning off completely would be a very bad idea, as this warning is usually reliable and useful.

          So I need the change that makes the minimal change that allows the build to complete.

          I decided to use a #pragma only in the affected file to change this warning so that it doesn't cause the build to fail. This is surrounded by conditional compilation so that it is only turned on in the specific compiler and version.

          So the warning is still active and reported, but won't cause a build failure.

          Show
          Andrew Stitcher added a comment - I concluded that turning the warning off completely would be a very bad idea, as this warning is usually reliable and useful. So I need the change that makes the minimal change that allows the build to complete. I decided to use a #pragma only in the affected file to change this warning so that it doesn't cause the build to fail. This is surrounded by conditional compilation so that it is only turned on in the specific compiler and version. So the warning is still active and reported, but won't cause a build failure.

            People

            • Assignee:
              Andrew Stitcher
              Reporter:
              Andrew Stitcher
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development