Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.30
-
None
-
Linux Fedora 21 on s390 (32-bit)
Description
build fails with
...
CMakeFiles/txshift.dir/txshift.cpp.o: In function `boost::program_options::value_semantic* qpid::optValue<unsigned long>(unsigned long&, char const*)':
/builddir/build/BUILD/qpid-cpp-0.30/src/qpid/Options.h:77: undefined reference to `boost::program_options::value_semantic* qpid::create_value<unsigned long>(unsigned long&, std::string const&)'
collect2: error: ld returned 1 exit status
for a full please see build.log at http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1579517
The reason is that the workers atribute is declared as size_t and size_t is defined as unsigned long (as opposed to the usual unsigned int) and there is no instance of qpid::optValue() for size_t/unsigned long. The solution would be to add
template QPID_COMMON_EXTERN po::value_semantic* create_value(size_t& val, const std::string& arg);
in src/qpid/Options.cpp, but I think it would conflict with existing create_value() functions, at least I recolled such problems from other projects.
The workaround is to declare workers as uint in txshift.cpp.