Uploaded image for project: 'ActiveMQ C++ Client'
  1. ActiveMQ C++ Client
  2. AMQCPP-497

Compilation of 3.7.0 fails for Linux systems (Redhat 5.8 and SuSE SLES 10)

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.7.0
    • Fix Version/s: 3.7.1, 3.8.0
    • Component/s: Decaf
    • Environment:

      Linux Red Hat 5.8 and Linux SuSE SLES10

    • Patch Info:
      Patch Available

      Description

      Compilation of 3.7.0 fails for Linux systems (RedHat 5.8 and SuSE SLES 10)

      I found that even after applying the patch for AMQCPP-483, compilation of the 3.7.0 source base on Linux systems would still fail. I reproduced this problem on two diffent flavors of Linux. RedHat 5.8 and SuSE SLES10.

      The failures are as follows:

      libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -ansi -pedantic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/views/LU-7.2-AMQ-3.7.1/server/gpl/apr-1.4.2-src/BUILD_DIR_RhatFive0206-i686-gnu0401/include/apr-1 -I/usr/kerberos/include -W -Wall -Wextra -Wconversion -fPIC -fstrict-aliasing -Wstrict-aliasing=2 -Wno-long-long -g -O2 -pthread -MT decaf/internal/util/libactivemq_cpp_la-HexStringParser.lo -MD -MP -MF decaf/internal/util/.deps/libactivemq_cpp_la-HexStringParser.Tpo -c decaf/internal/util/HexStringParser.cpp -fPIC -DPIC -o decaf/internal/util/.libs/libactivemq_cpp_la-HexStringParser.o
      decaf/internal/util/HexStringParser.cpp:28:26: error: apr_strmatch.h: No such file or directory
      make[3]: *** [decaf/internal/util/libactivemq_cpp_la-HexStringParser.lo] Error 1
      make[2]: *** [all-recursive] Error 1
      make[1]: *** [all] Error 2
      make: *** [os_release] Error 2

      and

      libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -ansi -pedantic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/views/LU-7.2-AMQ-3.7.1/server/gpl/apr-1.4.2-src/BUILD_DIR_RhatFive0206-i686-gnu0401/include/apr-1 -I/usr/kerberos/include -W -Wall -Wextra -Wconversion -fPIC -fstrict-aliasing -Wstrict-aliasing=2 -Wno-long-long -g -O2 -pthread -MT decaf/util/libactivemq_cpp_la-UUID.lo -MD -MP -MF decaf/util/.deps/libactivemq_cpp_la-UUID.Tpo -c decaf/util/UUID.cpp -fPIC -DPIC -o decaf/util/.libs/libactivemq_cpp_la-UUID.o
      decaf/util/UUID.cpp:112: error: integer constant is too large for 'long' type
      decaf/util/UUID.cpp: In copy constructor 'decaf::util::UUID::UUID(const decaf::util::UUID&)':
      decaf/util/UUID.cpp:151: warning: base class 'class decaf::lang::Comparable<decaf::util::UUID>' should be explicitly initialized in the copy constructor
      make[3]: *** [decaf/util/libactivemq_cpp_la-UUID.lo] Error 1
      make[2]: *** [all-recursive] Error 1
      make[1]: *** [all] Error 2
      make: *** [os_release] Error 2

      I've attached a patch file for what I think might be the fixes.

      For the first I removed the inclusion of the file apr_strmatch.h as it comes from apr-util which according to AMQCPP-469 is no longer needed. Moreover, compilation works even with it's removal.

      For the second I changed the casting from L to LL.

        Attachments

        1. patch003.TBD
          1 kB
          John Rocha

          Activity

            People

            • Assignee:
              tabish Timothy Bish
              Reporter:
              jrr John Rocha
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: