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

        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.
        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.
        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 "

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development