Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-5100

C++ Broker windows build exports amqp library classes in qpidcommon dll

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • 0.22
    • 0.22
    • C++ Broker
    • None
    • Windows build

    Description

      The symbol export mechanism for the ampq library has an issue whereby all the exported symbols for amqp.dll are linked into qpidcommon.dll and exported from there.

      To expose all the exports use:

      cd qpid/cpp
      find . -name "*.h" | xargs grep _EXTERN
      

      The *_EXTERN then indicates for each symbol which export library the symbol originates. The symbols in question are all the ./amqp/ symbols pegged with the QPID_COMMON_EXTERN. For example:

      ./amqp/Decoder.h:    QPID_COMMON_EXTERN Decoder(const char*, size_t);
      ./amqp/Decoder.h:    QPID_COMMON_EXTERN CharSequence readSequence8();
      ./amqp/Decoder.h:    QPID_COMMON_EXTERN CharSequence readSequence32();
      

      The fix for this problem is to copy one of the ImportExport.h pattern files and make it work for compiler symbol amqp_EXPORTS. Then change all the QPID_COMMON_EXPORTS in /amqp/*.h to QPID_AMQP_EXPORTS.

      Attachments

        Activity

          People

            chug Charles E. Rolke
            chug Charles E. Rolke
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: