Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Incomplete
    • Affects Version/s: 3.3.0
    • Fix Version/s: None
    • Component/s: CMS Impl
    • Labels:
      None
    • Environment:

      $ uname -a
      AIX aix03 3 5 00CBFD314C00
      $ xlC -qversion
      IBM XL C/C++ Enterprise Edition for AIX, V9.0
      Version: 09.00.0000.0000

      Description

      When building cpp-cms, the resulting static library is useless. Instead of archiving the entire cast of objects, the shared library is archived as a single entity:
      $ ar -vt -Xany libactivemq-cpp.a
      rwxr-xr-x 1048/100 60870613 Jul 21 14:04 2011 libactivemq-cpp.so.14

      Obviously this is wrong. The archive should contain the raw objects. Statically linking against such an archive is meaningless.

        Activity

        Yakov Dekel created issue -
        Hide
        Yakov Dekel added a comment -

        In addition, when attempting to create a static library by manually archiving the library, the following error is emitted:

        0711-781 ERROR: TOC overflow. TOC size: 206424 Maximum size: 65536 implementing

        the followwing ibm page:
        https://www-304.ibm.com/support/docview.wss?uid=swg21175442
        suggests adding -bbigtoc to the build (but discourages doing so). the result is an ugly warning:

        ld: 0711-783 WARNING: TOC overflow. TOC size: 206424 Maximum size: 65536
        Extra instructions are being generated for each reference to a TOC
        symbol if the symbol is in the TOC overflow area.

        The above link explains this warning:

        One disadvantage of using this option is that it generates extra code if the size of the table of contents
        (TOC) is greater than 64KB. Extra code is needed for every reference to a TOC symbol that cannot be addressed with a 16-bit offset. Because a program containing generated code may have poor
        performance, you should reduce the number of TOC entries needed by the program before using this option.

        The way to do it is: "Break up large segments of code into smaller compilation units" and "Reduce the number of variables in the compilation unit "

        Show
        Yakov Dekel added a comment - In addition, when attempting to create a static library by manually archiving the library, the following error is emitted: 0711-781 ERROR: TOC overflow. TOC size: 206424 Maximum size: 65536 implementing the followwing ibm page: https://www-304.ibm.com/support/docview.wss?uid=swg21175442 suggests adding -bbigtoc to the build (but discourages doing so). the result is an ugly warning: ld: 0711-783 WARNING: TOC overflow. TOC size: 206424 Maximum size: 65536 Extra instructions are being generated for each reference to a TOC symbol if the symbol is in the TOC overflow area. The above link explains this warning: One disadvantage of using this option is that it generates extra code if the size of the table of contents (TOC) is greater than 64KB. Extra code is needed for every reference to a TOC symbol that cannot be addressed with a 16-bit offset. Because a program containing generated code may have poor performance, you should reduce the number of TOC entries needed by the program before using this option. The way to do it is: "Break up large segments of code into smaller compilation units" and "Reduce the number of variables in the compilation unit "
        Timothy Bish made changes -
        Field Original Value New Value
        Project ActiveMQ [ 12311210 ] ActiveMQ C++ Client [ 12311207 ]
        Key AMQ-3429 AMQCPP-378
        Affects Version/s 3.3.0 [ 12315668 ]
        Affects Version/s 5.5.0 [ 12315626 ]
        Component/s CMS Impl [ 12313919 ]
        Component/s CMS (C++ client) [ 12313901 ]
        Hide
        Timothy Bish added a comment -

        The CMS client isn't maintained on AIX as there are no resources available for testing. If you want to submit a patch that resolves the way the configure.ac script sets up the build on AIX we welcome the contribution.

        Show
        Timothy Bish added a comment - The CMS client isn't maintained on AIX as there are no resources available for testing. If you want to submit a patch that resolves the way the configure.ac script sets up the build on AIX we welcome the contribution.
        Timothy Bish made changes -
        Issue Type Bug [ 1 ] Improvement [ 4 ]
        Priority Critical [ 2 ] Major [ 3 ]
        Hide
        Timothy Bish added a comment -

        Need a patch for the configure.ac or relavent autoconf script that's been tested on AIX to complete this.

        Show
        Timothy Bish added a comment - Need a patch for the configure.ac or relavent autoconf script that's been tested on AIX to complete this.
        Timothy Bish made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Incomplete [ 4 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Yakov Dekel
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development