To answer your last question, I got it to compile and to start up, but the self
tests did not
run cleanly (one or two of them claimed memory corruption). I put it aside in
favor of
looking at CentOS, which is a more desirable target in the long run (and
probably more
interesting to the wider community?)
I've not succeeded in compiling on CentOS yet, but am getting closer each time.
So far:
- sprout/modules/libmemcached/libmemcached/csl/parser.cc needed edits to stop
choking
on YYENABLE_NLS and YYLTYPE_IS_TRIVIAL.
- the #include of <atomic> in sprout/include/sas.h and accumulator.h needed to
be changed to
<cstdatomic>
- connection_pool.cpp, flowtable.cpp and accumulator.cpp needed tweaks to
overcome the
ambiguity in calls to to_string (eg whether the arg was a unsigned int, long
long etc).
Currently I'm looking at this error compiling accumulator.cpp:
g++ -Wno-write-strings -ggdb3 -std=c++0x -I/home/keller/cw/sprout/include
-I/home/keller/cw/sprout/usr/include -DPJ_AUTOCONF=1 -ggdb3
-DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1
-I/home/keller/cw/sprout/usr/include -Wall -O2 -c -o
/home/keller/cw/sprout/build/obj/sprout/accumulator.o accumulator.cpp
accumulator.cpp: In member function ?void Accumulator::accumulate(long unsigned
int)?:
accumulator.cpp:56: error: no matching function for call to
?std::__atomic2::__atomic_base<long long unsigned
int>::compare_exchange_weak(uint_fast64_t&, long unsigned int&)?
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/atomic_2.h:328:
note: candidates are: bool
std::__atomic2::__atomic_base<_IntTp>::compare_exchange_weak(_ITp&, _ITp,
std::memory_order, std::memory_order) volatile [with _ITp = long long unsigned
int]
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/atomic_2.h:333:
note: bool
std::__atomic2::__atomic_base<_IntTp>::compare_exchange_weak(_ITp&, _ITp,
std::memory_order) volatile [with _ITp = long long unsigned int]
The code does things like this:
while ((sample < lwm) &&
(!_current._lwm.compare_exchange_weak(lwm, sample)))
{
// Do nothing.
}
...but evidently two arguments are not enough to satisfy the compiler. Any
thoughts about a possible cause/cure?
Thank you
_______________________________________________
Clearwater mailing list
[email protected]
http://lists.projectclearwater.org/listinfo/clearwater