Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.7.0
-
Linux Red Hat 5.8 and Linux SuSE SLES10
-
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.